Unknown problem with I2C on Spartan 3-E {VERILOG}
The problem was with the hold time.Since the SDA line changed exactly on the falling edge of SCL, There was a hold time violation.I added a flip flop to produce a delay of around 600ns and the design works. I have read that such a constraint matters with certain Analog Devices components.