Yes right but in FPGA there is no I2C you have to develop it using hardware programming, that why all this we have to consider in software.
Huh? What does this have to do with software!?
You can emulate open-drain/open-collector on an FPGA, so what are you trying to say?