Chargement…
Chargement…
Simplified I2C waveform generator that emits an address phase: START, a 7-bit address, the R/W bit, an ACK slot, then a return to idle.
Behaviour:
o_sda and o_scl are '1'.i_start='1' on a rising edge of i_clk, the module stores i_addr & i_rw and generates START by pulling o_sda low while o_scl remains high.o_scl toggles.ST_ACK represents the ninth clock slot, but no external ACK is sampled: o_sda is an output and the module has no SDA input.o_done is '1' for one cycle; returning to idle then restores o_sda and o_scl to '1' and ends the sequence.*The module has no reset input; its registers rely on their initialization values.*
| Signal | Direction | Width | Description |
|---|---|---|---|
i_clk | Input | 1 bit | System clock |
i_start | Input | 1 bit | Transaction trigger |
i_addr | Input | 7 bits | Slave address |
i_rw | Input | 1 bit | R/W bit (0=write, 1=read) |
o_sda | Output | 1 bit | SDA line |
o_scl | Output | 1 bit | SCL line |
o_done | Output | 1 bit | Transaction complete |