当前位置:
文档之家› 数电课设 四位二进制加法计数器的设计
数电课设 四位二进制加法计数器的设计
end count10;
architecture behavioral of count10 is
signal count:std_logic_vector(3 downto 0);
begin
process(cp,r)
begin
if r='0' then count<="0000";
elsif cp'event and cp='1' then
图1.12
回到ISE环境:Processes——〉Implement Design——〉Optional Implementation Tools——〉双击Lock Pins锁定引脚:
图1.13
Processes——〉Implement Design——〉双击Generate Programming File——〉Configure Device(iMPACT),默认JTAG,finishi,we.jed——〉Open
2. Multism实现过程
2.1求驱动方程
相关结构示意框图和状态转换图见上(二)所示步骤。选择四个时钟脉冲下降沿触发的JK触发器,因要使用同步电路,所以时钟方程应该为
(1)求状态方程
由所示状态图可直接画出如图2.1所示电路次态 的卡诺图,再分解开便可以得到如图2.2所示各触发器的卡诺图。
00
01
11
if count="1010" then
count<="1101";
else count<=count+1;
if count="1101" then
count<="0000";
end if;
end if;
end if;
end process;
q<=count;
end behavioral ;
双击Implement Design(或右键Run),运行程序,调试成功显示如下:
对于数字电路设计,尤其在使用Multism进行逻辑电路的连接与分析时,这种分析解决问题的能力就更为重要。要在复杂的电子器件和密密麻麻的连线中找出头绪来,有时候并不是一件容易的事情。但是往往这样的问题就出在计算上,尤其是在化简卡诺图时,务必小心谨慎,一个字符写错或者漏掉一些信息,相应得出的驱动方程就会有天壤之别,自然逻辑电路就不能实现最初的设计功能。而且必要的时候,一定要画出时序图来帮自己解决问题,往往会起不错的效果。就是在这种不断发现问题、分析问题、解决问题的过程中,我提高了自己分析解决问题的能力,因此,我把这次课程设计看成一次综合学习的机会。
成绩评定表
学生姓名
XXX
班级学号
专业
通信工程
课程设计题目
四位二进制计数器
评语
组长签字:
成绩
日期
20 年 月 日
课程设计任务书
学 院
信息科学与技术
专 业
通信工程
学生姓名
XXX
班级学号
课程设计题目
四位二进制同步加法计数器(缺1011 1100 1110 1111)
实践教学要求与任务:
1.了解数字系统设计方法。
四
在这次数字电路课程设计中,我花了较多的时间查阅资料,进行反复练习。由于是第一次做数字电路的课程设计,对于相关设计过程和分析方法并不大熟练。 但功夫不负有心人,最终还算顺利完成,这对我以后学习相关的课程以及进行更高层次的数字电路设计都奠定了不错的基础。
在设计过程中,出现了各种各样的问题,有些是单一原因引起的,有的是综合原因引起的,这些都很考验我的毅力与坚持。但是我掌握了研究这类问题的方法,即问题解决的过程就是要从问题所表现出来的情况出发,通过反复推敲,作出相应判断,逐步找出问题的症结所在,从而一举击破。
2.在Multisim环境中仿真实现四位二进制同步加法计数器,
缺(1011 1100 1110 1111),并通过虚拟仪器验证其正确性。
指导教师:
201 年 月 日
专业负责人:
201 年 月 日
学院教学副院长:
201 年 月 日
五、参考书目17
一、课程设计目的
1:了解同步加法计数器工作原理和逻辑功能。
图1.6
1.3波形仿真。回到wei.vhd界面,右键点击wei–Behavioral,选New Source——〉Test Bench WaveForm——〉输入File Name,next——next〉——〉finish。
图1.7
图1.8
图1.9
左侧Sources for栏内选择Behavioral Simulation,选择.tbw文件,打开Processes下的Xilinx ISE Simulator如图
10
00
0001
0010
0100
0011
01
0101
0110
1000
0111
11
XXXX
0000
XXXX
XXXX
10
1001
1010
XXXX
1101
图2.1次态 的卡诺图
将上述卡诺图对应拆成四个卡诺图,分别求出 、 、 、 表达式
如下所示:
00
01
11
10
00
0
0
0
0
01
0
0
1
0
11
X
0
X
X
10
1
1
由于其中缺了1011 1100 1110 1111四种状态,所以在计数过程中会发生跳变,即先从1010跳到1101,再由1101直接跳回到0000,周而复始。逻辑分析仪类似于ISE环境下的波形仿真,是对计数器的另一种直观的描述。其中,高电平表示“1”,低电平表示“0”,也可以对计数器的功能进行测试及检验。
图1.3
图1.4
写入程序,保存程序
图1.5
具体程序如下:
library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
use IEEE.STD_LOGIC_UNSIGNED.ALL;
entity count10 is
port(CP,r:in std_logic;
q:out std_logic_vector(3 downto 0));
B:状态转换图
三、实现过程
1.
1.1建立工程。File——〉New Project;输入Project Name;即工程名; Project Location,即工程保存的位置;然后next——>……——>next直至finish。
图1.1
图1.2
1.2调试程序。右击xc95*x1-**,选New Source,再选VHDL Module后,填加文件名——〉next一直到finish。
在学习过《数字电路技术基础简明教程》之后,我已经算是掌握了一定的数字电路设计的基础以及相应的分析方法、实践能力以及自学能力。虽然遇到了不少问题,但是在向老师和同学请教的学习过程中,我又改正了不少错误的认识,对数字电路的设计与分析方法的掌握也有了一定的提高,我相信这些知识与经验对以后的学习会有极大的帮助。
2:掌握计数器电路的分析、设计方法及应用。
3:学会正确使用JK触发器。
二、设计框图
状态转换图是描述时序电路的一种方法,具有形象直观的特点,即其把所用触发器的状态转换关系及转换条件用几何图形表示出来,十分清新,便于查看。
在本课程设计中,四位二进制同步加法计数器用四个CP下降沿触发的JK触发器实现,其中有相应的跳变,即跳过了1011 1100 1110 1111四个状态,这在状态转换图中可以清晰地显示出来。具体结构示意框图和状态转换图如下:
(1)
(2)求驱动方程
由于JK触发器的特性方程为
用状态方程与特性方程做比较,可得对应驱动方程,如下:
2
根据所选用的触发器和时钟方程、输出方程、驱动方程,便可以画出如图2.3所示的逻辑电路图。
图2.3逻辑电路图
2.3
图2.4逻辑分析仪的仿真
检查电路能否自启动:把无效状态111、1100、1110和1111带入输出方程和和状态方程进行计算,结果如下:
由此可见,在CP操作下都能回到有效状态,即电路能够自启动。
2.4
Multism是一种虚拟仪器,可以用来验证电路的设计的正确性。根据相关计算,得出时序电路的时钟方程、状态方程、驱动方程,从而选择合适触发器来连接实现。本设计中,选用四个时钟脉冲下降沿触发的JK触发器来实现四位二进制加法计数器。逻辑电路图中,四个小红灯即为显示器,从右到左显示时序图中的十二种状态,其中,灯亮表示“1”,灭表示“0”,从而达到计数目的。
图1.14
右键点绿——〉Progaram——〉OK,结束下载(调试时sw向上是1;灯亮为1)。
图1.15
图1.16
(五)仿真结果分析
由仿真波形图可以清楚地看到在一个周期之内,即由小到大,依次完成了四位二进制加法计数的功能。其中由于缺了1011 1100 1110 1111四个状态,即缺了十进制数中的11 12 14 15四个数,在波形仿真中,在这几个状态处发生跳变,即由1010跳到1101,再由1101直接跳回到0000,即完成一个周期的计数,不断循环往复。
图1.10
点击Simulate Behavioral Model(或右键RUN)运行仿真波形,如下:
图1.11
1.4引脚锁定与下载。左上侧Source for选项中选Synthesis/Implementation,左下侧Processes——〉User Constraints——〉Assign Package Pins分配引脚:Cp-p11,r-p43,q3-p50,q2-p52,q1-p51,q0-p55。点击保存,OK。