简易DDS波形发生器设计Word文档下载推荐.docx
- 文档编号:16473933
- 上传时间:2022-11-23
- 格式:DOCX
- 页数:12
- 大小:145.84KB
简易DDS波形发生器设计Word文档下载推荐.docx
《简易DDS波形发生器设计Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《简易DDS波形发生器设计Word文档下载推荐.docx(12页珍藏版)》请在冰豆网上搜索。
architecturezofdds1is
signalt:
std_logic_vector(22downto0);
signaln:
begin
process(cp)
begin
n<
="
000"
&
m;
ifcp'
eventandcp='
1'
then
ifr='
t<
00000000000000000000000"
;
elsift+n>
8388607then
else
=t+n;
endif;
endif;
q<
=t(22downto15);
endprocess;
endz;
③编译通过以后,File→Create/Update→CreateSymbolFilesForCurrentFile。
4.制作ROM表;
①Files→New→MemoryInitializationFile;
②在Excel表中输入变量及公式算出ROM表中内容然后取整,复制到ROM表中保存文件名为“dds2.mif”。
ROM内容如下:
Addr
+0
+1
+2
+3
+4
+5
+6
+7
512
524
537
549
562
574
587
599
8
611
624
636
648
660
672
684
696
16
707
719
730
741
753
764
774
785
24
796
806
816
826
836
846
855
864
32
873
882
890
899
907
915
922
930
40
937
944
950
957
963
968
974
979
48
984
989
993
997
1001
1004
1008
1011
56
1013
1015
1017
1019
1021
1022
1023
64
72
80
88
96
104
112
120
128
499
486
474
461
449
436
424
136
412
399
387
375
363
351
339
327
144
316
304
293
282
270
259
249
238
152
227
217
207
197
187
177
168
159
160
150
141
133
124
116
108
101
93
86
79
73
66
60
55
49
44
176
39
34
30
26
22
19
15
12
184
10
6
4
2
1
192
200
208
216
224
232
240
248
5.编写切换输出器件程序,并转换成图形文件;
过程与步骤3累加器的制作大致相同,保存文件名为“dds.vhd”。
程序如下:
entityddsis
port(g1:
g2:
instd_logic_vector(15downto0);
go1:
outstd_logic_vector(19downto0);
qh,start:
go:
outstd_logic_vector(19downto0));
enddds;
architecturesofddsis
signalq1:
std_logic_vector(19downto0);
signalq2:
std_logic_vector(15downto0);
process(qh)
q1<
=g1;
q2<
=g2;
go1<
=q1;
if(qh='
0'
andstart='
)then
go<
elsif(qh='
0000"
g2;
ends;
6.画Block电路图;
①Files→New→BlockDiagram/SchematicFile;
②将ROM表制作成图形文件;
双击空白处→Name:
lpm_rom→OK→Next(出现“MegawizardPlug-InManager”对话框:
默认其名为“lpm_rom0”)→10bits,256words→Next→浏览电脑将“dds2.mif”文件导入→Next→Finish。
③通过双击空白处,在Symbol对话框中的Project或primitives文件夹中选出要用的器件或引脚连结成基本的简易DDS波形发生器的电路。
设置输入、输出引脚,将程序下载到试验箱并连接到示波器观察波形是否正确;
④当示波器显示成功后再修改电路图,加入切换显示的部分;
⑤用宏功能模块引入用于计算和十进制—十六进制转换的乘法器,除法器若干个,并连接成图;
⑥制作选择输入到切换输出器中的器件;
制作步骤与上面3中步骤相同,保存文件名为“vhdl3.vhd”。
VDHL程序如下:
useieee.std_logic_arith.all;
entityvhdl3is
w1:
w2:
t1:
inbit;
t2:
outstd_logic_vector(15downto0));
endvhdl3;
architectureaofvhdl3is
process(t1)
if(t1='
)then
t2<
=w2;
t2<
=w1;
enda;
⑦制作判断输出频率分档,并计算小数的器件;
制作步骤与上面3中步骤相同,保存文件名为“vhdl1.vhd”
entityvhdl1is
port(d1:
inunsigned(22downto0);
d2:
inunsigned(3downto0);
outbit;
r:
outunsigned(3downto0));
endvhdl1;
architectureaofvhdl1is
process(d1)
ifd1>
1000ord1=1000then
t1<
='
if(d2=0)then
r<
elsifd2=1then
0001"
elsifd2=2then
0011"
elsifd2=3then
0100"
elsifd2=4then
0101"
elsifd2=5then
0110"
elsifd2=6then
1000"
elsifd2=7then
r<
1001"
endif;
endprocess;
enda;
⑧将电路图连接后,保存名为“Block1.bdf”电路图如下页:
⑨编译,修改,直至编译通过;
7.下载到试验箱。
①Assignments→Device→DevicesandPinOptions...→UnusedPins→Asinputstri-stated→确定→OK;
②设置引脚:
Assignments→AssignmentsEditor→在Category选项中选择“Pin”选项;
然后设置引脚如下:
clk
Location
PIN_91
q[0]
PIN_65
clk1
PIN_9
q[1]
PIN_67
cp
PIN_43
q[2]
PIN_69
t1
PIN_48
q[3]
PIN_70
d
PIN_25
q[4]
PIN_71
qiehuan
PIN_30
q[5]
PIN_72
reset
PIN_27
q[6]
PIN_74
start
PIN_26
q[7]
PIN_80
q2[0]
PIN_122
q[8]
PIN_81
q2[1]
PIN_125
q[9]
PIN_86
q2[2]
PIN_126
q[10]
PIN_92
q2[3]
PIN_129
q[11]
PIN_94
q2[4]
PIN_133
q[12]
PIN_96
q2[5]
PIN_134
q[13]
PIN_97
q2[6]
PIN_135
q[14]
PIN_100
q2[7]
PIN_137
q[15]
PIN_101
q2[8]
PIN_139
q[16]
PIN_112
q2[9]
PIN_141
q[17]
PIN_113
③重新编译(Tools→CompilerTool→Strart);
编译完成后开始下载:
Tools→Programmer→在“Programmer/Configure”选项下打勾→Mode:
JTAG→HardwareSetup→双击“USB_Blaster”→close→start.
4通过多次试验检查设计是否符合要求,并改进。
六、实验数据及误差分析
1.实验数据
M
显示f1
理论f2
实测f3
理论误差
显示误差
167772
104.8KHz
100.000KHz
100.0000KHz
0.000%
4.580%
160000
100.0KHz
95.367KHz
95.3689KHz
0.002%
4.633%
32768
20.4KHz
19.531KHz
19.5310KHz
4.260%
16384
10.2KHz
9.765KHz
9.7657KHz
0.007%
4.265%
2048
1.3KHz
1.240KHz
1.2420KHz
0.164%
4.615%
1024
640.0Hz
610.350Hz
610.3380Hz
80.0Hz
76.294Hz
76.3020Hz
0.010%
0.6Hz
0.596Hz
0.5900Hz
1.007%
0.667%
2.误差分析:
输入脉冲5MHZ;
累加器位数N=23;
显示值公式fo=M*5*2^20/2^23=M*5/8=M*0.625;
理论公式fo’=M*5*10^6/2^23≈M*0.596;
显示误差△f/fo=4.64%;
七、实验中出现的问题及解决方法
(一)示波器没有输入,累加器输出一直为0。
解决办法:
在累加器的VHDL程序中,reset=’0’时复位。
实验箱操作时reset一直没有置一,所以将累加器的VHDL程序reset=’1’时复位。
(二)当M输入160000时,理论显示100.0,实际显示A0.0。
解决方法:
添加一个除法器,把显示的十位和百位分开。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 简易 DDS 波形 发生器 设计