EDA频率计课程设计报告.doc

上传人:叶*** 文档编号:35170220 上传时间:2022-08-20 格式:DOC 页数:21 大小:90KB
返回 下载 相关 举报
EDA频率计课程设计报告.doc_第1页
第1页 / 共21页
EDA频率计课程设计报告.doc_第2页
第2页 / 共21页
点击查看更多>>
资源描述

《EDA频率计课程设计报告.doc》由会员分享,可在线阅读,更多相关《EDA频率计课程设计报告.doc(21页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。

1、 八位数字频率计设计 摘 要:介绍了以 Quartus软件为开发环境,采用 VHDL 硬件描述语言,以“自顶向下”的方法,在大规模可编程逻辑器件上实现八位十进制数字频率计的设计。改变了以往数字电路小规模多器件组合的设计方式,设计灵活,硬件电路简捷,体积小,性能可靠。 关键词: Quartus; 数字频率计; EDA; VHDLAbstract:Introduced in Quartus software development environment, using VHDL hardware description language, with the method of top-down,

2、on the large-scale programmable logic devices realize eight decimal digital frequency meters design. Changed the previous small-scale combined device of digital circuit design, flexible design, hardware circuit is simple, small volume, reliable in performance.Keywords::Quartus; Digital frequency met

3、er; EDA; VHDL 目录1、前言11.1 EDA技术的介绍11.2 EDA技术的发展11.3 EDA技术的发展趋势12、总体方案设计22.1设计内容22.2设计方案比较22.3方案论证42.4方案选择43、单元模块设计43.1分频模块43.1.1分频模块波形仿真图43.1.2分频模逻辑综合图53.1.3分频模块verilog源代码53.2计数模块63.2.1计数模块功能仿真波形63.2.2计数模块逻辑综合图73.2.3计数模块verilog源代码73.3锁存模块83.3.1锁存模块功能仿真波形83.3.2锁存模块逻辑综合图83.3.1锁存模块verilog源代码93.4七段译码模块93

4、.4.1七段一码模块功能仿真波形93.4.2七段译码模块逻辑综合图103.4.3七段一码模块代码源程序103.5数码管显示模块113.5.1数码管显示模块功能仿真波形图123.5.2数码管显示模块综合图123.5.3数码管显示模块源代码134、软件实现144.1软件实现方法144.1.1 软件实现步骤框图144.2软件设计144.2.1 顶层模块程序如下:144.2.2 顶层模块结构图165、系统仿真及调165.1顶层模块仿真及调试166、总结176.1设计小结176.2设计收获186.3设计改进186.4 致谢187 、参考文献181、前言1.1 EDA技术的介绍EDA是Electronic

5、 Design Automation的缩写,中文译为电子设计自动化,是现代电子设计技术的有力工具。迄今为止,EDA技术没有精确的定义,我们可以这样来认识,EDA技术就是以计算机为工作平台,以EDA软件工具为开发环境,以PLD器件或者ASIC专用集成电路为目标器件设计实现电路系统的一种技术。而EDA技术的发展又以计算机科学、微电子技术的发展为基础,并且融合了应用电子技术、智能技术以及计算机图形学、拓扑学、计算数学等众多最新成果发展而来的。1.2 EDA技术的发展从20世纪70年代,人们就已经开始基于计算机开发出一些软件工具帮助设计者完成电路系统的设计任务,以替代传统的手工设计的方法,随着计算机软

6、件和硬件技术水平的提高,EDA技术也不断进步,大致经历了下面三个发展阶段:(1)CAD阶段:20世纪70年代至80年代初,由于电子技术软件的功能较弱和个人计算机的普及度不高,人们主要借助于计算机对所设计的电路的性能进行模拟和预测;完成简单的版图绘制和PCB布局。这是EDA技术发展的早起阶段。(2)CAE阶段:20世纪80年代至90年代初,由于人们在设计方法学、设计工具集成优化方面取得了长足的进步,使得集成电路规模逐渐扩大,电子系统设计也逐步复杂,与CAD相比,又增加了电路功能设计和结构设计、工程设计、原理图输入、逻辑仿真、电路分析、自动布局布线、PCB后分析等功能。由此EDA进入CAE阶段。(

7、3)EDA阶段:20世纪90年代以来,由于微电子工艺的显著发展,促进了电子设计工具的不断改善。尤其是进入21世纪以后,EDA技术得到了更快的发展。使得EDA技术广泛应用于各个领域,IP核的SoC设计技术日趋成熟、SoPC技术步入实用化阶段、高速DSP实现成为了可能、复杂电子系统的设计和验证更加高效。 1.3 EDA技术的发展趋势随着人们对设备功能和成本要求的越来越苛刻,EDA技术也在不断改进,就目前而言,EDA技术有以下三个大的发展趋势。(1) 高性能的EDA工具将得到进一步发展随着市场的需求增长,超大规模集成技术不断提高,超深亚微米(VDSM)工艺已经走向成熟;IC生产线的投资更为巨大,可编

8、程逻辑器件开始进入传统的ASIC市场;电子系统成本降低,系统体积减小,设计效率提高,EDA工具盒IP核广泛应用;自动化和智能化程度不断提高,计算机硬件平台性能的不断提高为SoC设计提供了物质基础。(2) EDA技术将促使ASIC和FPGA逐步走向融合随着系统开发对EDA技术的目标器件各种性能指标要求的提高,ASIC和FPGA将更大程度地相互融合。这是因为虽然标准逻辑ASIC芯片尺寸小、功能强、耗电省,胆设计复杂,并且有批量生产要求;可编程逻辑器件的开发费用低廉,能现场编程,胆体积大、功耗大。因此,FPGA和ASIC正在走到一起,两者之间正在诞生一种“杂交”产品,互相融合,取长补短,以满足成本和

9、上市速度的要求。例如,将可编程逻辑器件嵌入到标准单元。(3)EDA技术的应用领域将越来越广泛从目前的EDA技术来看,其特点就是使用普及、应用广泛、工具多样、软件功能强大。在ASIC和PLD器件方面,向高速度、高密度、低功耗、低电压方向发展。EDA技术发展迅速,可以用日新月异来描述。EDA技术的广泛应用,现已涉及各行各业。EDA水平不断提高,设计工具不断趋于完善。然而,目前人们对更低成本、更低功耗的无止境追求和越来越短的产品上市压力为当代EDA工具和设计方法带来了不少新的挑战与机会。例如,如何在工艺上防止模拟电路与数字电路之间的干扰;现有的大部份EDA工具最多只能处理百万门级设计规模,随着IC设

10、计向千万门级以上规模发展,现有EDA工具和方法必须进行升级。 2、总体方案设计2.1设计内容要求设计一个八位十进制频率计,该频率计的测频范围为0到99999999HZ,测频的原理采用直接测频法,利用计数器在单位时间(通常是1s)内对被测得脉冲进行计数,计数的结果就是被测脉冲的频率,直接测频法的好处是可以通过改变门控信号的周期,从而提高测量的精度和频率的测量范围。计数的结果通过锁存器来锁存并通过译码电路译码,然后用七段数码管对被测频率值进行动态显示。2.2设计方案比较方案一:基于单片机实现八位十进制频率计字功能利用AT89C51的内部定时计数器来对外部输入信号进行计数,从而达到测频的目的,这种方

11、案,结构简单容易掌握,各部分电路实现起来都非常容易。其原理框图如图2-1所示:AT89C51 锁存器译码显示电源供电电路时钟电路被测信号 图2-1单片原理实现框图方案二:基于CPLD技术实现八位十进制频率计通过Verilog HDL硬件描述语言编写代码的方式来实现八位十进制频率计数器功能。其框图如图2-2:CPLD芯片分频器八位十进制计数器锁存器 译码器动态显示电路系统时钟电源电路下载电路七段数码管图2-2基于CPLD实现频率测量的框图2.3方案论证(1)方案一:使用单片机设计成的系统外围电路相对较少,硬件搭建相对容易。51单片机的价格低廉,性能可靠。但是,单片机的管脚十分有限,计算速度相对C

12、PLD慢,内部数据存储器为字节存储,难以满足八位十进制计数器的存储需要。(2)方案二:采用CPLD来设计八位十进制计数器,测量精度高,运行速度快,采用verilog语言模块化编程,大大缩减了外围的硬件电路,节约了硬件资源,而且方便进行软件调试。2.4方案选择由于本次课程设计题目为八位十进制频率计,要求可测的频率范围为0到100MHZ,所以运算速度快、精度高、性能可靠、可将外围器件通过编程来代替的CPLD芯片更符合要求。综合比较结合各方面的优劣势,并参考本次课程设计要求,我选择了基于CPLD器件来实现八位十进制频率计的设计方案。3、单元模块设计本设计由复杂可编程逻辑器件(CPLD)作为控制芯片,

13、通过Vreilog HDL硬件描述语言设计,运用自顶而下的设计思想,按功能逐层分割实现层次化的设计。总体设计方案为由晶振电路提供时钟信号。然后对系统时钟分频产生控制信号如秒脉冲tgate,锁存信号ale,译码控制信号的dclk和显示使能信号d_en,位选信号lclk。在控制信号作用下,被测脉冲mclk通过八位十进制bcd加法计数器计数,计数值通过锁存器锁存,然后经过七段显示译码器译码后用数码管实现动态显示。下面介绍主要模块的功能及作用。3.1分频模块在分频模块中,系统时钟s_clk设定为2ms,经过1000分频后便可以产生周期为2s的闸门信号tgate,锁存信号ale,译码信号dclk,显示使

14、能信号d_en,同时对系统时钟经过60分频便可以得到周期为125ms的位选切换信号。3.1.1分频模块波形仿真图 图3-1-1分频模块功能仿真图3.1.2分频模逻辑综合图 图3-1-2分频模块逻辑综合图3.1.3分频模块verilog源代码module div(tgate,s_clk,ale,dclk,d_en,lclk,);input s_clk;output tgate,ale,dclk,d_en,lclk;reg tgate,ale,dclk,lclk,d_en;integer i,j;always (posedge s_clk)beginif(i=499)begin tgate=tga

15、te;ale=ale;dclk=dclk;d_en=d_en;i=0;endelse i=i+1;endalways (posedge s_clk)if(j=30)begin lclk=lclk;j=0;endelse j=j+1;endendmodule3.2计数模块该计数模块为十位八进制bcd加法计数器,clrn为清零信号,高电平有效,q为计数值,tgate为高电平为1s的门控信号,仿真中设定被测脉冲周期为40ms,对其在1s钟内进行计数,计数结果q值显示为25。符合理论计算结果。3.2.1计数模块功能仿真波形图3-2-1计数模块功能仿真图3.2.2计数模块逻辑综合图图3-2-2分频模块逻

16、辑综合图3.2.3计数模块verilog源代码module counter(clrn,mclk,q,tgate,cunt);input clrn,mclk,tgate;output 15:0q,cunt;reg 15:0q;always (posedge mclk ) beginif(!clrn) q15:0=0;else if(tgate)beginif(q15:0=16H9999) q15:0=0;else if(q11:0=12H999) q15:0=q15:0+12H667;else if(q 7:0= 8H99) q15:0=q15:0+8H67;else if(q 3:0= 4H9

17、) q15:0=q15:0+4H7; /十六进制转换为十进制。else q15:0=q15:0+1; endelseq=0;endassign cunt=q;endmodule3.3锁存模块在锁存模块locker中,采用ale信号的下降沿对计数模块的计数结果进行锁存,锁存时间由ale的周期确定,在仿真中将输入值din设定为随机值,ale设定为周期为2s的方波,qout为锁存结果输出端,输出端结果在ale下降沿到来时刻改变,其余时刻保持为锁存状态。3.3.1锁存模块功能仿真波形图3-3-1计数模块功能仿真图3.3.2锁存模块逻辑综合图图3-3-2计数模块功能仿真图3.3.1锁存模块verilog

18、源代码module locker(ale,din,qout,qou);input ale;/锁存脉冲,下降沿有效。input31:0 din; /锁存值输入。output31:0 qout;/锁存值。output31:0 qou;reg31:0 qout;reg31:0 qou;always (negedge ale)beginif(!ale)beginqout=din;qou=qout;endelse qout=qout;qou=qout;endendmodule3.4七段译码模块 七段译码模块,译码脉冲来自dclk,上升沿由效,上升沿到来时,便根据输入的4位bcd码,输出相应的七段显示码,

19、比如输入的为0001(十进制数1),在dclk下降沿到来时dout输出七段码11111001(即数码管显示1)。3.4.1七段一码模块功能仿真波形图3-4-4计数模块功能仿真图3.4.2七段译码模块逻辑综合图图3-4-2计数模块功能仿真图3.4.3七段一码模块代码源程序module decord(din,dout,dclk); input3:0 din; input dclk;output7:0 dout;reg7:0 dout;always (posedge dclk)case(din) 4b0000:begin dout=8b1100_0000;end4b0001:begin dout=8

20、b1111_1001;end4b0010:begin dout=8b1010_0100;end4b0011:begin dout=8b1011_0000;end4b0100:begin dout=8b1001_1001;end4b0101:begin dout=8b1001_0010;end4b0110:begin dout=8b1000_0010;end4b0111:begin dout=8b1111_1000;end4b1000:begin dout=8b1000_0000;end4b1001:begin dout=8b1001_1000;end4b1010:begin dout=8b10

21、00_1000;end4b1011:begin dout=8b1000_0011;end4b1100:begin dout=8b1100_0110;end4b1101:begin dout=8b1010_0001;end4b1110:begin dout=8b1000_0110;end4b1111:begin dout=8b1000_1110;end endcaseendmodule3.5数码管显示模块该模块将译码模块译码结果作为输入送到输入端ledin,然后再使能信号d_en(周期为2s)高电平有效,在d_en有效的情况下依次将输入值送到输出端口ledout,并改变位选输出值switch,从

22、而实现数码管的动态显示,比如ledin输入值设定为随机值8h904FDEF528BC8898,在d_en有效,并且lclk的第一个上升沿到来时,把98h送到ledout,并将switch赋值为FE,从而使第一个数码管显示98h 所代表的段码值,第二个上升沿到来时把88h送到ledout,switch赋值为FD,从而使第二个数码管显示88h所代表的段码值,依次类推,便可以对八个数码管进行动态显示了。3.5.1数码管显示模块功能仿真波形图图3-5-1显示模块功能仿真图3.5.2数码管显示模块综合图图3-5-2显示模块逻辑综合图3.5.3数码管显示模块源代码module display(ledin,

23、ledout,lclk,switch,d_en);input lclk,d_en;input63:0 ledin;output7:0 ledout,switch;reg7:0 ledout,switch;integer num1,num2;always (posedge lclk)if(d_en)case (num1)0:begin num1=1;switch=8hfe;end1:begin num1=2;switch=8hfd;end2:begin num1=3;switch=8hfb;end3:begin num1=4;switch=8hf7;end4:begin num1=5;switc

24、h=8hef;end5:begin num1=6;switch=8hdf;end6:begin num1=7;switch=8hbf;end 7:begin num1=0;switch=8h7f;endendcaseelse begin switch=0;endalways (switch)case(switch)8h00:ledout=0;8hfe:ledout=ledin7:0;8hfd:ledout=ledin15:8;8hfb:ledout=ledin23:16;8hf7:ledout=ledin31:24;8hef:ledout=ledin39:32;8hdf:ledout=ledi

25、n47:40;8hbf:ledout=ledin55:48;8h7f:ledout=ledin63:56;endcaseendmodule4、软件实现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);i

