八位十进制数字频率计基于eda课程设计(4)

2019-08-30 22:35

西华大学课程设计说明书 4、软件实现

4.1软件实现方法

采用quartus 2软件进行设计,使用verilog语言进行模块化编程,自上而下按功

能模块分层实现各个模块的功能,在顶层模块中调用子模块,从而实现系统的整体功能。

4.1.1 软件实现步骤框图

设计输入 编译,链接 修改设计 仿真与定时分析 编程 在线调试

图4-1-1软件实现步骤框图

4.2软件设计

4.2.1 顶层模块程序如下:

module mainton(mclk,ledout,switch,qou,s_clk,clrn,tgate0); input mclk,s_clk,clrn; output[7:0] ledout,switch; output tgate0;

15

西华大学课程设计说明书 wire[7:0] p0,p1,p2,p3,p4,p5,p6,p7; output[31:0] qou; wire[31:0] q; wire[31:0] qout;

wire ale,dclk,tgate,d_en,lclk;

div d(.tgate(tgate),.s_clk(s_clk),.ale(ale),

.dclk(dclk),.d_en(d_en),.lclk(lclk),.tgate0(tgate0));

counter c(.clrn(clrn),.mclk(mclk),.tgate(tgate),.q(q),.cunt(cunt)); locker lck(.ale(ale),.din(q),.qout(qout),.qou(qou)); decord d0(.din(qout[3:0]),.dout(p0),.dclk(dclk)); decord d1(.din(qout[7:0]),.dout(p1),.dclk(dclk)); decord d2(.din(qout[11:8]),.dout(p2),.dclk(dclk)); decord d3(.din(qout[15:12]),.dout(p3),.dclk(dclk)); decord d4(.din(qout[19:16]),.dout(p4),.dclk(dclk)); decord d5(.din(qout[23:20]),.dout(p5),.dclk(dclk)); decord d6(.din(qout[27:24]),.dout(p6),.dclk(dclk)); decord d7(.din(qout[31:28]),.dout(p7),.dclk(dclk)); display t(.ledin({p0,p1,p2,p3,p4,p5,p6,p7})

,.ledout(ledout),.lclk(lclk),.switch(switch),.d_en(d_en)); endmodule

16

西华大学课程设计说明书 4.2.2 顶层模块结构图

图4-2-2顶层显示模块逻辑综合图

5、系统仿真及调

5.1顶层模块仿真及调试

通过QuartusII软件,我们对顶层模块进行了仿真,其仿真波形如图5-1-1所示。

图5-1-1顶层模块波形仿真图

17

西华大学课程设计说明书 由设计要求可知,由0.5KHZ的系统时钟s_clk经过1000分频后产生的门控信号tgate0为0.5HZ,即高电平有效时间为1s,tgate0波形如图5-1所示。被测脉冲mclk设定为1KHZ,经过计数模块和所存模块后,锁存器输出值qou为00001000,即频率为1000HZ,与理论计算值一致。最后频率值经过译码模块后通过数码管进行动态显示。波形仿真图中的switch代表位选信号,即选中哪一个数码管亮,ledout代表显示的七段码,即数码管显示的什么内容,比如在switch为0xfe时选中第一个数码管,并将显示码11000000(代表显示0)通过ledout送给第一个数码管显示。由波形图分析可知,数码管最终显示的内容为00001000,与理论频率值一致。

在程序的调试过程中,我发现了自己存在很多问题,也收获了不少的知识,主要有以下几点:

(1)由于先前对硬件描述语言代码的编写不够熟悉,所以在使用过程中经常编译报错;经查找资料、和同学讨论、询问老师后了解到了错误的原因。

(2)在设置顶层文件和建立工程时,必须要设置好相关的配置。并且选择合适的芯片,还要设置好END TIME和GRID SIZE参数,更要注意仿真的文件设置成顶层文件和时钟设置等等。

