您的当前位置:首页正文

实验六 DDS信号发生器设计

来源:华佗健康网
实验五 DDS信号发生器设计

一.实验目的:学习利用EDA技术和FPGA实现直接数字频率综合器DDS的设计。 二.实验设备:

1.电脑,quartus ii 集成开发环境 2.GX_SOPC_EP3C10_EDK系统 三.实验实训要求

1.使用quartus ii 集成开发环境完成直接数字频率综合器DDS的设计 2.利用GX_SOPC_EP3C10_EDK系统和电脑完成实验并观察波形 四.实验原理:参考6.12节。

图6-72是根据图6-71的基本DDS原理框图作出的电路原理图的顶层设计,其中相位累加器的位宽是32。图中共有六组元件模块和一些接口,说明如下:

NOTlpm_counter0clockinstup counterDFFinst6PRNq[21..0]coutDQOUTPUTcoutOUTPUTcout7PIN_187PIN_70PLL30时钟:50MHzCLKINPUTVCC相位累加器CLRNinst3AA[31..0]inclk0inclk0 frequency: 50.000 MHzOperation Mode: NormalClk RatioPh (dg)DC (%)c02/50.0050.00c032位加法器ADDER32B32位寄存器REG32BLoadDOUT[31..0]PIN_23B[31..0]A[31..0]B[31..0]S[31..0]DIN[31..0]inst7CNT4BCyclone IIIinst4inst18位DAC 0832输出波形在5E+系统的LEDB数码上显示频率字NOTK1INPUTVCCCLKDOUT[3..0]inst8OUTPUTF[3..0]PIN_76键K1控制输出频率inst10B[31..21]PIN_176PIN_179PIN_180PIN_181PQA[7..0]正弦波形ROMOUTPUTPA[7..0]sin8x8AA[31..24]address[7..0]8 bits256 wordsq[7..0]PQA[7..0]GNDVCCB[16..0]PIN_40PIN_39PIN_37PIN_35PIN_34PIN_33PIN_31PIN_30inclockinst2Block type: M9K

图6-72 DDS信号发生器顶层原理图

(1) 32位加法器ADDER32。由LPM_ADD_SUB宏模块构成。设置了2级流水线结构,使其在时钟控制下有更高的运算速度和输入数据稳定性。

(2) 32位寄存器DFF32。由LPM_FF宏模块担任。ADDER32与DFF32构成一个32位相位累加器,其高8位A[31..24]作为波形数据ROM的地址。

(3) 正弦波形数据ROM。正弦波形数据ROM模块sin_8X8的地址线和数据线位宽都是8位。这就是说,其中的一个周期的正弦波数据有256个,每个数据有8位。其输出可以接一个8位的高速DAC。ROM中的MIF数据文件可用专用软件工具获得,这里不再深入探讨。

(4) 频率控制字输入B[20..17]由计数器CNT4B产生。本来的频率控制字是32位的,但为了方便实验验证,把高于20和低于17的输入位预先设置成0或1。

频率控制字B[31..0]与由DAC[7..0]驱动的DAC的正弦信号频率的关系,可以由公式foutB[31..0]fCLK算出。其中fout为DAC输出的正弦波信号322频率,fclk是CLK的时钟频率,直接输入是50MHz,接入锁相环后可达到更高频率。频率上限要看DAC的速度。如果接高速DAC,如10位的5651,输出速度可达180MHz。但应该注意,5651需要一个与数据输入频率相同的工作时钟驱动,这就是图6-72中的DAC_CLK,它用于作为外部DAC的工作时钟。

当B[20..17]=0FH、01H时,DAC输出数据的速度有很大不同。

图6-73是图6-72电路的仿真波形。尽管这个波形只是局部的,但也能看出DDS的部分性能。即随着频率字B[20..0]的加大,电路中ROM的数据输出的速度也将提高。

(5) DAC驱动数据口DAC[7..0]。如果外部DAC是DAC0832,只需将DAC[7..0]输出给0832即可,信号频率算法不变,而且要注意0832的速度只有1MHz。

五.实验内容

根据图6-72完成整体设计和仿真测试,深入了解其功能,并由仿真结果进一步说明DDS的原理。完成编译和下载,用嵌入式逻辑分析仪观察输出波形。

1.绘制并完成电路原理图