26、nput mclk,s_clk,clrn;output7:0 ledout,switch;output tgate0;wire7:0 p0,p1,p2,p3,p4,p5,p6,p7;output31:0 qou;wire31:0 q;wire31: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(tg

27、ate),.q(q),.cunt(cunt);locker lck(.ale(ale),.din(q),.qout(qout),.qou(qou);decord d0(.din(qout3:0),.dout(p0),.dclk(dclk);decord d1(.din(qout7:0),.dout(p1),.dclk(dclk);decord d2(.din(qout11:8),.dout(p2),.dclk(dclk);decord d3(.din(qout15:12),.dout(p3),.dclk(dclk);decord d4(.din(qout19:16),.dout(p4),.dc

28、lk(dclk);decord d5(.din(qout23:20),.dout(p5),.dclk(dclk);decord d6(.din(qout27:24),.dout(p6),.dclk(dclk);decord d7(.din(qout31: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);endmodule4.2.2 顶层模块结构图图4-2-2顶层显示模块逻辑综合图5、系统仿真及调5.

29、1顶层模块仿真及调试通过QuartusII软件,我们对顶层模块进行了仿真,其仿真波形如图5-1-1所示。图5-1-1顶层模块波形仿真图由设计要求可知,由0.5KHZ的系统时钟s_clk经过1000分频后产生的门控信号tgate0为0.5HZ,即高电平有效时间为1s,tgate0波形如图5-1所示。被测脉冲mclk设定为1KHZ,经过计数模块和所存模块后,锁存器输出值qou为00001000,即频率为1000HZ,与理论计算值一致。最后频率值经过译码模块后通过数码管进行动态显示。波形仿真图中的switch代表位选信号,即选中哪一个数码管亮,ledout代表显示的七段码,即数码管显示的什么内容,比

30、如在switch为0xfe时选中第一个数码管,并将显示码11000000(代表显示0)通过ledout送给第一个数码管显示。由波形图分析可知,数码管最终显示的内容为00001000,与理论频率值一致。在程序的调试过程中,我发现了自己存在很多问题,也收获了不少的知识,主要有以下几点:(1)由于先前对硬件描述语言代码的编写不够熟悉,所以在使用过程中经常编译报错;经查找资料、和同学讨论、询问老师后了解到了错误的原因。(2)在设置顶层文件和建立工程时,必须要设置好相关的配置。并且选择合适的芯片,还要设置好END TIME和GRID SIZE参数,更要注意仿真的文件设置成顶层文件和时钟设置等等。(3在程

31、序调试过程中,由于不规范的编写,总是编译失败。经逐条语句分析调试后发现往往只是其中一个数据的类型设置错误,修改以后解决了该错误,并对程序编写有了更深刻的认识和理解。(4在波形文件仿真中,时钟和输入设置等信号一般不要设置成特殊的情况,有可能造成看不到正确的仿真波形和时序图。在仿真状态寄存器的波形图时就出现了看不到正确时序图的情况,经分析查找后发现是由于时钟和输入设置成了特殊情况,并没有仿真出所有可能发生的情况。 (5)用硬件描述语言的方法和画原理图的方法都可实现同样逻辑功能的电路出来,但是二者各有优缺点。原理图直观明了,但画复杂的电路不易实现。用硬件语言描述复杂的逻辑功能电路则比较易于实现,但是

32、不如原理图直观,编写时容易出现逻辑混乱的情况。6、总结6.1设计小结本次设计中,我们成功完成本系统设计所要求的八位十进制频率计的测频功能。在设计开始前我们就系统整体框架和各个模块功能进行了详细的分析和设计准备工作,设计过程中,我们相互协调,积极参与讨论,最终克服了所有遇到的技术难点。本设计要求用CPLD控制字符液晶实现字符的显示,通过对CPLD的功能分析和搭建CPLD外围电路,我们认识到了CPLD的强大功能。6.2设计收获通过本次设计,我们在对EDA这门技术上有了更深刻的认识,也在实践过程中感受到了EDA设计给我们设计带来的方便。在这个过程中,我们不仅比较熟练地掌握了QuartusII软件的使

33、用,与此同时,我们还对电子设计的思路有了更清晰的认识。通过对EDA设计我们更深入的了解了可编程逻辑器件的各个功能,也从中学到了很多电子电路设计方面的知识,为我们以后从事设计工作打下了一定的基础,虽然设计的系统不算完美,但是我确信自己努力认真了,从中学到了知识、开阔了眼界,这也是课程设计真正目的所在。6.3设计改进由于自身能力有限,学到的知识不多,本次八位十进制频率计的设计仅仅是完成了一些基本的功能,如计数,锁存,译码和显示,在实际的频率测量中,信号在进入计数器之前应该先经过放大整形电路,将信号转化为标准的矩形波,如果信号的频率太大,还得要考虑是否要先对被测频率进行分频,从而使得测量结果更加精确

34、稳定,更具说服力,频率计作为一种测量仪器应该有自动换挡的功能,从而才能方便使用。另一方面,显示可以采用液晶显示,从而使显示的效果更加的美观。6.4 致谢我们小组能够完成这次课程设计,首先要感谢老师耐心细致的为我们分析题目,提供解决方案,如果没有老师的悉心指导,我们的课程设计也不会进展的如此顺利,并最终实现各个功能。此外还要感谢我的组员们,和他们一起思考问题,摸索quartus软件的使用方法,仿真方法等。通过和他们一起思考,讨论分析问题,我受到很大的启发,理解到团队协作的重要性。7 、参考文献1 谢自美. 电子线路设计(第二版)M. 华中科技大学出版社. 20002 张毅刚. 单片机原理及应用M.北京.高等教育出版社.20103 谈世哲. Protel DXP 2004 电路设计基础与典型范例M.北京.电子工业出版社.20075 卢毅编著.VHDL与数字电路设计M.北京.科技大学出版.20016 康华光 陈大钦. 电子技术基础模拟部分(第四版)M. 高等教育出版社.19877 张洪润等. 电子线路及应用. 北京.科学出版社. 2002 8 杨宝清. 实用电路手册. 北京. 机械工业出版社. 2002 9 杨恒等编.FPGA/CPLD最新实用技术指南M.清华大学出版社.2005年10 陈赜主编CPLD/FPGA与ASIC设计实践教程M.科学出版社. 2005年

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 高中资料

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知得利文库网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号-8 |  经营许可证:黑B2-20190332号 |   黑公网安备:91230400333293403D

© 2020-2023 www.deliwenku.com 得利文库. All Rights Reserved 黑龙江转换宝科技有限公司 

黑龙江省互联网违法和不良信息举报
举报电话:0468-3380021 邮箱:hgswwxb@163.com