This repository contains various attempts to implement an I2C protocol with VHDL.
Only i2c.vhd and i2c_slave.vhd implementations work.
https://en.wikipedia.org/wiki/I%C2%B2C
| Variable | Type | Description | Keyword |
|---|---|---|---|
| bus_clk | Int | I2c Bus Clock Speed Cycles | GENERIC |
| sys_clk | Int | System Clock Speed Cycles | GENERIC |
| CLK | Bit | Alternating 0 or 1 signal | PORT |
| RESET | Bit | Reset | PORT |
| P | Bit | Pull Up Resistor | PORT |
| SDA | Bit | Serial Data Line | PORT |
| SCL | Bit | Stretch Clock | PORT |
| Variable | Type | Description | Keyword |
|---|---|---|---|
| trigger | Bit | Bit that either store or output the memory | PORT |
| input | Bit | Input bit | PORT |
| output | Bit | Output Bit | PORT |
| Variable | Type | Description | Keyword |
|---|---|---|---|
| sys_clk | Int | Clock on the entire device | GENERIC |
| bus_clk | Int | I2c Bus Clock | GENERIC |
| slave_addr | 7 Bit | Reference Address | GENERIC |
| CLK | Bit | Clock | PORT |
| RESET | Bit | Reset Bit | PORT |
| SCL | Bit | Stretch Clock | PORT |
| SDA | Bit | Input Output Bit | PORT |
| P | Byte | 8 bit pull up resistor | PORT |
- H - Pull up Resistor - https://en.wikipedia.org/wiki/Pull-up_resistor
- bit - 0 or 1 state
- byte - 8 bits