更多信息和更新:http://alexforencich.com/wiki/en/verilog/axi/start
GitHub代码库:https://github.com/alexforencich/verilog-axi
AXI4和AXI4 Lite总线组件的集合。大多数组件都可以在接口宽度上进行完全参数化。包括完整的cocotb测试台,这些测试台利用了cocotbext-axi。
axi_adapter
模块具有可参数化数据和地址接口宽度的AXI宽度适配器模块。
支持INCR突发类型和狭窄突发。是axi_adapter_rd
和axi_adapter_wr
的包装器。
axi_adapter_rd
模块具有可参数化数据和地址接口宽度的AXI宽度适配器模块。 支持INCR突发类型和狭窄突发。
axi_adapter_wr
模块具有可参数化数据和地址接口宽度的AXI宽度适配器模块。 支持INCR突发类型和狭窄突发。
axi_axil_adapter
模块AXI到AXI Lite转换器和宽度适配器模块,具有可参数化的数据和地址接口宽度。
支持INCR突发类型和狭窄突发。是axi_axil_adapter_rd
和axi_axil_adapter_wr
的包装器。
axi_axil_adapter_rd
模块AXI到AXI Lite转换器和宽度适配器模块,具有可参数化的数据和地址接口宽度。 支持INCR突发类型和狭窄突发。
axi_axil_adapter_wr
模块AXI到AXI Lite转换器和宽度适配器模块,具有可参数化的数据和地址接口宽度。 支持INCR突发类型和狭窄突发。
axi_cdma
模块AXI到AXI DMA引擎,具有可参数化的数据和地址接口宽度。 只生成全宽INCR突发,最大突发长度可参数化。 支持未对齐传输,可以通过参数禁用以节省资源消耗。
axi_cdma_desc_mux
模块AXI CDMA模块的描述符多路复用器/解复用器。 支持在多个请求源之间共享AXI CDMA模块,交错请求和分发响应。
axi_crossbar
模块具有可参数化数据和地址接口宽度以及主从接口计数的AXI非阻塞交叉互连。
支持所有突发类型。完全非阻塞,具有完全独立的读写路径;
基于ID的事务排序保护逻辑;每个端口的地址解码、准入控制以及解码错误处理。是axi_crossbar_rd
和axi_crossbar_wr
的包装器。
可以使用axi_crossbar_wrap.py
生成包装器。
axi_crossbar_addr
模块AXI非阻塞交叉互连的地址解码和准入控制模块。
axi_crossbar_rd
模块具有可参数化数据和地址接口宽度以及主从接口计数的AXI非阻塞交叉互连。 仅限读接口。 支持所有突发类型。完全非阻塞,具有完全独立的读写路径; 基于ID的事务排序保护逻辑;每个端口的地址解码、准入控制以及解码错误处理。
axi_crossbar_wr
模块具有可参数化数据和地址接口宽度以及主从接口计数的AXI非阻塞交叉互连。 仅限写接口。 支持所有突发类型。完全非阻塞,具有完全独立的读写路径; 基于ID的事务排序保护逻辑;每个端口的地址解码、准入控制以及解码错误处理。
axi_dma
模块AXI到AXI流DMA引擎,具有可参数化的数据和地址接口宽度。
只生成全宽INCR突发,最大突发长度可参数化。
支持未对齐传输,可以通过参数禁用以节省资源消耗。是axi_dma_rd
和axi_dma_wr
的包装器。
axi_dma_desc_mux
模块AXI DMA模块的描述符多路复用器/解复用器。 支持在多个请求源之间共享AXI DMA模块,交错请求和分发响应。
axi_dma_rd
模块AXI到AXI流DMA引擎,具有可参数化的数据和地址接口宽度。 只生成全宽INCR突发,最大突发长度可参数化。 支持未对齐传输,可以通过参数禁用以节省资源消耗。
axi_dma_wr
模块AXI流到AXI DMA引擎,具有可参数化的数据和地址接口宽度。 只生成全宽INCR突发,最大突发长度可参数化。 支持未对齐传输,可以通过参数禁用以节省资源消耗。
axi_dp_ram
模块具有可参数化数据和地址接口宽度的AXI双端口RAM。 支持FIXED和INCR突发类型以及狭窄突发。
axi_fifo
模块具有可参数化数据和地址接口宽度的AXI FIFO。
支持所有突发类型。
可以选择在写数据完全移位进入FIFO或读数据FIFO有足够的容量以容纳整个突发之前延迟地址通道。是axi_fifo_rd
和axi_fifo_wr
的包装器。
axi_fifo_rd
模块具有可参数化数据和地址接口宽度的AXI FIFO。 仅限AR和R通道。 支持所有突发类型。 可以选择在读取数据FIFO为空或有足够的容量以容纳整个突发之前延迟地址通道。
axi_fifo_wr
模块具有可参数化数据和地址接口宽度的AXI FIFO。 仅限WR、W和B通道。 支持所有突发类型。 可以选择在写数据完全移位进入写数据FIFO,或当前突发完全填满写数据FIFO之前延迟地址通道。
axi_interconnect
模块具有可参数化数据和地址接口宽度以及主从接口计数的AXI共享互连。 支持所有突发类型。 面积小,但不支持并发操作。
可以使用axi_interconnect_wrap.py
生成包装器。
axi_ram
模块具有可参数化数据和地址接口宽度的AXI RAM。 支持FIXED和INCR突发类型以及狭窄突发。
axi_ram_rd_if
模块具有可参数化数据和地址接口宽度的AXI RAM读接口。 处理突发并呈现简化的内部存储器接口。支持FIXED和INCR突发类型以及狭窄突发。
axi_ram_wr_if
模块具有可参数化数据和地址接口宽度的AXI RAM写接口。 处理突发并呈现简化的内部存储器接口。支持FIXED和INCR突发类型以及狭窄突发。
axi_ram_wr_rd_if
模块具有可参数化数据和地址接口宽度的AXI RAM读写接口。
处理突发并呈现简化的内部存储器接口。
支持FIXED和INCR突发类型以及狭窄突发。是axi_ram_rd_if
和axi_ram_wr_if
的包装器。
axi_register
模块具有可参数化数据和地址接口宽度的AXI寄存器。
支持所有突发类型。
在所有通道中插入简单缓冲区或滑移缓冲区。
可以单独更改或绕过通道寄存器类型。是axi_register_rd
和axi_register_wr
的包装器。
axi_register_rd
模块具有可参数化数据和地址接口宽度的AXI寄存器。 仅限AR和R通道。 支持所有突发类型。 在所有通道中插入简单缓冲区或滑移缓冲区。 可以单独更改或绕过通道寄存器类型。
axi_register_wr
模块具有可参数化数据和地址接口宽度的AXI寄存器。 仅限WR、W和B通道。 支持所有突发类型。 在所有通道中插入简单缓冲区或滑移缓冲区。 可以单独更改或绕过通道寄存器类型。
axil_adapter
模块具有可参数化数据和地址接口宽度的AXI Lite宽度适配器模块。
是axi_adapter_rd
和axi_adapter_wr
的包装器。
axil_adapter_rd
模块具有可参数化数据和地址接口宽度的AXI Lite宽度适配器模块。
axil_adapter_wr
模块具有可参数化数据和地址接口宽度的AXI Lite宽度适配器模块。
axil_cdc
模块具有可参数化数据和地址接口宽度的AXI Lite时钟域交叉模块。
是axi_cdc_rd
和axi_cdc_wr
的包装器。
axil_cdc_rd
模块具有可参数化数据和地址接口宽度的AXI Lite时钟域交叉模块。
axil_cdc_wr
模块具有可参数化数据和地址接口宽度的AXI Lite时钟域交叉模块。
axil_crossbar
模块具有可参数化数据和地址接口宽度以及主从接口计数的AXI Lite非阻塞交叉互连。
完全非阻塞,具有完全独立的读写路径;基于FIFO的事务排序保护逻辑;
每个端口的地址解码、准入控制和解码错误处理。是axil_crossbar_rd
和axil_crossbar_wr
的包装器。
可以使用axil_crossbar_wrap.py
生成包装器。
axil_crossbar_addr
模块AXI Lite非阻塞交叉互连的地址解码和准入控制模块。
axil_crossbar_rd
模块具有可参数化数据和地址接口宽度以及主从接口计数的AXI Lite非阻塞交叉互连。 仅限读接口。 完全非阻塞,具有完全独立的读写路径;基于FIFO的事务排序保护逻辑; 每个端口的地址解码、准入控制和解码错误处理。
axil_crossbar_wr
模块具有可参数化数据和地址接口宽度以及主从接口计数的AXI Lite非阻塞交叉互连。 仅限写接口。 完全非阻塞,具有完全独立的读写路径;基于FIFO的事务排序保护逻辑; 每个端口的地址解码、准入控制和解码错误处理。
axil_interconnect
模块具有可参数化数据和地址接口宽度以及主从接口计数的AXI Lite共享互连。 面积小,但不支持并发操作。
可以使用axil_interconnect_wrap.py
生成包装器。
axil_ram
模块具有可参数化数据和地址接口宽度的AXI Lite RAM。
axil_reg_if
模块具有可参数化数据和地址接口宽度的AXI Lite寄存器接口。
可用于在多个模块和层次结构级别组装一组控制寄存器,而无需复杂的仲裁逻辑。
是axil_reg_if_rd
和axil_reg_if_wr
的包装器。
axil_reg_if_rd
模块具有可参数化数据和地址接口宽度的AXI Lite寄存器接口。 仅限读方向。 可用于在多个模块和层次结构级别组装一组控制寄存器,而无需复杂的仲裁逻辑。
axil_reg_if_wr
模块具有可参数化数据和地址接口宽度的AXI Lite寄存器接口。 仅限写方向。 可用于在多个模块和层次结构级别组装一组控制寄存器,而无需复杂的仲裁逻辑。
axil_register
模块具有可参数化数据和地址接口宽度的AXI Lite寄存器。
在所有通道中插入滑移缓冲区。可以单独绕过通道寄存器。
是axil_register_rd
和axil_register_wr
的包装器。
axil_register_rd
模块具有可参数化数据和地址接口宽度的AXI Lite寄存器。 仅限AR和R通道。 在所有通道中插入简单缓冲区。可以单独绕过通道寄存器。
axil_register_wr
模块具有可参数化数据和地址接口宽度的AXI Lite寄存器。 仅限WR、W和B通道。 在所有通道中插入简单缓冲区。可以单独绕过通道寄存器。
awid : 写地址ID
awaddr : 写地址
awlen : 写突发长度
awsize : 写突发大小
awburst : 写突发类型
awlock : 写锁定
awcache : 写缓存处理
awprot : 写保护级别
awqos : 写QoS设置
awregion : 写区域
awuser : 写用户侧带信号
awvalid : 写地址有效
awready : 写地址就绪(来自从设备)
wdata : 写数据
wstrb : 写数据存位(字节选择)
wlast : 突发中最后的写数据传输
wuser : 写数据用户侧带信号
wvalid : 写数据有效
wready : 写数据就绪(来自从设备)
bid : 写响应ID
bresp : 写响应
buser : 写响应用户侧带信号
bvalid : 写响应有效
bready : 写响应就绪(来自主设备)
arid : 读地址ID
araddr : 读地址
arlen : 读突发长度
arsize : 读突发大小
arburst : 读突发类型
arlock : 读锁定
arcache : 读缓存处理
arprot : 读保护级别
arqos : 读QoS设置
arregion : 读区域
aruser : 读用户侧带信号
arvalid : 读地址有效
arready : 读地址就绪(来自从设备)
rid : 读数据ID
rdata : 读数据
rresp : 读响应
rlast : 突发中最后的读数据传输
ruser : 读数据用户侧带信号
rvalid : 读响应有效
rready : 读响应就绪(来自主设备)
ADDR_WIDTH : awaddr和araddr信号的宽度
DATA_WIDTH : wdata和rdata信号的宽度
STRB_WIDTH : wstrb信号的宽度
ID_WIDTH : *id信号的宽度
AWUSER_ENABLE : 启用awuser信号
AWUSER_WIDTH : awuser信号的宽度
WUSER_ENABLE : 启用wuser信号
WUSER_WIDTH : wuser信号的宽度
BUSER_ENABLE : 启用buser信号
BUSER_WIDTH : buser信号的宽度
ARUSER_ENABLE : 启用aruser信号
ARUSER_WIDTH : aruser信号的宽度
RUSER_ENABLE : 启用ruser信号
RUSER_WIDTH : ruser信号的宽度
RTL/arbiter.v : 可参数化的仲裁器
RTL/axi_adapter.v : AXI Lite宽度转换器
RTL/axi_adapter_rd.v : AXI Lite宽度转换器(读)
RTL/axi_adapter_wr.v : AXI Lite宽度转换器(写)
RTL/axi_axil_adapter.v : AXI到AXI Lite转换器
RTL/axi_axil_adapter_rd.v : AXI到AXI Lite转换器(读)
RTL/axi_axil_adapter_wr.v : AXI到AXI Lite转换器(写)
RTL/axi_cdma.v : AXI中央DMA引擎
RTL/axi_cdma_desc_mux.v : AXI CDMA描述符复用器
RTL/axi_crossbar.v : AXI非阻塞交叉互连
RTL/axi_crossbar_addr.v : AXI交叉互连地址模块
RTL/axi_crossbar_rd.v : AXI交叉互连(读)
RTL/axi_crossbar_wr.v : AXI交叉互连(写)
RTL/axi_dma.v : AXI DMA引擎
RTL/axi_dma_desc_mux.v : AXI DMA描述符复用器
RTL/axi_dma_rd.v : AXI DMA引擎(读)
RTL/axi_dma_wr.v : AXI DMA引擎(写)
RTL/axi_dp_ram.v : AXI双端口RAM
RTL/axi_fifo.v : AXI FIFO
RTL/axi_fifo_rd.v : AXI FIFO(读)
RTL/axi_fifo_wr.v : AXI FIFO(写)
RTL/axi_interconnect.v : AXI共享互连
RTL/axi_ram.v : AXI RAM
RTL/axi_ram_rd_if.v : AXI RAM读接口
RTL/axi_ram_wr_if.v : AXI RAM写接口
RTL/axi_ram_wr_rd_if.v : AXI RAM读写接口
RTL/axi_register.v : AXI寄存器
RTL/axi_register_rd.v : AXI寄存器(读)
RTL/axi_register_wr.v : AXI寄存器(写)
RTL/axil_adapter.v : AXI Lite宽度转换器
RTL/axil_adapter_rd.v : AXI Lite宽度转换器(读)
RTL/axil_adapter_wr.v : AXI Lite宽度转换器(写)
RTL/axil_cdc.v : AXI Lite CDC
RTL/axil_cdc_rd.v : AXI Lite CDC(读)
RTL/axil_cdc_wr.v : AXI Lite CDC(写)
RTL/axil_crossbar.v : AXI Lite非阻塞交叉互连
RTL/axil_crossbar_addr.v : AXI Lite交叉互连地址模块
RTL/axil_crossbar_rd.v : AXI Lite交叉互连(读)
RTL/axil_crossbar_wr.v : AXI Lite交叉互连(写)
RTL/axil_interconnect.v : AXI Lite共享互连
RTL/axil_ram.v : AXI Lite RAM
RTL/axil_reg_if.v : AXI Lite寄存器接口
RTL/axil_reg_if_rd.v : AXI Lite寄存器接口(读)
RTL/axil_reg_if_wr.v : AXI Lite寄存器接口(写)
RTL/axil_register.v : AXI Lite寄存器
RTL/axil_register_rd.v : AXI Lite寄存器(读)
RTL/axil_register_wr.v : AXI Lite寄存器(写)
RTL/priority_encoder.v : 可参数化的优先级编码器
写
___ ___ ___ ___ ___
时钟 ___/ \___/ \___/ \___/ \___/ \___
_______
awid XXXX_ID____XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
_______
awaddr XXXX_ADDR__XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
_______
awlen XXXX_00____XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
_______
awsize XXXX_0_____XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
_______
awburst XXXX_0_____XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
_______
awprot XXXX_PROT__XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
_______
awvalid ___/ \_______________________________
awready \_______/
_______________
wdata XXXX_DATA__________XXXXXXXXXXXXXXXXXXXXXXXX
_______________
wstrb XXXX_STRB__________XXXXXXXXXXXXXXXXXXXXXXXX
_______________
wvalid ___/ \_______________________
_______
wready ___________/ \_______________________
_______
bid XXXXXXXXXXXXXXXXXXXXXXX_ID____XXXXXXXX
_______
bresp XXXXXXXXXXXXXXXXXXXXXXX_RESP__XXXXXXXX
_______
bvalid ___________________________/ \_______
___________________________________________
bready
读
___ ___ ___ ___ ___
时钟 ___/ \___/ \___/ \___/ \___/ \___
_______
arid XXXX_ID____XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
_______
araddr XXXX_ADDR__XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
_______
arlen XXXX_00____XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
_______
arsize XXXX_0_____XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
_______
arburst XXXX_0_____XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
_______
arprot XXXX_PROT__XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
_______
arvalid ___/ \_______________________________
arready
_______
rid XXXXXXXXXXXXXXXXXXXXXXX_ID____XXXXXXXX
_______
rdata XXXXXXXXXXXXXXXXXXXXXXX_DATA__XXXXXXXX
_______
rresp XXXXXXXXXXXXXXXXXXXXXXX_RESP__XXXXXXXX
_______
rvalid ___________________________/ \_______
___________________________________________
rready
运行包含的测试台需要cocotb、cocotbext-axi和Icarus Verilog。 测试台可以直接使用pytest运行(需要cocotb-test),通过tox使用pytest,或者通过cocotb makefiles运行。
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。