All my work with I2C shows me:

I2C-master could be done by hardware or software and speed doen't matter.

I2C-slave could only be done by hardware. The slave must react very fast on every bit....