EDA实验报告(quartus2仿真)
实验一 QUARTUSII原理实验报告

实验一QUARTUSII原理图输入法实验
一,实验目的
熟悉利用Quartusll的原理图输入方法设计简单电子线路,掌握原理图输入法设计思路,掌握层次化设计的方法,并通过8位全家器和5-24线译码器的设计把握利用EDA软件进行电子线路设计的详细流程。
二,实验内容
1,用原理图输入设计一个一位全加器
三,实验原理
1,一个一位全加器可以由两个一位半加器和一个或门构成,先用原理图输入法绘制半加器文件,然后生成半加器模块,保存在当前文件夹。
然后新建一个原理图文件,在当前文件夹中调用2个新生成的半加器模块和一个或门。
然后用导线连接即可。
具体步骤参见课本及半加器和全加器原理图参见课本相关章节。
四,实验设备
Pc机Quartusll软件
五,实验截图
六,实验心得体会。
eda实验报告2

实验二多路选择器的设计一、实验目的1、进一步熟悉QUARTUSII软件的使用方法和VHDL输入的全过程。
2、进一步掌握实验系统的使用。
二、实验原理四选一多路选择器的原理如下图及下表,由Sl,S0来选择d0 ,dl ,d2 ,d3的信号,并使其能在Q上输出。
三、实验内容1、用VHDL语言的不同语句分别描述任务选择器,并通过编译仿真比较不同语句描述的区别。
2、通过仿真下载并通过硬件验证实验结果。
四、实验步骤1、打开QUARTUSII软件,新建一个工程。
2、建完工程之后,再新建一个VHDL File。
新建一个VHDL文件的过程如下:1)选择QUARTUSII软件中的File>New命令,出现New对话框。
如图2-2所示。
图2-1 新建设计文件选择窗口2)在New对话框(图2-1)中选择Device Design Files页下的VHDL File,点击OK按钮,打开VHDL编辑器对话框,如图2-2所示。
图2-2 VHDL编辑窗口1、按照实验原理和自己的想法,在VHDL编辑窗口编写VHDL程序,用户可参照光盘中提供的示例程序。
2、编写完VHDL程序后,保存起来。
方法同实验一。
3、对自己编写的VHDL程序进行编译并仿真,对程序的错误进行修改。
4、编译仿真无误后,进行管脚分配,下表是示例程序的管脚分配表。
分配完成后,再进行全编译一次,以使管脚分配生效。
表2-1 端口管脚分配表5、“模式选择键”:按动该键能使实验板产生12种不同的实验电路结构。
本次实验的模式选择到“6”(红色数码管上显示)。
6、用下载电缆通过JTAG口将对应的sof文件加载到FPGA中。
观察实验结果是否与自己的编程思想一致。
五、实验现象与结果当设计文件加载到目标器件后,按键按键开关,LED会按照实验原理中的格雷码输入一一对应的亮或者灭。
六、实验报告1、绘出仿真波形,并作说明。
2、进一步熟悉QUARTUSII软件。
3、将实验原理、设计过程、编译仿真波形和分析结果、硬件测试结果记录下来。
(完整版)基于QuartusII的数字电路仿真实验报告手册

