block memory generator ip( axi4接口)示例工程仿真

文章详细介绍了Vivado的BlockMemoryIP如何使用AXI4协议进行读写操作。重点解析了awsize和awlen在写操作中的区别,以及wvalid、wready和wlast在数据传输中的作用。同时,对比了AXI4与AXI4-Lite、AXI-Stream的不同之处。
摘要由CSDN通过智能技术生成

用vivadio的block memory ip的示例工程,了解axi4。

blk_mem_gen_0_exdes.vhd这个是实际的顶层文件,包含了数据checker(axi_checker.vhd)、激励(bmg_stim_gen.vhd)、RAM的实体port(blk_mem_gen_0_wrapper.vhd)

1 axi写操作

1)aw开头的,是写地址通道相关的

需要注意的是awsize[2:0] 和awlen[7:0]的区别

awsize[2:0]是突发大小,字节选通中要更新的字节通道

awlen[7:0]是突发长度,与地址相关连的数据传输次数

举例 awlen[7:0]=0x09,这一次写入10个数

awsize[2:0]=0x2,表示位宽是4字节,一个突发是4字节

awburst[1:0]=0x1 表示突发的传输类型是incr,表示burst中的后续数据的存储地址会在初始地址的基础上进行递增,递增幅度与传输宽度相同,常用于ram等通过地址映射的存储器进行的数据读写。

2)w开头的,是写数据通道相关的

wrtrb[3:0]=0xf,在突发位宽与总线位宽不同时,使用该信号指示写入数据中的有效字节,当二者位宽相同时,该信号全部拉高,此时0xf是全高,说明一个突发数据的4字节等于总线的4字节,数据的4个字节全写入。

awvalid和awready同为高,awready为高在前,表示开始写入地址,因为此时awlen[7:0]=0xd,也就是要写入14个地址。

之后有wvalid和wready同为高,wready为高在前,wvalid与wdata是对齐的(14个数据),wvalid的最后一拍是和wlast对齐,写入的最后一个数。

3)b开头的,是写入响应通道相关的

awid与bid是一致的,证明是同一次写入

bvalid写响应信号,带着的货是bresp写响应状态,取货方准备好后发起bready(在这个仿真里bready都是1 )。

bresp[1:0]=0x0表示okay

2 axi读操作

1)ar开头的,是读地址通道相关的

有货的人把货(araddr)准备好了,发起arvalid信号;取货方,准备好后发起arready, 当arvalid arready同时为高时,交易成功。

2)r开头的,是读地址通道相关的

有货的人把货(rdata)准备好了,发起rvalid信号;取货方,准备好后发起rready,当rvalid rready同时为高时,交易成功。这个通道还附赠一个增值服务,拿到货后直接赠送一个rresp(读响应状态),不单独开一个项目。

rresp[1:0]=0x0表示okay

3 其他axi种类

vhdl看着看着就看懂一些了,毕竟和verilog思路是相通的

看到的资料:

axi4-lite是简化版的axi4,只支持单次写入数据。与axi4不同的是,axi4-lite需要同时发送命令(地址)和数据,而axi4是先处理读写命令(地址),在处理读写数据。

axi-stream取消了地址通道,是一个单纯数据传输接口。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

徐丹FPGA之路

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值