跳转到主要内容
瑞苏盈科专栏
我与瑞苏盈科板卡的开发故事

FPGA小课堂-使用DDR4控制器实现多通道数据读写(18)

1.概述

 在之前已经使用interconnect IP 实现了DDR4的多通道读写功能,接下来为了更能接近实用性和更直观的展现多通道读写的功能,使用DDS IP 核生成两组正弦波信号,将两组正弦波信号通过其中两个通道存储到DDR4中,再使用另外两个通道将两组正弦波读取出来。

2.科学与技术

在DDS IP 的配置界面中,选择两个通道,参数选择硬件参数,可以直观看到DDS中的数字累加器的位宽,和输出的数据位宽。

   在手册中可以看到输出频率和相位宽度,相位角增量之间的关系。如图2所示。

在建立的IP工程中,每个通道的时钟频率为100MHz,相位的宽度为16位宽。想要输出2MHz的波形时,计算相位角增量。

另一个通道输出5MHz的波形:

在DDS IP核中,相位角增量配置如图3所示。

我们需要输出sin波形,在output selection选项中选择输出sine。

在补充说明界面中可以看到输出了两组数据,频率分别为50MHz和25MHz。

DDS仿真波形示例代码

因为m_axis_data_tvalid始终为高,而且m_axis_data_tdata中包含了两路数据,两路通道的数据交替输出。把数据m_axis_data_tdata分解为两路。

1.dds输出波形代码:

 2.仿真代码:

仿真波形

可以看到m_axis_data_tdata包含了两路数据,想要去除单通道的数据,需要将数据交替取出,并赋值给单通道的数据信号,从而得到两路数据chnl_0和chnl_1。

总结

在今天的工程中,使用了dds产生两组输出正弦波,后边会截取一部分波形,将这两个波形放到ddr4中存储。

文章来源:威视锐科技