为了控制Vivado中的DDS IP首先要了解DDS的结构。如下: 看起来和本科中我手写的DDS结构差距不大。 图中,输入为:(Phase Increment)Δθ,物理意义为每次相位调整的值。该值越大,证明DDS输出的频率就越大。如果要输入一个固定的频率那么该值也应该固定。对该输入更为简单的描述可以是:如下图所示,M就是(Phase Incre...
调用DDS IP核实现扫频信号,我这里设计的扫频范围是1KHz–10KHz,通过控制频率控制字来更改输出的波形的频率,让其在1KHz到10KHz直接变化,又让其从10KHz变化到1KHz。 DDS_top: module dds_top( input wire aclk, input wire reset_n, output valid, output signed [7:0] sin, output signed [7:0] cos ); ...
2、DDS IP核工程例程及仿真测试 本例程例化两个IP,一个实现单通道DDS输出,一个实现4通道DDS输出,用于对比测试单通道和多通道DDS IP差异以及了解如何进行参数配置。参数配置表如下所示。 |IP核模式 | 系统时钟 | SFDR | 频率分辨率 | 输出频率 | 相位累加器 | | 单通道 | 100MHz | 110dB | 0.4Hz | 1M...
DDS IP核可以配置为三种模式:相位产生器、SIN/COS LUT或者相位累加器和SIN/COS LUT(即DDS)。 2、DDS IP核工程例程及仿真测试 本例程例化两个IP,一个实现单通道DDS输出,一个实现4通道DDS输出,用于对比测试单通道和多通道DDS IP差异以及了解如何进行参数配置。参数配置表如下所示。 |IP核模式 | 系统时钟 | SFD...
设计DDS的核心就是调用IP ROM,vivado调用ROM的方法和ISE相类似,都是加载.coe文件,我这里特地做笔记,以防忘记。 这是DDS的原理图,DDS并没有像它的名字一样说的那么玄乎,它的核心便是控制频率的fword字输入,和相位字pword输入,最后调用IP核查找表即可,代码也十分简单,下面给出DDS design代码。
设计DDS的核心就是调用IP ROM,vivado调用ROM的方法和ISE相类似,都是加载.coe文件,我这里特地做笔记,以防忘记。 这是DDS的原理图,DDS并没有像它的名字一样说的那么玄乎,它的核心便是控制频率的fword字输入,和相位字pword输入,最后调用IP核查找表即可,代码也十分简单,下面给出DDS design代码。
本讲使用两个 DDS 产生待滤波的信号和matlab产生带滤波信号,结合 FIR 滤波器搭建一个信号产生及滤波的系统,并编写 testbench 进行仿真分析,第五讲、第六讲开始编写 verilog 代码设计FIR滤波器,不再调用IP核。 系统框图如图所示: 1. 添加DDS的IP核 (1) 新建一个原理图文件,添加DDS的IP。
打开VIVADO,选择IP Catalog 输入DDS,找到DDS IP核,双击打开 打开IP核配置,parameter Selection选择System Parameters 设置System Parameters参数: Spurious Free Dynamic Range的设置,这个参数与输出数据的宽度相关。 我需要位宽为10位的输出,因此Spurious Free Dynamic Range设置为10*6=60 ...
设计DDS的核心就是调用IP ROM,vivado调用ROM的方法和ISE相类似,都是加载.coe文件,我这里特地做笔记,以防忘记。 这是DDS的原理图,DDS并没有像它的名字一样说的那么玄乎,它的核心便是控制频率的fword字输入,和相位字pword输入,最后调用IP核查找表即可,代码也十分简单,下面给出DDS design代码。