四位二进制减法器
成绩评定表
课程设计任务书
目录
一、课程设计目的 ............................................................................... - 1 - 二、设计框图........................................................................................ - 1 - 三、实现过程........................................................................................ - 2 - 1. QUARTUSⅡ实现过程 . .................................................................... - 2 -
1.1建立工程。 ...................................................................................................... - 2 - 1.2 VHDL 源程序 .................................................................................................. - 6 - 1.3 波形仿真 ......................................................................................................... - 7 - 1.4引脚锁定与下载 ............................................................................................ - 11 - 1.5 仿真结果分析 ............................................................................................... - 12 -
2. MULTISM实现过程 ...................................................................... - 13 -
2.1求驱动方程 .................................................................................................... - 13 - 2.2画逻辑电路图 ................................................................................................ - 17 - 2.3逻辑分析仪的仿真 ........................................................................................ - 18 - 2.4结果分析 ........................................................................................................ - 18 -
四、总结 . ............................................................................................. - 19 - 五、参考书目...................................................................................... - 20 -
一、课程设计目的
1:了解同步加法计数器工作原理和逻辑功能。 2:掌握计数器电路的分析、设计方法及应用。 3:学会正确使用JK 触发器。
二、设计框图
状态转换图是描述时序电路的一种方法,具有形象直观的特点,即其把所用
触发器的状态转换关系及转换条件用几何图形表示出来,十分清新,便于查看。
在本课程设计中,四位二进制同步加法计数器用四个CP 上升沿触发的JK 触发器实现,其中有相应的跳变,即跳过了1101,1110四个状态,这在状态转换图中可以清晰地显示出来。具体结构示意框图和状态转换图如下:
n
Q 3n Q 2Q 1n Q 0n (缺少0010,0011,0110,1000)
B:状态转换图
三、实现过程 1. QuartusⅡ实现过程
1.1建立工程。
创建一个工程,具体操作过程如下:
(1)点击File –> New Project Wizard创建一个新工程,如图1;
图1
(2)点击Next ,为工程选择存储目录、工程名称、顶层实体名等,并点击Next ,若目录不存在,系统可能提示创建新目录,如图2所示,点击“是”按钮创建新目录;
图2
(3)系统提示是否需要加入文件,在此不添加任何文件,如图3;
图
3
(4)点击Next ,进入设备选择对话框,如图4,这里选中实验箱的核心芯片CYCLONE 系列FPGA 产品EP1C6Q240C8;
图4
(5)点击Next ,系统显示如图5,提示是否需要其他EDA 工具,这里不选任何其他工具;
图
5
(6)点击Next 后,系统提示创建工程的各属性总结,若没有错误,点击Finish ,工程创建向导将生成一个工程,,在窗口左侧显示出设备型号和该工程的基本信息等。
图1.1
图1.2
1.2 VHDL源程序
LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
USE IEEE.STD_LOGIC_UNSIGNED.ALL; entity count10 is
PORT (cp,r:IN S TD_LOGIC;
q:OUT STD_LOGIC_VECTOR(3 DOWNTO 0) ); end count10;
ARCHITECTURE one OF count10 IS
SIGNAL count:STD_LOGIC_VECTOR(3 DOWNTO 0) ; BEGIN
PROCESS (cp,r) BEGIN
if r='0' then count
elsiF cp'EVENT AND cp='1' THEN if count="1001" THEN count
elsiF count="0111"THEN count
elsiF count="0100"THEN count
ELSE count
END PROCESS; q
1.3 波形仿真
(1)点击File->New创建一个设计文件,选择设计文件的类型为VHDL File,如图6;
图6
(2)在编辑窗口中编辑程序,如图7;
图7
(3)输入程序后,存盘;
(4)点击Processing->Start Compilation编译该文件,系统将开始编译,结束后,给出提示信息和编译结果,如图8所示:
图8
(5)建立时序仿真文件, 选择“Vector Waveform File”,如图9;
图9
(6)出现的界面中,在Name 空白处击右键,Insert →Insert Node or Bus ,单 击所示;
,单击,再单击 →OK →OK ,并对其进行仿真,如图10
(7)仿真结果如图11:
图11
(8)仿真后存盘。
1.4引脚锁定与下载
各引脚的锁定如表1所示:
表1
引脚的锁定和下载分别如图12和图13所示:
图12
图13
1.5 仿真结果分析
由仿真波形图可以清晰的看出加法计数器的工作过程:
由1111起依次递减,最后减至0000后再由1111起进行下一个周期的循环,其中缺少0010 0011 0110 1000四个状态。当复位键复位后,回到1111重新开始循环。
2. Multism实现过程
2.1求驱动方程
相关结构示意框图和状态转换图见上(二)所示步骤。选择四个时钟脉冲下降沿触发的JK 触发器,因要使用同步电路,所以时钟方程应该为
CP 0=CP 1=CP 2=CP 3=CP
(1)求状态方程
n +1
由所示状态图可直接画出如图2.1所示电路次态Q 3n +1Q 2n +1Q 1n +1Q 0的卡诺图,
再分解开便可以得到如图2.2 (a) (b) (c) (d)所示各触发器的卡诺图。
n +1
图2.1次态Q 2n +1Q 1n +1Q 0的卡诺图
n +1
将上述卡诺图对应拆成四个卡诺图,分别求出Q 3n +1、Q 2n +1、Q 1n +1、Q 0表达式
如下所示:
(a) Q 3n +1的卡诺图
(b) Q 2n +1的卡诺图
(c )Q 1n +1的卡诺图
n +1
(d )Q 0的卡诺图
图2.2 各触发器的卡诺图
根据卡诺图进行相应化简即得到状态方程,如下:
n +1
Q 3=Q 3n Q 2n +Q 2n Q 1n Q 0n +Q 3n Q 1n
Q 2n +1=Q 2n Q 1n Q 0n +Q 2n Q 0n +Q 2n Q 1n +Q 3n Q 2n Q 1n Q
n +11
=Q Q Q +Q Q Q +Q Q Q +Q Q Q
n n 21n 0n n 31n 0n n 32n 1n n n 310
Q 0n +1=Q 2n +Q 3n Q 1n
(2)求驱动方程
由于JK 触发器的特性方程为Q n +1=J Q n +K Q n
用状态方程与特性方程做比较,可得对应驱动方程,如下:
n n n
J 3=Q 0Q 1Q 2n n n K 3=Q 0Q 1Q 2
n n n J 2=Q 0Q 1+Q 3Q 1n n K 2=Q 0Q 1
J 1=Q 2Q 0
n n
+Q 3Q 2
n n
n n K 1=Q 0+Q 3n n n J 0=Q 2+Q 3Q 1
n n n n K 0=Q 3Q 2+Q 2Q 1
2.2画逻辑电路图
根据所选用的触发器和时钟方程、输出方程、驱动方程,便可以画出如图2.3所示的逻辑电路图。
图2.3 逻辑电路
2.3逻辑分析仪的仿真
图2.4逻辑分析仪的仿真
2.4结果分析
Multism 是一种虚拟仪器,可以用来验证电路的设计的正确性。根据相关计算,得出时序电路的时钟方程、状态方程、驱动方程,从而选择合适触发器来连接实现。本设计中,选用四个时钟脉冲下降沿触发的JK 触发器来实现四位二进制加法计数器。逻辑电路图中,四个小红灯即为显示器,从右到左显示时序图中的十一种状态,其中,灯亮表示“1”,灭表示“0”,从而达到计数目的。
由于其中缺00100011 0110 1000四种状态,所以在计数过程中会发生跳变,即先从1100跳到1111,再由1111直接跳回到0000,周而复始。逻辑分析仪类似于Quartus Ⅱ环境下的波形仿真,是对计数器的另一种直观的描述。其中,高电平表示“1”,低电平表示“0”,也可以对计数器的功能进行测试及检验。
四、总结
在这次数字电路课程设计中,我花了较多的时间进行反复练习。由于是第一次做数字电路的课程设计,对于相关设计过程和分析方法并不大熟练。最后还算顺利完成,这对我以后学习相关的课程以及进行更高层次的数字电路设计都奠定了不错的基础。
在设计过程中,出现了各种各样的问题,有些是单一原因引起的,有的是综合原因引起的,这些都很考验我的毅力与坚持。但是我掌握了研究这类问题的方法,即问题解决的过程就是要从问题所表现出来的情况出发,通过反复推敲,作出相应判断,逐步找出问题的症结所在,从而一举击破。
对于数字电路设计,尤其在使用Multism 进行逻辑电路的连接与分析时,这种分析解决问题的能力就更为重要。要在复杂的电子器件和密密麻麻的连线中找出头绪来,有时候并不是一件容易的事情。但是往往这样的问题就出在计算上,尤其是在化简卡诺图时,务必小心谨慎,一个字符写错或者漏掉一些信息,相应
得出的驱动方程就会有天壤之别,自然逻辑电路就不能实现最初的设计功能。而且必要的时候,一定要画出时序图来帮自己解决问题,往往会起不错的效果。就是在这种不断发现问题、分析问题、解决问题的过程中,我提高了自己分析解决问题的能力,因此,我把这次课程设计看成一次综合学习的机会。
在学习过《数字电路技术基础简明教程》之后,我已经算是掌握了一定的数字电路设计的基础以及相应的分析方法、实践能力以及自学能力。虽然遇到了不少问题,但是在向老师和同学请教的学习过程中,我又改正了不少错误的认识,对数字电路的设计与分析方法的掌握也有了一定的提高,我相信这些知识与经验对以后的学习会有极大的帮助。
这次课程设计虽然在功能上完全实现了课题的要求,即实现了四位二进制加
法计数器的全部要求,但是相应的不足之处还应该考虑到。例如在Multism 环境下设计逻辑电路时,怎样更好地布局以及连线,使整个电路图不至于杂乱无章等等问题,虽然是细节问题,但往往可以决定成败,这些问题都应该引以为戒并作为以后设计相关电路时的参考。
五、参考书目
1. 康华光. 电子技术基础:数字部分.4版. 北京:高等教育出版社,2000.
2. 潘松,王国栋.VHDL 实用教程. 西安:电子科技大学出版社,2001.
3.蔡惟铮. 集成电子技术. 北京:高等教育出版社,2004.