概述
在上一章节讲述了使用两个dds产生不同频率的sin波形,通道0为2MHz,通道1为5MHz,截取一部分dds产生的sin波形,并写入到ddr4中。本章节使用仿真来查看波形,更直观的观察并了解两个通道存储波形的过程。
仿真波形
1.dds_ctrl模块使用两个dds产生sin波形

图1中,使用两个dds根据aclken的使能情况,来分别输出sin波形。
2.chnl_test_0模块产生写使能、写地址、写长度来驱动ddr4的写请求。

图2中,发送写指令来控制数据的传输,wdata_in_0为传输的数据,data_sin_0为通道0中的sin波形数据。
对于通道0的写地址,在两通道都写完数据后,产生写请求,将通道1的地址计数作为通道0下一次的写地址。写长度固定为256突发。
3.通道0的ddr4_axi_wr_ctrl模块,将数据波形根据写请求传输到interconnect中。

图3中,可以看到在wvalid和wready握手时,数据有效,其中就包含了传输的2MHz的sin波形。
4.chnl_test_1模块产生写使能、写地址、写长度来驱动ddr4的写请求。

图4中,发送写指令来控制数据的传输,wdata_in_1为传输的数据,data_sin_1为通道1中的sin波形数据。
对于通道1的写地址,在两通道都写完数据后,产生写请求,将通道1的地址计数+’h4000作为通道1下一次的写地址。写长度固定为256突发。
5.通道1的ddr4_axi_wr_ctrl模块,将数据波形根据写请求传输到interconnect中。

图5中,可以看到在wvalid和wready握手时,数据有效,其中就包含了传输的5MHz的sin波形。
6.interconnect中通道0和通道1的写数据情况。

图6中,显示了通道0和通道1的写数据情况,每个通道产生10次写突发,每次突发长度为255,实际突发256个数据。写地址在通道0和通道1中交替连续。这样写ddr4的地址可以连续。

图7中,可以看到interconnect的两个通道写数据情况,通道0写入的数据包含2MHz的数据波形,通道1写入的数据包含5MHz的数据波形。

7.ddr4中写数据通道

图7中,根据interconnect的控制,向ddr4发起写请求,在valid与vready握手时传输数据,因为经过interconnect控制后,valid没有连续,有些地方看起来不是那么整齐,实际写进的数据使正确的。
并且在ddr4侧,写突发的地址为连续的,通过awid来区分通道0和通道1。
总结
经过仿真后,更清晰的观察了写数据的传输情况,下一节来实现将ddr4中存储的数据取出,使用通道2和通道3读取数据波形。来验证ddr4多通道读写功能。