(3在程序调试过程中,由于不规范的编写,总是编译失败。经逐条语句分析调试后发现往往只是其中一个数据的类型设置错误,修改以后解决了该错误,并对程序编写有了更深刻的认识和理解。

(4在波形文件仿真中,时钟和输入设置等信号一般不要设置成特殊的情况,有可能造成看不到正确的仿真波形和时序图。在仿真状态寄存器的波形图时就出现了看不到正确时序图的情况,经分析查找后发现是由于时钟和输入设置成了特殊情况,并没有仿真出所有可能发生的情况。

(5)用硬件描述语言的方法和画原理图的方法都可实现同样逻辑功能的电路出来,但是二者各有优缺点。原理图直观明了,但画复杂的电路不易实现。用硬件语言描述复杂的逻辑功能电路则比较易于实现,但是不如原理图直观,编写时容易出现逻辑混乱的情况。

6、总结

6.1设计小结

本次设计中,我们成功完成本系统设计所要求的八位十进制频率计的测频功能。在设计开始前我们就系统整体框架和各个模块功能进行了详细的分析和设计准备工作,设计过程中,我们相互协调,积极参与讨论,最终克服了所有遇到的技术难点。本设计要求用CPLD控制字符液晶实现字符的显示,通过对CPLD的功能分析和搭建CPLD外围电路,我们认识到了CPLD的强大功能。

18

西华大学课程设计说明书 6.2设计收获

通过本次设计,我们在对EDA这门技术上有了更深刻的认识,也在实践过程中感受到了EDA设计给我们设计带来的方便。在这个过程中,我们不仅比较熟练地掌握了QuartusII软件的使用,与此同时,我们还对电子设计的思路有了更清晰的认识。通过对EDA设计我们更深入的了解了可编程逻辑器件的各个功能,也从中学到了很多电子电路设计方面的知识,为我们以后从事设计工作打下了一定的基础,虽然设计的系统不算完美,但是我确信自己努力认真了,从中学到了知识、开阔了眼界,这也是课程设计真正目的所在。

6.3设计改进

由于自身能力有限,学到的知识不多,本次八位十进制频率计的设计仅仅是完成了一些基本的功能,如计数,锁存,译码和显示,在实际的频率测量中,信号在进入计数器之前应该先经过放大整形电路,将信号转化为标准的矩形波,如果信号的频率太大,还得要考虑是否要先对被测频率进行分频,从而使得测量结果更加精确稳定,更具说服力,频率计作为一种测量仪器应该有自动换挡的功能,从而才能方便使用。另一方面,显示可以采用液晶显示,从而使显示的效果更加的美观。

6.4 致谢

我们小组能够完成这次课程设计,首先要感谢老师耐心细致的为我们分析题目,提供解决方案,如果没有老师的悉心指导,我们的课程设计也不会进展的如此顺利,并最终实现各个功能。此外还要感谢我的组员们,和他们一起思考问题,摸索quartus软件的使用方法,仿真方法等。通过和他们一起思考,讨论分析问题,我受到很大的启发,理解到团队协作的重要性。

7 、参考文献

[1] 谢自美. 电子线路设计(第二版)[M]. 华中科技大学出版社. 2000 [2] 张毅刚. 单片机原理及应用[M].北京.高等教育出版社.2010

[3] 谈世哲. Protel DXP 2004 电路设计基础与典型范例[M].北京.电子工业出版社.2007

[5] 卢毅编著.VHDL与数字电路设计[M].北京.科技大学出版.2001

[6] 康华光 陈大钦. 电子技术基础模拟部分(第四版)[M]. 高等教育出版社.1987 [7] 张洪润等. 电子线路及应用. 北京.科学出版社. 2002 [8] 杨宝清. 实用电路手册. 北京. 机械工业出版社. 2002

[9] 杨恒等编.FPGA/CPLD最新实用技术指南[M].清华大学出版社.2005年

[10] 陈赜主编.CPLD/FPGA与ASIC设计实践教程[M].科学出版社. 2005年

19

西华大学课程设计说明书

20


八位十进制数字频率计基于eda课程设计(4).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:浙江海盐涵普控源动态库接口说明文档

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: