当前位置:文档之家› 数电课设___四位二进制加法计数器的设计

数电课设___四位二进制加法计数器的设计

成绩评定表课程设计任务书摘要Quartus II 是Altera公司的综合性PLD/FPGA开发软件,支持原理图、VHDL、VerilogHDL以及AHDL(Altera Hardware Description Language)等多种设计输入形式,内嵌自有的综合器以及仿真器,可以完成从设计输入到硬件配置的完整PLD设计流程。

Multisim是Interactive Image Technologies (Electronics Workbench)公司推出的以Windows为基础的仿真工具,适用于板级的模拟/数字电路板的设计工作。

它包含了电路原理图的图形输入、电路硬件描述语言输入方式,具有丰富的仿真分析能力。

本次数电课程设计使用Quartus II仿真环境以及VHDL下载和Multisim仿真环境来编译实现四位二进制同步加法计数器。

在Multisim中选用一个集成计数器74LS163来实现四位二进制加法计数器。

运用卡诺图求解时序方程。

逻辑电路图中,四个小红灯即为显示器,从右到左显示时序图中的十四种状态,其中,灯亮表示“1”,灭表示“0”,从而达到计数目的。

关键字:Quartus II Multisim 集成计数器74LS163 时序图卡诺图目录一、课程设计目的 (1)二、设计框图 (1)三、实现过程 (2)1、QUARTUS II实现过程 (2)1.1建立工程 (2)1.2调试程序 (3)1.3波形仿真 (6)1.4引脚锁定与下载 (8)1.5仿真结果分析 (10)2、MULTISIM实现过程 (10)2.1求驱动方程 (10)2.2画逻辑电路图 (13)2.3逻辑分析仪的仿真 (14)2.4结果分析 (14)四、总结 (15)五、参考书目 (16)一、课程设计目的1:了解同步加法计数器工作原理和逻辑功能。

2:掌握计数器电路的分析、设计方法及应用。

3:学会正确使用LS163触发器。

二、设计框图状态转换图是描述时序电路的一种方法,具有形象直观的特点,即其把所用触发器的状态转换关系及转换条件用几何图形表示出来,十分清新,便于查看。

在本课程设计中,四位二进制同步加法计数器用一个集成计数器74LS163触发器实现,其中有相应的跳变,即跳过了0110 0111两个状态,这在状态转换图中可以清晰地显示出来。

具体结构示意框图和状态转换图如下:10000101010000110010000100000/0/0/0/0/0/−→−−→−−→−−→−−→−−→−10011010101111001101111011110/0/0/0/0/0/−→−−→−−→−−→−−→−−→−B:状态转换图三、实现过程1. Quartus II实现过程1.1建立工程。

File——〉New Project;输入count10;即工程名; count10,即工程保存的位置;然后next——>……——>next直至finish。

图1.1图1.21.2调试程序。

(1)点击File->New创建一个设计文件,系统显示如图1.3所示;图1.3(2)选择设计文件的类型为VHDL File;(3)点击OK,系统显示如图1.4,窗口右侧为VHDL的编辑窗口。

图1.4(4)写入程序,保存程序图1.5具体程序如下:library IEEE;use IEEE.STD_LOGIC_1164.ALL;use IEEE.STD_LOGIC_ARITH.ALL;use IEEE.STD_LOGIC_UNSIGNED.ALL;entity count10 isPORT (cp,r:IN STD_LOGIC;q:OUT STD_LOGIC_VECTOR(3 DOWNTO 0) ); end count10;architecture Behavioral of count10 is SIGNAL count:STD_LOGIC_VECTOR(3 DOWNTO 0) ; beginPROCESS (cp,r)BEGINif r='0' then count<="0000";elsiF cp'EVENT AND cp='1' THENif count="1111" THENcount <="0000";elsif count="0101" thencount<="1000";ELSE count <= count+1;END IF;end if;END PROCESS;q<= count;end Behavioral;(5)点击Processing->Start Compilation编译该文件,系统将开始编译,结束后,给出提示信息和编译结果,如图1.6所示:调试成功。

1.3波形仿真。

(1)建立时序仿真文件,如图1.7所示,选择“Vector Waveform File”,出现图1.8的界面,在Name空白处击右键,Insert→Insert Node or Bus。

图1.7(2)在图1.7中单击图1.8(3)在图1.8中单击,再单击→OK→OK。

如图1.9所示图1.9(4)单击菜单进行仿真图1.10(5)仿真结果如图1.11。

图1.111.4引脚锁定与下载。

点击Assignment——〉pins分配引脚:Cp-pin28,r-pin58,q3-pin98,q2-pin99,q1-pin100,q0-pin101。

点击保存,OK。

图1.12回到Quartus II环境,点击Processing->Start Compilation编译该文件,系统将开始编译,结束后,给出提示信息和编译结果,如图1.13所示:下载成功。

