I2C Repeater in SystemVerilog

Details
Category: Communication Controller
Created: July 06, 2011
Updated: January 27, 2020
Language: Verilog
Other project properties
Development Status: Beta
WishBone compliant: No
WishBone version: n/a
License: LGPL
Description
This is a quick module I hacked together to connect two I2C buses to work around a hardware bug on a board.
It mostly works, and I'm posting it in case others find it useful. I wouldn't use it in a production system as it stands.
It is written in SystemVerilog, so you'll need to change some "logic" declarations to "reg" if your compiler can't handle SystemVerilog. There are probably some other SystemVerilog features used, also.
I suggest toggling the reset signal between I2C transfers, if possible.