数字电路仿真实验报告班级通信二班姓名:孔晓悦学号:10082207 作业完成后,以班级为单位,班长或课代表收集齐电子版实验报告,统一提交.文件命名规则如“通1_王五_学号”一、实验目的1. 熟悉译码器、数据选择器、计数器等中规模数字集成电路(MSI)的逻辑功能及其使用方法。
2. 掌握用中规模继承电路构成逻辑电路的设计方法。
3. 了解EDA软件平台Quartus II的使用方法及主要功能。
二、预习要求1. 复习数据选择器、译码器、计数器等数字集成器件的工作原理。
2. 熟悉所有器件74LS153、74LS138、74LS161的功能及外引线排列。
3.完成本实验规定的逻辑电路设计项目,并画出接线图,列出有关的真值表。
三、实验基本原理1.译码器译码器的逻辑功能是将每个输入的二进制代码译成对应的高、低电平信号。
译码器按功能可分为两大类,即通用译码器和显示译码器。
通用译码器又包括变量译码器和代码变换译码器。
变量译码器是一种完全译码器,它将一系列输入代码转换成预知一一对应的有效信号。
这种译码器可称为唯一地址译码器。
如3线—8线、4线—16线译码器等。
显示译码器用来将数字或文字、符号的代码译成相应的数字、文字、符号的电路。
如BCD-七段显示译码器等。
2.数据选择器数据选择器也陈伟多路选择器或多路开关,其基本功能是:在选择输入(又称地址输入)信号的控制下,从多路输入数据中选择某一路数据作为输出。
因此,数据选择器实现的是时分多路输入电路中发送端电子开关的功能,故又称为复用器。
一般数据选择器有n 个地址输入端,2n错误!未找到引用源。
个数据输入端,一个数据输出端或反码数据输出端,同时还有选通端。
目前常用的数据选择器有2选1、4选1、8选1、16选1等多种类型。
3.计数器计数器是一个庸医实现技术功能的时序部件,它不仅可以用来对脉冲计数,还常用作数字系统的定时、分频、执行数字运算以及其他一些特定的逻辑功能。
74LS161是4位同步二进制计数器,它除了具有二进制加法计数功能外,还具有预置数、保质和异步置零等附加功能。
quartus ii实验报告

quartus ii实验报告Quartus II实验报告引言:Quartus II是一款由Intel公司开发的集成电路设计软件,广泛应用于数字逻辑设计和FPGA开发领域。
本实验报告旨在介绍Quartus II的基本功能和使用方法,并通过实际案例展示其在数字逻辑设计中的应用。
一、Quartus II概述Quartus II是一款功能强大的集成电路设计软件,它提供了从设计到验证的全套工具。
Quartus II支持多种编程语言,如VHDL和Verilog,使得用户可以根据自己的需求选择适合的语言进行设计。
此外,Quartus II还提供了丰富的库和模块,方便用户进行快速原型开发和验证。
二、Quartus II的基本功能1. 设计入口Quartus II提供了多种设计入口,包括图形界面、命令行和脚本等方式。
用户可以根据自己的习惯和需求选择适合的方式进行设计。
图形界面友好易用,适合初学者;命令行和脚本则更适合有一定经验和需求的用户。
2. 设计编辑Quartus II提供了强大的设计编辑功能,用户可以在其中创建和编辑设计模块、信号线和电路连接等。
设计编辑界面清晰简洁,用户可以方便地进行设计布局和调整。
3. 仿真和验证Quartus II内置了仿真和验证工具,用户可以通过仿真来验证设计的正确性和性能。
仿真工具支持波形查看和信号分析等功能,帮助用户进行设计调试和优化。
4. 综合和优化Quartus II具备强大的综合和优化功能,可以将设计代码转化为硬件描述,进而生成逻辑电路。
综合工具会根据用户的约束条件和优化目标,自动进行逻辑优化和资源分配,提高设计的性能和效率。
5. 布局和布线Quartus II提供了先进的布局和布线工具,可以将逻辑电路映射到实际的FPGA芯片上。
布局工具可以根据用户的约束条件和性能要求,自动进行电路元件的位置分配;布线工具则负责将电路元件之间的连接线路进行规划和布线。
6. 下载和调试Quartus II支持将设计文件下载到目标FPGA芯片上,并提供了调试工具来验证和调整设计的正确性。
EDA实验报告(quartus2仿真)

