I2C Repeater in SystemVerilog

I2C Repeater in SystemVerilog


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


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.