当前位置:文档之家› 四位二进制减法计数器

四位二进制减法计数器

成绩评定表课程设计任务书摘要Quartus II提供了完全集成且与电路结构无关的开发包环境,具有数字逻辑设计的全部特性,应用范围非常广泛,由于数字系统中高低电平分别用0和1表示,数字电路问题可以转化成逻辑问题,可以通过仿真电路表示出来,进行观察和研究,并且可以下载到实验箱上。

此次课程设计我将使用VHDL设计一个四位二进制减法器。

Multisim是美国国家仪器(NI)有限公司推出的以Windows为基础的仿真工具,适用于板级的模拟/数字电路板的设计工作。

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

在这次课设中我将用它绘制出电路图,进行四位二进制减法器模拟。

关键词:Quartus II;VHDL;Multisim;减法器目录一、课程设计目的 (1)二、设计框图 (1)三、实现过程 (2)1、QUARTUS II实现过程 (2)1.1建立工程 (2)1.2编译程序 (7)1.3波形仿真 (11)1.4引脚锁定与下载 (15)1.5仿真结果分析 (16)2、MULTISIM实现过程 (16)2.1求驱动方程 (16)2.2画逻辑电路图 (20)2.3逻辑分析仪的仿真 (21)2.4结果分析 (21)四、总结 (23)五、参考书目 (24)一、课程设计目的1:了解四位二进制计数器工作原理和逻辑功能。

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

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

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

在本课程设计中,四位二进制减法计数器用四个CP 上升沿触发的JK 触发器实现,其中有相应的跳变,即跳过了0000 0001 0010三个状态,这在状态转换图中可以清晰地显示出来。

具体结构示意框图和状态转换图如下:↓−−−−←−−−−←−−−−←−−−−←−−−−←−−−−←−−−→−−−−→−−−−→−−−−→−−−−→−−−−→− 1000011101100101010000111/10011010101111001101111011110/0/0/0/0/0/0/0/0/0/0/0/B:状态转换图三、实现过程1.QUARTUSII实现过程1.1建立工程.图1-1 QUARTUS软件的启动界面(1)点击File –> New Project Wizard创建一个新工程,系统显示如图5-2。

图1-2 工程创建向导的启始页(2)点击Next,为工程选择存储目录、工程名称、顶层实体名等,如图1-3所示;(3)点击Next,若目录不存在,系统可能提示创建新目录,如图1-4所示,点击“是”按钮创建新目录,系统显示如图1-5所示;(4)系统提示是否需要加入文件,在此不添加任何文件;(5)点击Next,进入设备选择对话框,如图1-6,这里选中实验箱的核心芯片CYCLONE系列FPGA产品EP1C6Q240C8;(6)点击Next,系统显示如图1-7,提示是否需要其他EDA工具,这里不选任何其他工具;(7)点击Next后,系统提示创建工程的各属性总结,若没有错误,点击Finish,工程创建向导将生成一个工程,这时软件界面如图1-8,在窗口左侧显示出设备型号和该工程的基本信息等。

图1-3 输入工程名称、存储目录图1-4 提示是否创建新文件夹图1-5 提示是否添加文件图1-6 芯片型号选择图1-7 提示是否利用其他EDA设计工具图1-8 工程阐述汇总1.2编译程序为实现用一个拨码开关控制一个LED亮灭的功能,可用VHDL编写一个程序实现,具体操作过程如下:(1)点击File->New创建一个设计文件,系统显示如图1-9;图1-9 创建一个设计文件(2)选择设计文件的类型为VHDL File;(3)点击OK,系统显示如图1-10,窗口右侧为VHDL的编辑窗口。

图1-10 新建的一个VHDL源文件的编辑窗口(4)在编辑窗口中编辑以下程序: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 ISSIGNAL count:STD_LOGIC_VECTOR(3 DOWNTO 0) ;BEGINPROCESS (cp,r)BEGINif r='1' then count<="0000";elsiF cp'EVENT AND cp='1' THENif count="0011" THENcount <="1111";ELSE count <= count-1;END IF;end if;END PROCESS;q<=count;end Behavioral;(5)输入程序后,存盘,如图1-11所示:图1-11 存盘( 6 ) 点击Processing->Start Compilation编译该文件,系统将开始编译,结束后,给出提示信息和编译结果,如图1-12所示:图1-12 编译结果显示1.3波形仿真(1 )建立时序仿真文件,如图1-13所示,选择“Vector Waveform File”,出现图1-13的界面,在Name空白处击右键,Insert→Insert Node or Bus。

图1-13图1-14在图1-14中单击图1-15在图1-15中单击,再单击→OK→OK。

如图1-16所示图1-16图1-17仿真文件存盘时,文件名字必须与顶层文件同名,即count10,默认即可。

图1-18图1-18是为仿真输入赋值的。

如想赋值‘1’,单击。

(2 )单击菜单进行仿真图1-19仿真结果如图1-20。

图1-20 仿真波形1.4引脚锁定与下载左上侧Assignment选项中选Pins,下侧Location分配引脚:cp-PIN_28 q[3]-PIN_114 q[2]-PIN_115 q[2]-PIN_116 q[1]-PIN_117 r-PIN_49。

图1-21右键点击Tools ——〉Programmer ,图1-221.5仿真结果分析由仿真波形图可以清楚地看到在一个周期之内,即由大到小,依次完成了四位二进制减法计数的功能。

其中由于缺了0000 0001 0010三个状态,即缺了十进制数中的0 1 2三个数,在波形仿真中,在这几个状态处发生跳变,即由0011直接跳回到1111,即完成一个周期的计数,不断循环往复,进行计数。

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 的卡诺图(c )11+n Q 的卡诺图(d )10+n Q 的卡诺图 图2.2 各触发器的卡诺图(1)根据卡诺图进行相应化简即得到状态方程,如下:nn n n n n n n n n n n n n n n n n n n n n n n n Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q 0230101011120130121201232313)()()(+=+=+++=+++=++++(2)求驱动方程由于JK 触发器的特性方程为n n n Q K Q J Q +=+1用状态方程与特性方程做比较,可得对应驱动方程,如下:nn n n n n n n n n n nQ Q K J K Q J Q Q K Q Q Q J Q Q Q K Q J 230010101230120123231====+=+=++==2.2画逻辑电路图根据所选用的触发器和时钟方程、输出方程、驱动方程,便可以画出如图2.3所示的逻辑电路图。

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

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

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

本设计中,选用四个时钟脉冲上升沿触发的JK 触发器来实现四位二进制减法计数器。

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

由于其中缺了0010 0001 0000三种状态,所以在计数过程中会发生跳变,即先从0011直接跳回到1111,周而复始。

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

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

四、总结在这次数字电路课程设计中,我认真研究题目,进行反复练习。

但是因为首次进行数字电路的课程设计,对于相关设计过程和分析方法并不大熟练。

但在几次失败的尝试后,最终还算顺利完成,通过这次课设加深了我对这门课的理解,对我有很大的提高。

在设计过程中,出现了突发的问题,这些问题在平时实验时没有出现。

比如在最后往实验箱导入时就发生了突发的问题。

还有的是基础不扎实,导致求驱动方程时总是有错误,浪费了大量的时间并且导致画电路图出错。

但我坚持不懈的求解,最后还是成功了。

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

相关主题