2018-2019学年第2学期数字系统设计工程实践(课号:103D47B)实验报告实验名称:DDS信号源设计学院信息科学与工程学院班级17电信专业集成电路成员蒋黔鲁姚学号176003533176003615指导教师张会红完成时间2019年3月29日目录一、实验任务与要求----------------------------------------------------------------------------31.1试验任务-----------------------------------------------------------------------------------------------31.2实验要求-----------------------------------------------------------------------------------------------3二、系统原理与方案设计---------------------------------------------------------------------32.1系统原理-----------------------------------------------------------------------------------------------32.2方案设计-----------------------------------------------------------------------------------------------4三、系统实现与实验结果分析---------------------------------------------------------------53.1系统实现-----------------------------------------------------------------------------------------------53.2实验结果-----------------------------------------------------------------------------------------------7四、结论-------------------------------------------------------------------------------------------9五、附录-----------------------------------------------------------------------------------------9一、实验任务与要求1.1试验任务利用FPGA+DAC,设计一个DDS信号发生器。1.2实验要求1.分辨率优于10Hz2.ROM表长度10位、位宽8位3.时钟频率:10MHz4.显示信号频率/频率控制字(可切换,十六进制显示,低频时含1位小数)5.输入频率控制字设置频率6.用最少的N和M实现。7.最高频率:保证每个输出周期有20个数据点二、系统原理与方案设计2.1系统原理1.参数确定已知输出正弦波频率公式:DDS的最小分辨率:通常用频率增量来表示频率合成器的分辨率这个增量也就是最低的合成频率。实验中系统时钟频率设置为10MHZ,为使分辨率优于10HZ故应用进行计算得,N=20,由于最高频率:保证每个输出周期有20个数据点,所以,M=20位,取20位。得到Mmax大约为52428计算得到最小输出频率fmin大约为9.537最大输出频率fmax大约为5000005.8362.程序总体流程图控制子系统的ASM图:说明:1)相位累加器为N位,sin表的大小为2^p,相位累加器的高P位用来寻址sin表。2)时钟频率为fc,若累加器按步进为M累加直至溢出,称M为频率控制字。3)相位寄存器每经过2^N/M个时钟fc后回到初始状态,相应地正弦查询表经过严格循环回到初始位置,整个DDS系统输出一个正弦波。2.2方案设计设计5个子系统,一个控制频率控制字M的输入,一个累加器,一个存储正弦波的ROM,一个乘法器进行输入的频率控制字和输出频率的转换,一个选择输出的模块进行频率控制字和输出频率的切换输出。三、系统实现与实验结果分析3.1系统实现电路图:1.频率控制字输入模块利用a1,a2,a3分别对应0,1,2三个按键来控制频率控制字M的输入,三个按键可以控制八个状态,取其中五个状态来控制5个数码管,101控制第五个数码管,100控制第四个数码管,011控制第三个数码管,010控制第二个数码管,001控制第一个数码管。Cp是系统时钟,clr是清零。2.累加器模块m[19..0]是输入的频率控制字,clk为系统时钟,接按键7,clr是系统复位接按键频率控制字M选择累加器8*10ROM表乘法器选择器(选择输出频率还是频率控制字)4,n[19..0]为累加器的位数3.rom模块相位累加器的高10位用来寻址rom表,q[7..0]用来输出正弦波。4.乘法器模块(调用自带lpm_multi模块)由于系统时钟频率为10MHz,由公式得,另乘数为10000000;5.转换器en控制切换接按键5,高电平时输出频率控制字M,低电平时输出输出频率。按键4控制数码管整数和小数部分切换,高电平时显示整数部分,低电平时显示小数部分。3.2实验结果1.仿真图2.管脚分配3.输出数据记录:注:下载到试验箱,选用模式五,进行实验结果的检测。实验原始数据记录:M理论值/Hz显示频率/Hz(16进制)f/Hz(十进制)实测频率(十进制)19.5379.99.99.8438.14726.226.238.146766.75742.c66.751466.75710【a】95.3675f.695.3695.36640【28】381.47017d.7381.431381.46770【46】667.57229b.9667.568668.4100【b4】953.6743b9.b1.716k953.66400【190】3.815kee6.b3.814k3.814k700【2bc】6.676k1a13.c6.675246.675k1000【3e8】9.537k2540.c9.5369.536k4000【fa0】38.147k9502.038.1467k38.146k7000【1b58】66.757k104c5.366.756k66.756k10000【2710】95.367k17487.795.367k95.366k20000【4e20】190.735k2e90e.e190.729k190.733k40000【9c40】381.470k5d21d.c381.468k381.467k52428【cccc】499.992k7a118.6499.999k499.989k四、结论通过这次实验,我与小组成员学习了DDS信号源的相关知识,并且巩固加强了示波器的使用,完成了利用Excel生成ROM表,对利用Quartus软件来设计数字系统更为熟悉,相信对之后的实验会有很大帮助。五、附录5.1频率控制字模块代码modulekongzhiqi(a,clk,clr,m);inputclk,clr;input[2:0]a;output[19:0]m;reg[19:0]m;always@(posedgeclkorposedgeclr)beginif(clr)m=0;elsecase(a)3'b001:m[3:0]=m[3:0]+1;3'b010:m[7:4]=m[7:4]+1;3'b011:m[11:8]=m[11:8]+1;3'b100:m[15:12]=m[15:12]+1;3'b101:m[19:16]=m[19:16]+1;endcaseendendmodule5.2累加器模块代码moduleadd(clk,clr,m,n);inputclk,clr;input[19:0]m;output[19:0]n;reg[19:0]n;always@(posedgeclkorposedgeclr)beginif(clr)n=0;elsen=n+m;endendmodule5.3转换器代码modulexuanze(en,zi,pl,out,x);inputen,x;input[43:0]pl;input[19:0]zi;outputreg[23:0]out;regt;always@(en)beginif(en)out=zi;elseif(x)out=pl[43:20];elsebeginif(pl[15:12]=4'b1000)t=1;elset=0;out[3:0]=pl[19:16]+t;out[23:4]=0;endendendmodule