




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、 电子系统cad课程设计学院: 信息电子学院 班级: 08电子信息工程3班 学号: e08610308 姓名: 陈建能 指导老师: 张国萍 日期: 20111210 目录1、课程设计目的32、课程设计工具及题目32.1、课程设计工具.3 2.2、课程设计题目.33、课程设计内容及步骤43.1、课程设计内容.43.2、课程设计步骤.44、课程设计程序(源代码)5 4.1利用dsp builder设计dds 54.2方波模块.64.3三角波模块.74.4锯齿波模块.94.5幅度控制字模块.104.6频率控制字模块.114.7相位控制字模块.124.8波形使能与选择模块.145、课程设计成果.175
2、.5硬件实物图.17 5.2正弦波显示.17 5.3方波显示.185.4三角波显示.19 5.5锯齿波显示.216、课程设计心得.227、参考文献.22课程设计目的:设计一个直接数字频率合成(dds,direct digital synthesis),dds是一种新型的频率合成技术。dds 技术是一种把一系列数字形式的信号通过dac 转换成模拟信号的合成技术。dds 技术具有频率切换时间短,频率分辨率高,频率稳定度高,输出信号的频率和相位可以快速切换,输出相位可连续,并且在改变时能够保持相位的连续,很容易实现频率、相位和幅度的数字控制。它在相对带宽、频率转换时间、相位连续性、高分辨率以及集成化
3、等一系列性能指标方面远远超过了传统频率合成技术。因此在现代电子系统及设备的频率源设计中,尤其在通信领域,直接数字频率合成器的应用越来越广泛。课程设计工具及题目: 1、课程设计工具:pc机、kx_dvp3d开发实验板, quartusii,示波器2、课程设计题目:基于fpga的简易函数信号发生器设计课程设计内容、步骤及电路原理图系统图如下:1、利用dsp builder设计ddsdsp builder是altera公司的一款将mathworksmatlab和simulink系统级设计工具的算法开发、仿真和验证功能与vhdl综合、仿真和altera开发工具整合在一起的设计软件,dsp builde
4、r是matlab的一个simulink工具箱,用于图形化建模仿真,功能非常强大。根据dds原理建立图2的dds模型,电路模块全部采用无符号数,频率字为10 b,相位字为10 b,分别控制输出正弦波的频率和相位变化。由altbus、parallel adder subtractor、delay构成相位累加器,正弦查找表模块lut计算式为:511*sin(0:2*pi(210):2*pi)+512。在simulink中仿真,仿真结果见图3,可见,dds在频率字和相位字的控制下,可以得到标准正弦波输出。2、方波模块module square(clk, en, out, fre1, am1);inpu
5、t clk, en;input9:0 fre1;input5:0 am1;output9:0 out;reg9:0 res;reg 31:0 n;reg flag;assign out = res;always (posedge clk)beginif(en = 1)beginn = n + 1;if(n = (1024 - fre1)+ 20)beginn = 0;flag = flag;if(flag)res = 0;else res = 17 * am1;endendendendmodule3、三角波模块module triagle(clk, en, out, fre1, am1);in
6、put clk, en;input9:0 fre1;input5:0 am1;output9:0 out;reg9:0 res;reg 31:0 n;reg flag, a = 0;assign out = res;always (posedge clk)beginif(en = 1)beginn = n + 1;if(n = 1024 - fre1 + 20)beginn = 0;if(a = 0)res = res + 1;else if(a = 1)res = res - 1;if(res = 16 * am1 + 60)a = 1;else if(res = 0)a = 0;enden
7、dendendmodule4、锯齿波模块module sawtooth(clk, en, out, fre1, am1);input clk, en;input9:0 fre1;input5:0 am1;output9:0 out;reg9:0 res;reg 31:0 n;reg flag;assign out = res;always (posedge clk)beginif(en = 1)beginn = n + 1;if(n = 1024 - fre1 + 20)beginn = 0;res = res + 1;if(res = 16 * am1 + 60)res = 0;endend
8、endendmodule5、幅度控制字模块module am(clk, add, sub, out);input clk, add, sub;output 5:0 out;reg 5:0 res = 10;reg 31:0 n, m;reg flag = 0;assign out = res;always (posedge clk)beginn = n + 1;if(n = 1000000)beginflag = 1;n = 0;endif(add = 0)beginif(add = 0 & flag)beginflag = 0;if(res = 15)res = res - 1;endend
9、endendmodule6、频率控制字模块module test(clk, add, sub, out, adclk);input clk, add, sub;output 9:0 out;output adclk;reg 9:0 res = 5;reg 31:0 n, m;reg flag = 0, aclk;assign out = res;assign adclk = aclk;always (posedge clk)beginn = n + 1;m = m + 1;if(m = 1000)beginaclk = aclk;m = 0;endif(n = 1000000)beginfla
10、g = 1;n = 0;endif(add = 0)beginif(add = 0 & flag)beginflag = 0;if(res = 5)res = res - 1;endendendendmodule7、相位控制字模块module test(clk, add, sub, out, adclk);input clk, add, sub;output 9:0 out;output adclk;reg 9:0 res = 5;reg 31:0 n, m;reg flag = 0, aclk;assign out = res;assign adclk = aclk;always (pose
11、dge clk)beginn = n + 1;m = m + 1;if(m = 1000)beginaclk = aclk;m = 0;endif(n = 1000000)beginflag = 1;n = 0;endif(add = 0)beginif(add = 0 & flag)beginflag = 0;if(res = 5)res = res - 1;endendendendmodule8、波形使能与选择模块module four_one(clk, select, a1, a2, a3, a4);input clk, select;output a1, a2, a3, a4;reg
12、1:0 res = 0;reg 31:0 n;reg flag = 0, a11, a21, a31, a41;assign a1 = a11;assign a2 = a21;assign a3 = a31;assign a4 = a41;assign out = res;always (posedge clk)beginn = n + 1;if(n = 15000000)beginflag = 1;n = 0;endif(select = 0)beginif(select = 0 & flag)beginflag = 0;res = res + 1;if(res = 0)begina11 =
13、 1;a21 = 0;a31 = 0;a41 = 0;endelse if(res = 1)begina11 = 0;a21 = 1;a31 = 0;a41 = 0;endelse if(res = 2)begina11 = 0;a21 = 0;a31 = 1;a41 = 0;endelsebegina11 = 0;a21 = 0;a31 = 0;a41 = 1;endendendendendmodulemodule waves(clk, ina, inb, inc, ind, in1, in2, in3, in4, out_wave);input clk, ina, inb, inc, in
14、d;input9:0 in1, in2, in3, in4;output 9:0 out_wave;reg 9:0 res;assign out_wave = res;always (posedge clk)beginif(ina = 1)res = in1;else if(inb = 1)res = in2;if(inc = 1)res = in3;else if(ind = 1)res = in4;endendmodule课程设计心得通过此次实验,进一步了掌握fpga的基本概念、原理和方法,掌握verilog语言,并能够正确地进行基本的计算机设计,编写相关的软件,在完成本课程学习后,能够进行fpga应用方面的工作,并为其它课程奠定基础。一开始碰到了很多的问题,调用子模块的很多功能不是很熟,后来慢慢地熟悉起来了。对于各种操作可以用子程序来完成。这样程序就显得很有结构。可以分步来调试他的正确性和实用性。当框架基本上理好以后就简单多了,然后分步一个程序一个程序地解决掉。最后就是完善各个程序,组装在一起。然后合成了最终的程序。不过还是有点小问题。本课程设计用到的只是颇多,首先就是dds了,由于用了dsp builder,所以显得十分地简单,根本不用写程序和理解算法,只要打出仿真图,然后可以直接
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年度景区景点精细化保洁服务协议
- 二零二五年度二手车转让及过户手续协议
- 二零二五年度新型小区门卫管理及应急预案合同
- 2025年度绿色节能库房租赁合同
- 2025年度高新技术企业员工劳动合同解除终止协议书
- 2025年度物业服务合同主体变更协议范本
- 二零二五年度大数据服务股权投资与转让协议
- 二零二五年度冷冻库租赁及冷链物流配送中心建设合同
- 二零二五年度离婚协议中财产分割执行监督补充协议
- 苏武牧羊传红色故事观后感
- 汽车修理常用配件信息公示
- 同济大学信纸
- 门式钢架厂房设计
- 口腔模型的灌制-医学课件
- 煤矿班组建设实施方案
- (完整word版)新《中华颂》朗诵稿
- 糖尿病健康教育及饮食指导
- PFMEA模板完整版文档
- 三无曲线(有缓)绳正法拨道自动计算表
- 教学能力比赛决赛 《英语》教案
- 《母鸡》课件 王崧舟 千课万人 (图片版不可编辑)
评论
0/150
提交评论