使用DDR4控制器实现多通道数据读写(十四)

一、概述
在上一章节中讲述了测试模块的内容及注意事项,在测试模块中,会给出写开始标志,写起始地址,写突发长度,写数据等信号,这些信号需要通过axi写模块将上述信号通过axi4的协议与interconnect交互。本章节讲述axi写控制模块的内容。
在这里插入图片描述
二、模块接口
ddr4_axi_wr_ctrl模块接口列表:
在这里插入图片描述
在这里插入图片描述
三、ddr4_axi_wr_ctrl模块功能介绍
模块中的接口与interconnect交互,其中ddr4_axi_wr_ctrl模块作为axi4的主接口,interconnect作为从接口。模块主要功能为将接收的测试模块信号发送给interconnect RIP核。
(1)状态机模型:
在这里插入图片描述
状态机分析:
IDLE:此状态为空闲状态,当接收到写开始标志后,状态机跳转到SEND_ADDR状态。
SEND_ADDR:此状态时,表示地址通道正在通信,发送写地址。写地址只发送一拍,所以当awready == 1 && awvalid == 1时,表示写地址被取走,然后状态机跳转到SEND_DATA状态。
SEND_DATA:此状态时,表示正在写数据,有wlast信号作为最后一拍数据的标志,当wlast == 1 && wready == 1 && wvalid == 1后,表示最后一拍的数据已经发送完成。此时状态机跳转到REC_BVALID状态。
REC_BVALID:此状态时,表示正在接收写响应。当写响应信号有效时,接收的通道标识为写入的相同,响应状态为0,表示写响应完成。状态机返回IDLE状态。

(2)、ddr4_axi_wr_ctrl模块重点时序:
黄色信号为输入,绿色信号为输出
在这里插入图片描述
时序说明:
1、 写地址通道
在时序图中可以看到,在接收到写标志信号时,将写地址和写长度通过握手传输给interconnect,图中的写长度awlen_in的值为’hff,实际发送的数据长度为’h100。初始地址为64的整数倍即可。

2、 写数据通道
将写数据通过wready与wvalid握手发送出去,每发送一拍数据,地址的计数值+64。一共发送了’h100个数据,所以最后地址的计数值awaddr_cnt为x+’h4000。这个值的作用是,下一次再发起写突发时,这个值可以用作初始地址。这样即可以避免地址冲突,也可以将ddr4的地址空间写满。当awaddr_cnt计数到ddr4的最大地址时,将计数器awaddr_cnt归零,怎样判断awaddr_cnt计数到ddr4的最大地址呢,ddr4的地址空间是固定的,在配置ddr4 IP时地址的位宽为32位,当awaddr_cnt计数到地址的最大值-64时,并且wvalid == 1 && wready == 1,此时ddr4的地址空间已经写到最大值。这时再将awaddr_cnt的值清0。当然,当地址写到最大值时,也是本次突发的最后一个数据。如果再向ddr4中写入数据,需要外部判断ddr4中有没有空闲地址。

3、 写响应通道
在每次写突发将数据发送出去后,开始接收写响应,在写响应通道中会接收响应的通道标识bid,在响应状态为正常,bid与awid相同时,表明写响应正确。也代表本次写突发结束。

(3)、其他接口信号说明
在本模块中,S_AXI_AWLOCK、S_AXI_AWCACHE、S_AXI_AWPROT、S_AXI_AWQOS在工程中没有特别要求,可以设置为0。
以下说明了这四个信号在axis4总线中的理解:
awlock(arlock):访问类型(1bits):0为正常访问。
awcache(arcache):内存类型(4bits):面命一次传输是怎样通过系统的。4’b0000为不缓存和不缓冲。
awprot(arprot):保护水平及安全等级(3bits):3’b000为普通访问。
awqos(arqos):服务质量(4bits),该信号用于优先级声明信号,值越高代表优先级越高。

四、章节总结
在本章中描述了如何使用axi4协议将测试模块接口信号写进interconnect,其中需要注意的点是写地址和写长度的要求,需要在用户模块中根据自己的需求来定义这些信号。

本文章由威三学社出品
对课程感兴趣可以私信联系

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值