
This project implements a self-contained AXI4-Lite system with a master and a slave connected inside a top-level wrapper (axi4lite_top).
It exposes a simple control interface so that reads and writes can be performed without directly driving AXI signals.
axi4lite_top) instantiates:
ui_in[0] → Start Writeui_in[2:1] → Write Addressuio_in → Write Dataui_in[4] → Start Readui_in[3:2] → Read Addressuo_out[0] goes high (Done).uio_out.Effectively, this module hides AXI4-Lite complexity and lets the user test simple memory-mapped transactions.
Two types of testbenches are provided:
sim/axi4lite_tb.v.sim/test_axi4lite.py.make SIM=icarus TOPLEVEL=axi4lite_top MODULE=test_axi4lite
| # | Input | Output | Bidirectional |
|---|---|---|---|
| 0 | start_write | data_read[0] | data_write[0] |
| 1 | write_addr[0] | data_read[1] | data_write[1] |
| 2 | write_addr[1] | data_read[2] | data_write[2] |
| 3 | start_read | data_read[3] | data_write[3] |
| 4 | read_addr[0] | data_read[4] | data_write[4] |
| 5 | read_addr[1] | data_read[5] | data_write[5] |
| 6 | data_read[6] | data_write[6] | |
| 7 | data_read[7] | data_write[7] |