1、正弦信号发生器目录第一章 设计任务及要求 1第二章 设计思路22.1正弦信号发生器原理.22.2正弦信号发生器结构 .22.3程序设计 32.3.1 循环计数器 32.3.2频率动态显示 .3第三章 设计步骤43.1新建工程 .43.2定制LPM_ROM .43.2.1 建立.Mif格式文件 .43.2.2 LPM_RAM的设置和调用 53.4 生成计数器模块 .73.5生成动态显示模块 .73.6 电路图设计 .73.7编译并定义引脚 ,.73.8仿真 83.9选择硬件并下载 .9第四章 感受及启发 .10第一章 设计任务及要求设计一个正弦信号发生器,波形采样点为32点,8bit位宽输出正弦
2、波,频率范围为100-10KHZ,且频率可预置,并在实验系统上实测,包括SignalTapII测试、FPGA中ROM的在系统数据读写测试,要求频率可在数码管显示,信号输出后经滤波器驱动蜂鸣器或利用示波器测试。第二章 设计思路2.1正弦信号发生器原理由五位计数器构成的地址发生器产生地址从而使正弦波数据存储ROM输出相应地址中的波信号数据。2.2正弦信号发生器结构 图一 设计框图2.3程序设计2.3.1 循环计数器Module jishu(clk,cnt5,rst);input clk,rst; output4:0cnt5;reg4:0cnt;wire LD;always (posedge clk
3、 or posedge LD or negedge rst ) begin if(!rst) cnt=5b00000; else if(LD) cnt=5b00000; else cnt=cnt+1; endassign cnt5=cnt;assign LD=(cnt=32);endmodule2.3.2频率动态显示Module xianshi(sel,clk,LED7S,reset);input clk;input reset;output 6:0 LED7S;output 2:0sel;reg 6:0LED7S;reg 2:0sel;always(posedge clk)beginif(r
4、eset=1b0)sel=3b000;else if(sel=3b100)sel=3b000;elsesel=sel+3b001;endalways(posedge clk)beginif(reset=1b0) LED7S=7b0111111; else if(sel=3b000) LED7S=7b0111111;else if(sel=3b001) LED7S=7b0111111;else if(sel=3b010) LED7S=7b0111111;else if(sel=3b011) LED7S=7b0000110;else if(sel=3b100) LED7S=7b0111111;en
5、dendmodule(注:正弦发生器预置频率为10KHZ)第三章 设计步骤3.1新建工程通过file-new project wizard新建工程lpm1。3.2定制LPM_ROM3.2.1 建立.Mif格式文件用软件Mif_Maker2010生成波形采样点为32点,8bit位宽输出正弦波,频率为10KHZ正弦波的.mif文件data.mif.将生成的mif文件用记事本打开可见此正弦波数据如下:DEPTH = 32;WIDTH = 8;ADDRESS_RADIX = HEX;DATA_RADIX = HEX;CONTENT BEGIN0000 : 0080;0001 : 0098;0002 :
6、 00B0;0003 : 00C6;0004 : 00DA;0005 : 00EA;0006 : 00F5;0007 : 00FD;0008 : 00FF;0009 : 00FD;000A : 00F5;000B : 00EA;000C : 00DA;000D : 00C6;000E : 00B0;000F : 0098;0010 : 007F;0011 : 0067;0012 : 004F;0013 : 0039;0014 : 0025;0015 : 0015;0016 : 000A;0017 : 0002;0018 : 0000;0019 : 0002;001A : 000A;001B :
7、 0015;001C : 0025;001D : 0039;001E : 004F;001F : 0067;END ;3.2.2 LPM_ROM的设置和调用Tools-mega wizard plug-in manager-create a new custon megafunction variation- 图二 图三 图四 图五3.4 生成计数器模块新建jishu.v文件输入计数器程序编译成功后通过:file-createupdate-create symbol files for current file生成jishu.bsf。3.5生成动态显示模块新建xianshi.v文件输入动态显示
8、频率程序编译成功后通过:file-createupdate-create symbol files for current file生成xianshi.bsf。3.6 电路图设计新建顶层文件lpm1.bdf文件并导入计数器,正弦波数据存储ROM,动态显示三个模块,然后添加输入输出引脚完成RTL电路图;3.7编译并定义引脚完成后RTL电路图见下图: 图六 正弦信号发生器RTL电路图3.8仿真 数据见下图: 图七 仿真3.9选择硬件并下载下载程序后用导线正确连接各定义引脚。当正弦信号发生器输出引脚接蜂鸣器时蜂鸣器会发出连续的滴滴声。 图八 硬件连接及效果图 第四章 感受及启发 这次课程设计从基本思
9、路到最终设计的完成花了好几天的时间,最终得到结果真的不容易。在做课设的日子里,可以说是苦多于甜,但是可以学的到很多很多的东西,同时不仅可以巩固以前所学过的知识,而且学到了很多在书本上所没有学到过的知识。通过这次设计, 进一步加深了对EDA的了解,让我对它有了更加浓厚的兴趣。特别是当每一个子模块编写调试成功时,心里特别的开心。但是在编写顶层文件的程序时,遇到了不少问题,特别是各元件之间的连接,以及信号的定义,总是有错误,在细心的检查下,终于找出了错误和警告, 排除困难后, 程序编译就通过了, 心里终于舒了一口气。 其次,在连接各个模块的时候一定要注意细心,才能得出正确的结果,否则,出现任何一点小
10、的误差就会导致整个文件系统的编译出现错误提示,在器件的选择上也有一定的技巧,只有选择了合适当前电路所适合的器件,编译才能得到完满成功。 通过这次课程设计使我懂得了理论与实际相结合是很重 要的,只有理论知识是远远不够的,只有把所学的理论 知识与实践相结合起来,从理论中得出结论,从而提高自己的实际动手能力和独立思考的能力。在设计的过程中遇到问题,可以说得是困难重重,这次课设遇到了各种各样的问题, 同时在设计的过程中发现了自己的不足之处,对以前所学过的知识理解得不够深刻,掌握得不够牢固。 总的来说,这次设计的正弦信号发生器还是比较成功的,在设计中遇到了很多问题,最后在老师的辛勤的指导和同学的帮助下,终于游逆而解,有点小小的成就感,终于觉得平时所学的 知识有了实用的价值, 达到了理论与实际相结合的目的, 不仅学到了不少知识,而且锻炼了自己的能力,使自己对以后的路有了更加清楚的认识,同时,对未来有了更多的信心。最后,对给过我帮助的所有同学和各位指导老师再次表示忠心的感谢! 在这次设计中,我也深深地体会到“细节决定成败”这 句话的真正含义,也许就因为一个小的细节就会导致设计的失败。这次设计也启发了我在以后的学习中一定要耐心、细心、认真,不可粗枝大叶。
copyright@ 2008-2023 冰点文库 网站版权所有
经营许可证编号:鄂ICP备19020893号-2