(1) 用LPM_ADD_SUB宏模块生成32位加法器ADDER32。 (2) 用LPM_FF宏模块生成32位寄存器DFF32。 (3) 用ROM:1-PORT生成正弦波形数据ROM。

(4) 生成lut8x8.mif文件,实现8X8正弦波形文件,并写入ROM。

(5) 用LPM_COUNTER宏模块生成4位计数器,并用D触发器构成2进制分频器,生成逻辑分析仪所需时钟信号COUT。

(6) 用LPM_COUNTER宏模块生成4位计数器CNT4B,用作频率控制字,并将输入引脚定义为91,即GX_SOPC_EP3C10_EDK系统板的key1,产生从0H~FH的作频率控制字,是输出频率发生对应的变化。

(7) 用ATLPLL宏模块生成PLL电路,输出频率为20MHz,亦可生成更高的频率。 (8) 参考图6-72连接其他线路。 2. 用嵌入式逻辑分析仪观察输出波形 (1) 打开SignalTapII编辑窗口完成设置

选择File→New命令,,在New窗口中选择SignalTap II Logic Analyzer File。单击OK按钮,即出现SignalTap II编辑窗口,如图4-30所示。

首先单击上排的Instance栏内的auto_signaltap_0,更改此名为dds,这是其为了调入待测信号名,在下栏的空白处双击,即弹出Node Finder

窗口,再于Filter栏选择“Pins: output\单击List按钮,即在左栏出现与此工程相关的所有输出信号。选择需要观察的信号名:4位输出总线F[3..0]、正弦输出总线信号PA[7..0]。单击OK按钮后即可将这些信号调入SignalTap II信号观察窗口。

将工程的输出分频时钟信号COUT兼作逻辑分析仪的采样叫钟。单击窗口左下角的Setup选项卡,选择右端signal configuration 下方Clock栏右侧的“„”按钮,即出现Node Finder窗口,为了说明和演示方便,选择计数器工程的输出分频时钟信号COUT作为逻辑分析仪的采样时钟,接着在Data框的Sample Depth栏选择采样深度为2K位。

选择File→Save As命令,输入此SignalTapTI文件名为test.stp(默认文件名stpl,不修改也可)。单击“保存”按钮后,将出现个提示:“Do you want to enable SignalTapII „”,单击“是”按钮,表示同意再次编译时将此SignalTap II文件(核)与工程(ddsp)捆绑在一起综合/适配,以便一同被下载进FPGA芯片中去完成实时测试任务。

(2) 编译下载、启动SignalTap II进行采样与分析

首先选择Processing—Start Compilation命令,启动全程编泽。接着打开电源,连接JTAG口,设定通信模式。打开编程窗口准备下载SOF文件。最后下载文件ddsp.sof。也可以利用SignalTap II Analyzer窗口来下载SOF文件。

单击Instance名cnts,再单击Processing菜单的Autorun Analysis按钮,启动SignalTap II连续采样。这时就能在SignalTap II数据窗口通过JTAG口观察到来自开发板上FPGA内部的实时信号。如果希望观察到可形成类似模拟波形的数字信号波形,可以右击所要观察的总线信号名(如PA),在弹出的菜单中选择总线显示模式Bus Display Format为Unsigned Line Chart,即可获得 “模拟信号波形”。

(3)引脚定义说明

(4)实验板操作设计端口 芯片引脚 开发板模块 CLK PIN_22 SW1A F[3] PIN_75 LED4 F[2] PIN_74 LED3 F[1] PIN_73 LED2 F[0] PIN_72 LED1 K1 PIN_91 PA[7] PIN_110 PA[6] PIN_106 PA[5] PIN_104 PA[4] PIN_103 PA[3] PIN_80 LED8 PA[2] PIN_79 LED7 PA[1] PIN_77 LED6 PA[0] PIN_76 LED5

跳线器连接在 F1_SW1_JP1(2-3),下载程序到实验板上,运行SignalTap II Analyzer 观察PA输出的模拟信号波形,通过按动按键F1_SW1改变CNT4B计数值,并通过led1~4观察结果,对照此结果可发现随着CNT4B数值改变,输出波形的频率发生对应得变化。

六.思考题:如果不作截断,此例的频率精度和相位精度分别是多少? 基于GX_SOPC_EP3C10_EDK系统的演示示例:./EXP_DDS/DDSP。

因篇幅问题不能全部显示,请点此查看更多更全内容