EDA 设计(Ⅱ)学号:姓名:院系:指导:谭雪琴时间:2011年4月8日目录1.引言 (03)2.正文 (03)2.1.设计要求 (03)2.2.整体电路工作原理 (04)2.3.子模块设计原理与仿真 (04)2.3.1.脉冲发生电路 (04)2.3.2.计时电路 (07)2.3.3.译码显示电路 (10)2.3.4.报时电路 (15)2.3.5.校时、保持以及清零电路 (16)2.3.6.总功能电路连接 (20)2.4.整体电路下载 (21)2.5.扩展闹铃功能设计 (21)2.5.1.闹铃时间设定功能 (21)2.5.2.闹铃显示功能 (22)2.5.3.闹铃响铃功能 (23)2.5.4.闹铃总电路连接 (24)3.结论 (25)4.致谢 (26)5.参考资料 (26)多功能数字钟设计(南京理工大学)摘要:本文详细介绍了多功能数字钟的工作原理及设计过程。
首先利用quartus2软件,采用模块化设计方法,分别设计分频器、模计数器、动态显示电路、清零校时电路和报时电路等功能模块,然后观察仿真波形,确认功能实现后进行封装与调用。
最后将各功能模块整合起来构成整体电路,仿真和调试通过后下载到EDA实验箱,观察实际运行结果。
此外,本文还描述了附加闹铃功能的设计过程,并记述了实验过程中出现的一些问题及解决方案,以及对这次设计的一些经验教训的反思。
关键词:数字钟;校时报时;闹铃;动态显示;消颤;仿真;下载1、引言该数字钟功能丰富、操作简单,可使人们方便的获取时间信息及相关提醒,在实际生活中广泛应用,具有显著的实用价值。
其构成虽较简单,但融合了组合逻辑电路和时序逻辑电路,包括了分频器、计数器、数据选择器、编码器译码器以及锁存器等几乎所有数字逻辑电路的所学内容,是理论联系实际,提高知识技能的绝佳途径。
2、正文2.1 设计要求利用quartus2软件设计一个数字钟,并下载到EDA实验系统中。
要求可以完成00:00:00到23:59:59的计时功能,并在控制电路的作用下具有保持、清零、快速校时、快速校分、整点报时(当时钟计到59’53”时开始报时,在59’53”, 59’55”,59’57”时报时频率为512HZ,59’59”时报时频率为1KHZ)等功能。
EDA实验报告

实验一:QUARTUS II 软件使用及组合电路设计仿真页脚内容1实验目的:学习QUARTUS II 软件的使用,掌握软件工程的建立,VHDL源文件的设计和波形仿真等基本内容。
实验内容:1.四选一多路选择器的设计基本功能及原理:选择器常用于信号的切换,四选一选择器常用于信号的切换,四选一选择器可以用于4路信号的切换。
四选一选择器有四个输入端a,b,c,d,两个信号选择端s(0)和s(1)及一个信号输出端y。
当s输入不同的选择信号时,就可以使a,b,c,d中某一个相应的输入信号与输出y端接通。
逻辑符号如下:页脚内容2程序设计:软件编译:在编辑器中输入并保存了以上四选一选择器的VHDL源程序后就可以对它进行编译了,编译的最终目的是为了生成可以进行仿真、定时分析及下载到可编程器件的相关文件。
仿真分析:仿真结果如下图所示页脚内容3分析:由仿真图可以得到以下结论:当s=0(00)时y=a;当s=1(01)时y=b;当s=2(10)时y=c;当s=3(11)时y=d。
符合我们最开始设想的功能设计,这说明源程序正确。
2.七段译码器程序设计基本功能及原理:七段译码器是用来显示数字的,7段数码是纯组合电路,通常的小规模专用IC,如74或4000系列的器件只能作十进制BCD码译码,然而数字系统中的数据处理和运算都是2进制的,所以输出表达都是16进制的,为了满足16进制数的译码显示,最方便的方法就是利用VHDL译码程序在FPGA或CPLD 中实现。
本项实验很容易实现这一目的。
输出信号的7位分别接到数码管的7个段,本实验中用的数码管为共阳极的,接有低电平的段发亮。
数码管的图形如下页脚内容4七段译码器的逻辑符号:程序设计:页脚内容5软件编译:在编辑器中输入并保存了以上七段译码器的VHDL源程序后就可以对它进行编译了,编译的最终目的是为了生成可以进行仿真、定时分析及下载到可编程器件的相关文件。
仿真分析:仿真结果如下图所示:页脚内容6分析:由仿真的结果可以得到以下结论:当a=0(0000)时led7=1000000 此时数码管显示0;当a=1(0001)时led7=1111001 此时数码管显示1;当a=2(0010)时led7=0100100 此时数码管显示2;当a=3(0011)时led7=0110000 此时数码管显示3;当a=4(0100)时led7=0011001 此时数码管显示4;当a=5(0101)时led7=0010010 此时数码管显示5;当a=6(0110)时led7=0000010 此时数码管显示6;当a=7(0111)时led7=1111000 此时数码管显示7;当a=8(1000)时led7=0000000 此时数码管显示8;页脚内容7当a=9(1001)时led7=0010000 此时数码管显示9;当a=10(1010)时led7=0001000 此时数码管显示A;当a=11(1011)时led7=0000011 此时数码管显示B;当a=12(1100)时led7=1000110 此时数码管显示C;当a=13(1101)时led7=0100001 此时数码管显示D;当a=14(1110)时led7=0000110 此时数码管显示E;当a=15(1111)时led7=0001110 此时数码管显示F;这完全符合我们最开始的功能设计,所以可以说明源VHDL程序是正确的。
Quartus II 软件操作实验报告

