mirror of
https://github.com/corundum/corundum.git
synced 2025-01-16 08:12:53 +08:00
Update readme
This commit is contained in:
parent
0e36f647cb
commit
fe7396a31e
140
README.md
140
README.md
@ -6,16 +6,115 @@ GitHub repository: https://github.com/alexforencich/verilog-axi
|
|||||||
|
|
||||||
## Introduction
|
## Introduction
|
||||||
|
|
||||||
Collection of AXI4 bus components. Most components are fully parametrizable
|
Collection of AXI4 and AXI4 lite bus components. Most components are fully
|
||||||
in interface widths. Includes full MyHDL testbench with intelligent bus
|
parametrizable in interface widths. Includes full MyHDL testbench with
|
||||||
cosimulation endpoints.
|
intelligent bus cosimulation endpoints.
|
||||||
|
|
||||||
## Documentation
|
## Documentation
|
||||||
|
|
||||||
|
### axi_adapter module
|
||||||
|
|
||||||
|
AXI width adapter module with parametrizable data and address interface widths.
|
||||||
|
Supports INCR burst types and narrow bursts. Wrapper for axi_adapter_rd and axi_adapter_wr.
|
||||||
|
|
||||||
|
### axi_adapter_rd module
|
||||||
|
|
||||||
|
AXI width adapter module with parametrizable data and address interface widths.
|
||||||
|
Supports INCR burst types and narrow bursts.
|
||||||
|
|
||||||
|
### axi_adapter_wr module
|
||||||
|
|
||||||
|
AXI width adapter module with parametrizable data and address interface widths.
|
||||||
|
Supports INCR burst types and narrow bursts.
|
||||||
|
|
||||||
|
### axi_fifo module
|
||||||
|
|
||||||
|
AXI FIFO with parametrizable data and address interface widths. Supports all
|
||||||
|
burst types. Optionally can delay the address channel until either the write
|
||||||
|
data is completely shifted into the FIFO or the read data FIFO has enough
|
||||||
|
capacity to fit the whole burst. Wrapper for axi_fifo_rd and axi_fifo_wr.
|
||||||
|
|
||||||
|
### axi_fifo_rd module
|
||||||
|
|
||||||
|
AXI FIFO with parametrizable data and address interface widths. AR and R
|
||||||
|
channels only. Supports all burst types. Optionally can delay the address
|
||||||
|
channel until either the read data FIFO is empty or has enough capacity to fit
|
||||||
|
the whole burst.
|
||||||
|
|
||||||
|
### axi_fifo_wr module
|
||||||
|
|
||||||
|
AXI FIFO with parametrizable data and address interface widths. WR, W, and B
|
||||||
|
channels only. Supports all burst types. Optionally can delay the address
|
||||||
|
channel until the write data is shifted completely into the write data FIFO,
|
||||||
|
or the current burst completely fills the write data FIFO.
|
||||||
|
|
||||||
### axi_ram module
|
### axi_ram module
|
||||||
|
|
||||||
RAM with parametrizable data and address interface widths. Supports FIXED and
|
AXI RAM with parametrizable data and address interface widths. Supports FIXED
|
||||||
INCR burst types as well as narrow bursts.
|
and INCR burst types as well as narrow bursts.
|
||||||
|
|
||||||
|
### axi_register module
|
||||||
|
|
||||||
|
AXI register with parametrizable data and address interface widths. Supports
|
||||||
|
all burst types. Inserts simple buffers or skid buffers into all channels.
|
||||||
|
Channel register types can be individually changed or bypassed. Wrapper for
|
||||||
|
axi_register_rd and axi_register_wr.
|
||||||
|
|
||||||
|
### axi_register_rd module
|
||||||
|
|
||||||
|
AXI register with parametrizable data and address interface widths. AR and R
|
||||||
|
channels only. Supports all burst types. Inserts simple buffers or skid
|
||||||
|
buffers into all channels. Channel register types can be individually changed
|
||||||
|
or bypassed.
|
||||||
|
|
||||||
|
### axi_register_wr module
|
||||||
|
|
||||||
|
AXI register with parametrizable data and address interface widths. WR, W,
|
||||||
|
and B channels only. Supports all burst types. Inserts simple buffers or
|
||||||
|
skid buffers into all channels. Channel register types can be individually
|
||||||
|
changed or bypassed.
|
||||||
|
|
||||||
|
### axil_adapter module
|
||||||
|
|
||||||
|
AXI lite width adapter module with parametrizable data and address interface
|
||||||
|
widths. Wrapper for axi_adapter_rd and axi_adapter_wr.
|
||||||
|
|
||||||
|
### axil_adapter_rd module
|
||||||
|
|
||||||
|
AXI lite width adapter module with parametrizable data and address interface
|
||||||
|
widths.
|
||||||
|
|
||||||
|
### axil_adapter_wr module
|
||||||
|
|
||||||
|
AXI lite width adapter module with parametrizable data and address interface
|
||||||
|
widths.
|
||||||
|
|
||||||
|
### axil_interconnect module
|
||||||
|
|
||||||
|
AXI lite shared interconnect with parametrizable data and address interface
|
||||||
|
widths. Small in area, but does not support concurrent operations.
|
||||||
|
|
||||||
|
### axil_ram module
|
||||||
|
|
||||||
|
AXI lite RAM with parametrizable data and address interface widths.
|
||||||
|
|
||||||
|
### axil_register module
|
||||||
|
|
||||||
|
AXI lite register with parametrizable data and address interface widths.
|
||||||
|
Inserts skid buffers into all channels. Channel registers can be individually
|
||||||
|
bypassed. Wrapper for axil_register_rd and axil_register_wr.
|
||||||
|
|
||||||
|
### axil_register_rd module
|
||||||
|
|
||||||
|
AXI lite register with parametrizable data and address interface widths. AR
|
||||||
|
and R channels only. Inserts simple buffers into all channels. Channel
|
||||||
|
registers can be individually bypassed.
|
||||||
|
|
||||||
|
### axil_register_wr module
|
||||||
|
|
||||||
|
AXI lite register with parametrizable data and address interface widths. WR,
|
||||||
|
W, and B channels only. Inserts simple buffers into all channels. Channel
|
||||||
|
registers can be individually bypassed.
|
||||||
|
|
||||||
### Common signals
|
### Common signals
|
||||||
|
|
||||||
@ -70,12 +169,38 @@ INCR burst types as well as narrow bursts.
|
|||||||
DATA_WIDTH : width of wdata and rdata signals
|
DATA_WIDTH : width of wdata and rdata signals
|
||||||
STRB_WIDTH : width of wstrb signal
|
STRB_WIDTH : width of wstrb signal
|
||||||
ID_WIDTH : width of *id signals
|
ID_WIDTH : width of *id signals
|
||||||
USER_WIDTH : width of *user signals
|
AWUSER_ENABLE : enable awuser signal
|
||||||
|
AWUSER_WIDTH : width of awuser signal
|
||||||
|
WUSER_ENABLE : enable wuser signal
|
||||||
|
WUSER_WIDTH : width of wuser signal
|
||||||
|
BUSER_ENABLE : enable buser signal
|
||||||
|
BUSER_WIDTH : width of buser signal
|
||||||
|
ARUSER_ENABLE : enable aruser signal
|
||||||
|
ARUSER_WIDTH : width of aruser signal
|
||||||
|
RUSER_ENABLE : enable ruser signal
|
||||||
|
RUSER_WIDTH : width of ruser signal
|
||||||
|
|
||||||
### Source Files
|
### Source Files
|
||||||
|
|
||||||
rtl/arbiter.v : Parametrizable arbiter
|
rtl/arbiter.v : Parametrizable arbiter
|
||||||
rtl/axi_ram.v : Parametrizable AXI RAM
|
rtl/axi_adapter.v : AXI lite width converter
|
||||||
|
rtl/axi_adapter_rd.v : AXI lite width converter (read)
|
||||||
|
rtl/axi_adapter_wr.v : AXI lite width converter (write)
|
||||||
|
rtl/axi_fifo.v : AXI FIFO
|
||||||
|
rtl/axi_fifo_rd.v : AXI FIFO (read)
|
||||||
|
rtl/axi_fifo_wr.v : AXI FIFO (write)
|
||||||
|
rtl/axi_ram.v : AXI RAM
|
||||||
|
rtl/axi_register.v : AXI register
|
||||||
|
rtl/axi_register_rd.v : AXI register (read)
|
||||||
|
rtl/axi_register_wr.v : AXI register (write)
|
||||||
|
rtl/axil_adapter.v : AXI lite width converter
|
||||||
|
rtl/axil_adapter_rd.v : AXI lite width converter (read)
|
||||||
|
rtl/axil_adapter_wr.v : AXI lite width converter (write)
|
||||||
|
rtl/axil_interconnect.v : AXI lite interconnect
|
||||||
|
rtl/axil_ram.v : AXI lite RAM
|
||||||
|
rtl/axil_register.v : AXI lite register
|
||||||
|
rtl/axil_register_rd.v : AXI lite register (read)
|
||||||
|
rtl/axil_register_wr.v : AXI lite register (write)
|
||||||
rtl/priority_encoder.v : Parametrizable priority encoder
|
rtl/priority_encoder.v : Parametrizable priority encoder
|
||||||
|
|
||||||
### AXI4-Lite Interface Example
|
### AXI4-Lite Interface Example
|
||||||
@ -160,3 +285,4 @@ individual test scripts can be run with python directly.
|
|||||||
### Testbench Files
|
### Testbench Files
|
||||||
|
|
||||||
tb/axi.py : MyHDL AXI4 master and memory BFM
|
tb/axi.py : MyHDL AXI4 master and memory BFM
|
||||||
|
tb/axil.py : MyHDL AXI4 lite master and memory BFM
|
||||||
|
Loading…
x
Reference in New Issue
Block a user