加法器课程设计报告
成 绩 评 定 表
课程设计任务书
目录
一、课程设计目的 ....................................................................................................... 1
二、设计框图 ............................................................................................................... 1
三、实现过程 ............................................................................................................... 1
1、Xilinx ISE10.1实现过程(VHDL) ................................................................. 1
1、1、建立工程 ........................................................................................... 2
1、2、调试程序 ........................................................................................... 4
1、3、波形仿真 ........................................................................................... 5
1、4、引脚锁定与下载 ............................................................................... 7
1、5、仿真结果分析 ................................................................................. 10
2、Multisim10实现过程(电路设计) . ............................................................. 10
2、1、设计原理 ......................................................................................... 10
2、2、基于Multisim 的设计电路 ............................................................ 13
2、3、虚拟观察的波形 ............................................................................. 14
2、4、仿真结果分析 ................................................................................. 14
四、设计总结 ............................................................................................................. 15
五、参考文献 ............................................................................................................. 15
一. 课程设计的目的
1. 了解数字系统设计原理及方法。
2. 熟悉Xillinx ISE仿真环境及VHDL 下载。 3. 熟悉Mutisim 仿真环境。
4. 设计实现(四位二进制加法计数器(缺0000,0001,0100,0101))。
二、设计框图
规律,可看出状态图如图1所示。
图1 状态图
三、实现过程
1、Xilinx ISE10.1实现过程(VHDL)
代码
LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
USE IEEE.STD_LOGIC_UNSIGNED.ALL; entity count16 is
PORT (cp,r:IN STD_LOGIC;
q:OUT STD_LOGIC_VECTOR(3 DOWNTO 0) );
end count16;
ARCHITECTURE Behavioral OF count16 IS
SIGNAL count:STD_LOGIC_VECTOR(3 DOWNTO 0) ; BEGIN
PROCESS (cp,r) BEGIN
elsiF cp'EVENT AND cp='1' THEN
if r='0' then count
ELSE count
ELSE count
end if;
END PROCESS; q
1、1、建立工程
File ——〉New Project;Project Name:hll (例:hll ); Project Location:工程保存的位置(例:F :0603060x\hll);next ——>……——>next直至finish 。
1、2、调试程序
右击xc95108-15pc84,选New Source,再选VHDL Module后,填加文件名(例:File name:hll )——〉next( Port Name中随便填A) ——〉finish 。
写入程序,保存程序
双击Implement Design(或右键Run ),运行程序,调试成功显示如下
:
1、3、波形仿真
回到vi.vhd 界面,右键点击v1 - Behavioral(v1.vhd ), 选New Source——〉Test Bench WaveForm ——〉File Name:t1( 测试波形文件名tt),next(连接v1) ——next 〉——〉
finish
左侧Sources for 栏内选择Behavioral Simulation,选择tt ,打开Processes 下的Xilinx ISE Simulator 如图
点击Simulate Behavioral Model(或右键RUN )运行仿真波形,如下时序图
1、4、引脚锁定与下载
左上侧Source for选项中选择Synthesis/Implementation,左下侧Processes ——〉User Constraints ——〉Assign Package Pins分配引脚:Cp-key1,r-sw1,q3-L1,q2-L2,q1-L3,q0-L4。点击保存,OK 。
回到ISE :Processes ——〉Implement Design——〉Optional Implementation Tools——〉双击Lock Pins锁定引脚
Processes ——〉Implement Design——〉双击Generate Programming File——〉Configure Device (iMPACT ),默认JTAG ,finishi ,v1.jed ——〉Open
右键点绿——〉Progaram ——〉OK ,结束下载。(调试时sw 向上是1;灯亮为1)
1、5、仿真结果分析
因为我的题目是四位二进制减法计数器(0000,0001,0100,0101), 所以计数器是从15直接跳变成2,再从3直接跳变成5,其余的数正常跳变,而根据波形仿真图可以十分清楚地看出波形跳变过程,符合开始的设计框图。
2、Multisim10实现过程 21、设计原理
1. 选择触发器
选用由于JK 触发器功能齐全、使用灵活,在这里选用4个CP 下降沿触发的边沿JK 触发器。
2. 求时钟方程、状态方程 (1)求时钟方程
采用同步方案,故取CP 0=CP1=CP2=CP3=CP。 CP 是整个要设计的时序电路的输入时钟脉冲。 (2)求状态方程
由图1所示状态图可直接画出如图2所示电路次态Q 3n +1Q 2n +1Q 1n +1Q 0n +1的卡诺图,再分解开便可以得到如图2所示各触发器的卡诺图。
图2 次态Q 3n +1Q 2n +1Q 1n +1Q 0n +1的卡诺图
(a)
(b)
(c)
(d)
图3 各触发器的卡诺图
(a )Q 3n +1的卡诺图(b )Q 2n +1的卡诺图(c )Q 1n +1的卡诺图(d )Q 0n +1的卡诺图 显然,由图3 所示各卡诺图便可很容易地得到
Q Q Q Q
n +1
3
====
Q Q Q
1
n n n
3
+Q +Q
n
n
3
n +1
2
Q Q Q
1
n n n
2
n
1
Q Q
n n
2
n +1
1
Q Q
n n
1
+Q Q
n
1
n +1
Q
n
(1)
4. 求驱动方程
JK 触发器的特性方程为Q n +1=J Q n +K Q n 与特性方程做比较,可得
J K J J J
33
=
Q Q
12
n n
=0 (2)
2
10
K =K =K
=
10
Q Q =Q
=
1
n n
n
=1
2、2、基于Multisim 的设计电路
根据所选用的触发器和时钟方程、输出方程、驱动方程,便可以画出如图5所示的逻辑电路图。
图4 逻辑电路图
2、3、虚拟观察的波形
图5 逻辑分析图
检查电路能否自启动
将无效状态0000、0001、0100、0101代入式(1)进行计算,结果如下: 0010(有效状态) 0110(有效状态)
可见,所设计的时序电路能够自启动。
2、4、仿真结果分析
我的题目是四位二进制加法计数器(缺0000,0001,0100,0101),在multisim 中,计数器也是从15直接跳变成2,再从3直接跳变成5,其余的数正常跳变,小灯根据数字的变化有规律地亮灭,例如,当计数器加到1001是,会出现以下现象:从左数第一个和第四个小灯是亮的,而第二个和第三个小灯是灭的,以此类推。而当最后计数器加到1111时,要进行进位,变成0000,这个时候表示进位的绿灯会变亮。而且时序图会按照设计的那样进行,类似于ISE 的仿真波形图。
四、设计总结
1. 实验中遇到的问题:
在用multisim 做仿真波形图时,最开始检查的仿真结果是错的,波形不对。 2. 解决办法:
n +1Q 2为了解决问题,我又从画卡诺图开始重新算,一步一步检查,后来发现的卡诺n +1
Q 2图上的一个1忘记画圈了,结果就造成了少了一个项,波形图和我的题目的波形不符n +1Q 合。然后我重新求出驱动方程,也就是把2加上一项,另外的驱动方程不用改,结果波
形终于出来了。
这个过程让我明白了做实验必须要认真完成每个步骤,往往一步错就会造成以后更大的错误,想一想如果辛辛苦苦花费好多时间精力做出来的成果却发现因为其中一个小小的步骤而与正确结果南辕北辙,那就太让人沮丧了。所以必须要做到步步认真,严谨。
五. 参考文献
[1]余孟尝. 数字电子技术基础简明教程. 第三版. 高等教育出版社,2006.7
[2]王东明 喻红婕 吴迪。数字逻辑与硬件描述语言实验指导书. 沈阳理工大学信息学院技术中心,2012.6