实验题目:Quartus II 软件操作一、实验目的(1)了解并掌握QuartusII软件图形输入的使用方法。
(2)了解并掌握仿真(功能仿真及时序仿真)方法及验证设计正确性。
二、实验内容及步骤1.实验内容:本实验通过简单的例子介绍FPGA开发软件QuartusII的使用流程,包括图形输入法的设计步骤和仿真验证的使用以及最后的编程下载。
2.实验步骤:在QuartusII中通过原理图的方法,使用与门和异或门实现半加器。
原理图第1步:打开QuartusII软件,新建一个空项目。
选择菜单File->New Project Wizard,进入新建项目向导,填入项目的名称“hadder”。
第2步:单击Next按钮,进入向导的下一页进行项目内文件的添加操作,或直接点击Next按钮。
第3步:选择CPLD/FPGA器件,选择芯片系列为“MAX II”,型号为“EPM240T100C5”。
向导的后面几步不做更改,直接点击Next即可,最后点击Finish结束向导。
第4步:新建一个图形文件。
选择File->New命令,选择“Diagram/Schematic File”,点击OK按钮完成。
将该图形文件另存为hadder.bdf。
第5步:在图形编辑窗口的空白处双击,打开符号库窗口。
选择好需要的符号后,单击OK按钮,界面将回到原理图编辑界面,然后单击左键即在窗口内放置该符号。
分别放置与门“7408”和异或门“xor”。
第6步:在编辑窗口中放入两个输入符号,命名为a和b。
放置2个输出“output”符号,并分别命名为s、cout。
将各符号连接起来。
第7步:保存图形文件,进行语法检查和编译。
在信息(Messages)窗口中显示检查结果。
第8步:仿真。
执行File->New命令,选择“Other Files”选项页中 Vector Waveform File,并单击OK按钮,打开矢量波形编辑器窗口。
另存矢量波形文件为hadder.vwf。
EDA实验报告 (2)