图1.13点击Tools-〉progremmer,在弹出窗口中点击Hardware setup,在点击Hardware setup 后出现的窗口中点击USB连接,然后点击stard。

下载完成。

图1.141.5仿真结果分析由仿真波形图可以清楚地看到在一个周期之内,即由小到大,依次完成了四位二进制加法计数的功能。

其中由于缺了0110 0111两个状态,即缺了十进制数中的6 7两个数,在波形仿真中,在这几个状态处发生跳变,即由0101跳到1000,再由1111直接跳回到0000,即完成一个周期的计数,不断循环往复。

2. Multism 实现过程2.1求驱动方程相关结构示意框图和状态转换图见上(二)所示步骤。

选择四个时钟脉冲下降沿触发的JK 触发器,因要使用同步电路,所以时钟方程应该为CP CP CP CP CP ====3210(1)求状态方程由所示状态图可直接画出如图 2.1所示电路次态13+n Q 12+n Q 11+n Q 10+n Q 的卡诺图,再分解开便可以得到如图2.2所示各触发器的卡诺图。

图2.1次态13+n Q 12+n Q 10+n Q 的卡诺图 将上述卡诺图对应拆成四个卡诺图,分别求出13+n Q 、12+n Q 、11+n Q 、10+n Q 表达式如下所示:(a) 13+n Q 的卡诺图(b) 12+n Q 的卡诺图(d )10+n Q 的卡诺图 图2.2 各触发器的卡诺图根据卡诺图进行相应化简即得到状态方程,如下:n n n n n n n n n n n n n n n n n n n nn n n n n n QQQ Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q 010101030211213020112302012313)(()(=++=++=+=++++ (1)(2)求驱动方程由于JK 触发器的特性方程为n n n Q K Q J Q +=+1用状态方程与特性方程做比较,可得对应驱动方程,如下:11000103201310201201230n23===+=+====K J Q K Q Q Q Q J Q Q Q K Q Q J Q Q Q K Q Q J n nn n n nn n nn nn n n2.2画逻辑电路图根据所选用的触发器和时钟方程、输出方程、驱动方程,画出的电路图太过于繁琐,不利于观看,我决定用集成计数器74LS163画电路图。

电路图如下:2.3逻辑分析仪的仿真图2.4逻辑分析仪的仿真检查电路能否自启动:把无效状态0110和0111带入输出方程和和状态方程进行计算,结果如下:1000011101101/0/−→−−→−由此可见,在CP 操作下都能回到有效状态,即电路能够自启动。

2.4结果分析Multism 是一种虚拟仪器,可以用来验证电路的设计的正确性。

根据相关计算,得出时序电路的时钟方程、状态方程、驱动方程,从而选择合适触发器来连接实现。

本设计中,选用一个集成计数器74LS163来实现四位二进制加法计数器。

逻辑电路图中,四个小红灯即为显示器,从右到左显示时序图中的十四种状态,其中,灯亮表示“1”,灭表示“0”,从而达到计数目的。

由于其中缺了0110 0111两种种状态,所以在计数过程中会发生跳变,即先从0101跳到1000,再由1111直接跳回到0000,周而复始。

逻辑分析仪类似于Quartus II环境下的波形仿真,是对计数器的另一种直观的描述。

其中,高电平表示“1”,低电平表示“0”,也可以对计数器的功能进行测试及检验。

四、总结在本次数字电路课程设计中,我受益匪浅。

我原本对二进制加法计数器这一节学习不是很透彻,对于相关设计过程和分析方法并不大熟练。

在同学和老师的讲解下,最终还算顺利完成。

这对我以后学习相关的课程以及进行更高层次的数字电路设计都奠定了不错的基础。

在设计过程中,出现了各种各样的问题,有些是单一原因引起的,有的是综合原因引起的,这些都很考验我的毅力与坚持。

但是我掌握了研究这类问题的方法,即问题解决的过程就是要从问题所表现出来的情况出发,通过反复推敲,作出相应判断,逐步找出问题的症结所在,从而一举击破。

对于数字电路设计,尤其在使用Multism进行逻辑电路的连接与分析时,这种分析解决问题的能力就更为重要。

要在复杂的电子器件和密密麻麻的连线中找出头绪来,并不是一件很容易的事情。

往往要从新再来一次,但是这样的问题就出在计算上,尤其是在化简卡诺图时,务必小心谨慎,一个字符写错或者漏掉一些信息,相应得出的驱动方程就会有天壤之别,自然逻辑电路就不能实现最初的设计功能。

而且在连线的过程中一定要仔细的找准位置,一旦出错需要删除某些线的时候一定要删准确。

因此,我把这次课程设计看成一次综合学习的机会。

在学习过《数字电路技术基础简明教程》之后,我已经算是掌握了一定的数字电路设计的基础以及相应的分析方法、实践能力以及自学能力。

相关主题