Go Back

Source code


Name: i2cslave
Created: Nov 7, 2008
Updated: Dec 18, 2013
SVN Updated: Mar 10, 2009

Other project properties

Category: Communication controller
Language: Verilog
Development status: Stable
Additional info: Design done , FPGA proven
WishBone Compliant: No
License: GPL


i2cSlave is a minimalist I2C slave IP core that provides the basic framework for the implementation of custom I2C slave devices. The core provides a means to read and write up to 256 8-bit registers. These registers can be connected to the users custom logic, thus implementing a simple control and status interface. A full Icarus Verilog test bench is available. Test it for yourself, using the free Icarus Verilog simulator and the free GTKWave wave form viewer. Only 6 simple steps! - Download and install Icarus Verilog. - Download and install GTKWave. - Download the project files. - Execute sim/build_icarus.bat and sim/run_icarus.bat - Execute sim/viewWave.bat and check out the results. - In GTKWave, use "Search >> Signal Search Tree" to view more waves.


- Standalone. No microprocessor required.
- Create your own custom I2C peripheral.
- Only 143 macrocells in CPLD.
- I2C bus speeds of 100Kbps and 400Kbps.
- Easily configurable for different input clock frequencies.
- Full Icarus Verilog test bench.


- Tested in FPGA
- Tested in simulation


Now available, Altera Quartus project for Base2Designs FPGA-DEV-KIT and test software for the Aardvark I2C Host Adapter. Download the latest project files now.