实验一QUARTUS II软件安装、基本界面及设计入门一、实验目的:QUARTUSII是Altera公司提供的EDA工具,是当今业界最优秀的EDA设计工具之一。
提供了一种与结构无关的设计环境,使得电子设计人员能够方便地进行设计输入、快速处理和器件编程。
通过本次实验使学生熟悉QUARTUSII软件的安装,基本界面及基本操作,并练习使用QUARTUS的图形编辑器绘制电路图。
二、实验内容:1、安装QUARTUSII软件;2、熟悉QUARTUSII基本界面及操作;3通过一个4位加法器的设计实例来熟悉采用图形输入方式进行简单逻辑设计的步骤。
三、实验仪器:1、PC机一台;2、QUARTUSII软件;3、EDA实验箱。
四、实验原理:4位加法器是一种可实现两个4位二进制数的加法操作的器件。
输入两个4位二进制的被加数A和B,以及输入进位Ci,输出为一个4位二进制和数D和输出进位数Co。
半加操作就是求两个加数A、B的和,输出本位和数S及进位数C。
全加器有3位输入,分别是加数A、B和一个进位Ci。
将这3个数相加,得出本位和数(全加和数)D和进位数Co。
全加器由两个半加器和一个或门组成。
五、实验步骤:安装QUARTUSII软件;因为实验时我的机器了已经有QUARTUSII软件,所以我并没有进行安装软件的操作。
设计半加器:在进行半加器模块逻辑设计时,采用由上至下的设计方法,在进行设计输入时,需要由下至上分级输入,使用QuartusIIGraphic Editor进行设计输入的步骤如下。
(1)、打开QUARTUSII软件,选择File-new project wizard…新建一个设计实体名为has的项目文件;(2)、新建文件,在block.bdf窗口下添加元件符号,并连接。
如下图:半加器原理图(3)、将此文件另存为has.gdf的文件。
(4)、在主菜单中选择Processing→Start Compilation命令,系统对设计进行编译,同时打开Compilation Report Flow Summary窗体,Status视图显示编译进程。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
EDA 设计(Ⅱ)学号:姓名:院系:指导:谭雪琴时间:2011年4月8日目录1.引言 (03)2.正文 (03)2.1.设计要求 (03)2.2.整体电路工作原理 (04)2.3.子模块设计原理与仿真 (04)2.3.1.脉冲发生电路 (04)2.3.2.计时电路 (07)2.3.3.译码显示电路 (10)2.3.4.报时电路 (15)2.3.5.校时、保持以及清零电路 (16)2.3.6.总功能电路连接 (20)2.4.整体电路下载 (21)2.5.扩展闹铃功能设计 (21)2.5.1.闹铃时间设定功能 (21)2.5.2.闹铃显示功能 (22)2.5.3.闹铃响铃功能 (23)2.5.4.闹铃总电路连接 (24)3.结论 (25)4.致谢 (26)5.参考资料 (26)多功能数字钟设计(南京理工大学)摘要:本文详细介绍了多功能数字钟的工作原理及设计过程。
首先利用quartus2软件,采用模块化设计方法,分别设计分频器、模计数器、动态显示电路、清零校时电路和报时电路等功能模块,然后观察仿真波形,确认功能实现后进行封装与调用。
最后将各功能模块整合起来构成整体电路,仿真和调试通过后下载到EDA实验箱,观察实际运行结果。
此外,本文还描述了附加闹铃功能的设计过程,并记述了实验过程中出现的一些问题及解决方案,以及对这次设计的一些经验教训的反思。
关键词:数字钟;校时报时;闹铃;动态显示;消颤;仿真;下载1、引言该数字钟功能丰富、操作简单,可使人们方便的获取时间信息及相关提醒,在实际生活中广泛应用,具有显著的实用价值。
其构成虽较简单,但融合了组合逻辑电路和时序逻辑电路,包括了分频器、计数器、数据选择器、编码器译码器以及锁存器等几乎所有数字逻辑电路的所学内容,是理论联系实际,提高知识技能的绝佳途径。
2、正文2.1 设计要求利用quartus2软件设计一个数字钟,并下载到EDA实验系统中。
要求可以完成00:00:00到23:59:59的计时功能,并在控制电路的作用下具有保持、清零、快速校时、快速校分、整点报时(当时钟计到59’53”时开始报时,在59’53”, 59’55”,59’57”时报时频率为512HZ,59’59”时报时频率为1KHZ)等功能。
此外,还可以设计闹铃功能或自行添加其他功能。
基本设计要求为:1、能进行正常的时、分、秒计时功能;2、分别由六个数码管显示时分秒的计时;3、 K1是系统的使能开关(K1=0正常工作,K1=1时钟保持不变);4、 K2是系统的清零开关(K2=0正常工作,K2=1时钟的分、秒全清零);5、 K3是系统的校分开关(K3=0正常工作,K3=1时可以快速校分);6、 K4是系统的校时开关(K4=0正常工作,K4=1时可以快速校时);2.2 整体电路的工作原理数字钟主要由脉冲发生电路、计时电路、译码显示电路、报时电路、校时清零电路以及附加功能电路组成。
其中脉冲发生电路产生1HZ 、2HZ 、500HZ 、1KHZ 以及1MHZ 时钟信号,分别送至计时电路、校时电路、报时电路和动态显示电路等作为时钟信号。
计时电路为系统核心,利用1HZ 信号作为计数脉冲,两个模60计数器和一个模40计数器,实现秒分时的计时功能。
译码显示电路将计时电路输出的计时信号进行译码后送至数码管并在时钟的驱动下动态显示计时数据。
报时电路通过计时电路的计时信号而产生相应的选通信号,控制扬声器在特定时间发出不同频率的声音信号,实现报时功能。
清零保持电路通过控制计数器使能端的电位实现清零和保持。
校时电路根据开关的状态,选择输入到计数器的时分时钟信号的信号源,从而实现正常计数和快速校时功能。
附加功能电路依照具体要求对电路进行相关改进,以实现相应功能。
以下为系统电路框图:图 2.2.1 整体电路框图2.3子模块设计原理与仿真波形自顶向下模块化设计方法,是根据系统的总要求,将系统分解为若干个子系统,再将每个子系统分解为若干个功能模块……直到分成许多各具特定子功能的基本模块为止。
再利用分解的逆过程进行互联,完成系统设计。
2.3.1脉冲发生电路图 2.3.1 脉冲发生电路其中,in 为振荡电路48MHZ 时钟信号输入端,在模块内部经过分频,分别输出1HZ 、1KHZ 、1MHZ 、500HZ和2HZ 信号,送到后级电路作为相应时钟信号。
其中n 分频器可由模n 计数器来实现,最高位的输出即为n分频之后的信号,且占空比为1:1。
译码显示电路计时电路 报时电路脉冲发生电路 校时清零电路 附加功能电路由于 48M=24×1000×1000×2故可以通过模24计数器、模1000计数器以及模2计数器的组合来实现各种所需信号的分频。
模1000计数器选用3片74163级联,利用同步清零实现。
当计数器计数输出为11,1110,0111(十进制999)的时候,通过8位与非门输出清零信号,使计数器清零。
下图为模1000分频器内部原理图和输出仿真波形。
图2.3.2 模1000分频器原理图图 2.3.2 模1000分频器仿真波形输出检验以上输出波形,10脚输出的波形周期为时钟的1000倍,且占空比为1:1。
模24计数器选用两片74160级联,通过异步清零实现。
当计数器输出BCD 码10,0100(十进制24)时,两位与非门输出低电平清零信号,送至芯片CLRN 端异步清零。
图 2.3.3 模24分频器原理图图2.3.4 模24分频器仿真输出波形根据波形可知,最高位输出周期为时钟周期的24倍,满足分频要求。
但由于74160是10进制计数器,故其占空比不再为1:1,而是5:1。
同理,模2计数器可采用一片74163或74160构成,也可以用D触发器直接构成,功能较简单,在此就不再赘述。
最后,将各子功能模块组合起来,构成脉冲发生电路模块,并进行封装。
图2.3.5 脉冲发生电路总原理图通过观察其输出的波形,确认输出的各个波形满足要求。
2.3.2计时电路时钟的计时进制分别为60和24,故可根据要求设计模60和模24的计数器,通过级联,输出各位的计数信号。
其中,模24计数器的设计在脉冲发生部分已经叙述,故不再介绍其设计过程。
模60计数器的设计可采用两片74160级联,辅以四位与非门实现。
以下分析其设计原理。
74160为模10计数器,将其进位信号(个位)作为下一片(十位)的计数使能信号,就能实现级联。
计数器的工作计数为000,0000——110,1001,共60个状态,利用与非门分别接其为110,1001时为1的输出脚,与非之后送到置数端LD,实现同步置数。
需要指出的是,由于74160采用的是同步置数、异步清零,为了电路工作稳定,消除冒险,在此选用置数法实现清零。
图 2.3.6 模60计数器连接图图 2.3.7 模60计数器输出波形图由上图各位输出波形可知计数状态符合要求,且占空比都达到较大,适合作为下级电路的驱动信号。
调试成功后进行封装,以便于调用。
图 2.3.8 模60封装图封装后的模60计数器,其低4位(out1~out4)作为秒和分的个位计数值,高三位作为秒分的十位计数值。
clk60为时钟信号,由外部引入。
clear和keyEN分别为计数控制输入端,将在下文中的校时和清零保持电路设计部分进行详细论述。
oclk为进位信号,以便于级联。
但若由计数器的置数位引出,由于为同步清零,下一级将会在本级计数到59时就发生进位。
因此,在进行深入思考之后,我们决定采用D触发器将置位信号锁存一个时钟周期,以便使进位与清零能够同步。
具体解决电路如下:图 2.3.9 清零信号锁存输出作为进位信号从图2.3.7可以看出oclk进位信号成功实现与清零的同步,消除了电路冒险。
此外,我们还考虑了从另一个方面来解决这个问题。
由于是采用可编程逻辑器件(PLD)来实现电路设计,硬件描述语言(HDL,Hardware Description Language)可以描述硬件电路的功能,我们采用应用最为广泛的VHDL语言进行了模60计数器的设计,成功的消除了电路中的冒险。
以下为其源代码:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all; 库和包集合说明语句ENTITY mod60vhdl ISPORT(ci :IN std_logic;nreset :IN std_logic; 实体描述部分load :IN std_logic;d :IN std_logic_vector(7 downto 0);clk :IN std_logic;co :out std_logic;qh :buffer std_logic_vector(3 downto 0);ql :buffer std_logic_vector(3 downto 0));END mod60vhdl;ARCHITECTURE behave OF mod60vhdl ISBEGINco<='1' when(qh="0101" and ql="1001" and ci='1')else '0'; 结构体描述PROCESS(clk,nreset) 进程及敏感表BEGINIF(nreset='0')THEN 清零端低电平清零qh<="0000";ql<="0000";ELSIF(clk 'EVENT AND clk='1')THEN 时钟信号上升沿来临if(load='1')then 置数端高电平同步置数qh<=d(7 downto 4);ql<=d(3 downto 0);elsif(ci='1')thenif(ql=9)then 各位计满后自动清零ql<="0000";if(ql=5)thenqh<="0000";elseqh<=qh+1; 未计满则加计数end if;else ql<=ql+1;end if;END IF;END IF;END PROCESS; 结束进程END behave; 结束结构体可见,采用VHDL进行设计,不局限于仅有的元器件,相比原理图设计方式,设计的灵活性大大增加,并且思路清晰,逻辑严密,设计起来省时省力。
图2.3.10 计数电路的总连接图可以发现,quartus2的封装功能使设计过程条理清晰,连线简洁,便于识图。
这既是自顶向下模块化设计方法的基本要求,也是其必然结果。