资源描述
(完整word版)四位二进制减计数器
成 绩 评 定 表
学生姓名
班级学号
120306
专 业
通信工程
课程设计题目
四位二进制减计数器
评
语
组长签字:
成绩
日期
2014 年 7月 15 日
课程设计任务书
学 院
信息科学与工程学院
专 业
通信工程
学生姓名
班级学号
120306
课程设计题目
四位二进制减计数器(缺1001,1010)
实践教学要求与任务:
1、了解数字系统设计方法
2、熟悉VHDL语言及其仿真环境、下载方法
3、熟悉Multisim环境
4、设计实现四位二进制减计数器(缺1001,1010)
工作计划与进度安排:
第一周 熟悉Multisim环境及QuartusⅡ环境,练习数字系统设计方法,
包括采用触发器设计和超高速硬件描述语言设计,体会自上而
下、自下而上设计方法的优缺点。
第二周 在QuartusⅡ环境中用VHDL语言实现四位二进制减计数器(缺
1001,1010)显示结果波形,并下载到目标芯片上,在实验箱上观
察输出结果。在Multisim环境中仿真实现四位二进制减计数器(缺
1001,1010),并通过虚拟器验证其正确性。
指导教师:
2014年6月19日
专业负责人:
2014年6月19日
学院教学副院长:
2014年 6月20日
摘 要
Quartus II 是Altera公司的综合性PLD/FPGA开发软件,支持原理图、VHDL、VerilogHDL以及AHDL(Altera Hardware Description Language)等多种设计输入形式,内嵌自有的综合器以及仿真器,可以完成从设计输入到硬件配置的完整PLD设计流程。
Multisim是Interactive Image Technologies (Electronics Workbench)公司推出的以Windows为基础的仿真工具,适用于板级的模拟/数字电路板的设计工作。它包含了电路原理图的图形输入、电路硬件描述语言输入方式,具有丰富的仿真分析能力。Multisim为用户提供了丰富的元器件,并以开放的形式管理元器件,使得用户能够自己添加所需要的元器件。
在QuartusII8.1软件中,建立名为wq的工程,用四位二进制减法计数器的VHDL语言实现了四位二进制减法计数器的仿真波形图,同时进行相关操作,锁定了所需管脚,将其下载到实验箱。
在Multisim软件中,通过选用四个时钟脉冲下降沿触发的JK触发器和同步电路,画出其时序图,卡诺图,建立相关方程,做出相关计算,完成四位二进制减法计数器(缺1001,1010)的驱动方程。在Multisim软件里画出了四位二进制减法计数器的逻辑电路图。分析由红绿灯的亮灭顺序及状态,和逻辑分析仪里出现波形图,证明四位二进制减法计数器设计成功。
关键字:VHDL语言;四位二进制减计数器;QUARTUSⅡ;Multisim
Ⅰ
目 录
1.课程设计目的 1
2.设计框图 1
3.实现过程 2
3.1 QuartusⅡ实现过程 2
3.1.1建立工程 2
3.1.2 VHDL源程序 4
3.1.3波形仿真 5
3.1.4引脚锁定与下载 7
3.1.5仿真结果分析 9
3.2 multisim实现过程 9
3.2.1求驱动方程 9
3.2.2画逻辑电路图 11
3.2.3逻辑分析仪的仿真 12
3.2.4结果分析 13
4.总结 14
5.参考文献 15
1. 课程设计目的
1.了解四位二进制减法计数器的工作原理和逻辑功能;
2.学会用VHDL语言对计数器进行编译和仿真;
3.掌握QuartusII的使用方法;
4.掌握Multisim的使用方法。
2.设计框图
状态转换图是描述时序电路的一种方法,具有形象直观的特点,即其把所用触发器的状态转换关系及转换条件用几何图形表示出来,十分清新,便于查看。
在本课程设计中,四位二进制同步减法计数器用四个CP下降沿触发的JK触发器实现,其中有相应的跳变,即跳过了1001 1010两个状态,这在状态转换图中可以清晰地显示出来。具体结构示意框图和状态转换图如下:
四位二进制同步减法计数器
CP
输入减法计数脉冲
C
输出进位信号
A:结构示意框图
1111 1110 1101 1100 1011 1000 0111
0000 0001 0010 0011 0100 01010110
(缺1001,1010)
B:状态转换图
3.实现过程
3.1. QuartusⅡ实现过程
3.1.1建立工程
(1)点击File–> New Project Wizard创建一个新工程。点击Next,为工程选择存储目录、工程名称、顶层实体名等,并点击Next,若目录不存在,系统可能提示创建新目录,如图1所示,点击“是”按钮创建新目录;
图1 选择存储目录、工程名称、顶层实体名
(2)系统提示是否需要加入文件,在此不添加任何文件,如图2;
图2 是否添加文件
(3)点击Next,进入设备选择对话框,如图3,这里选中实验箱的核心芯片CYCLONE系列FPGA产品EP1C6Q240C8;
图3设备选择
(4)点击Next,系统显示如图4,提示是否需要其他EDA工具,这里不选任何其他工具;
图4 是否需要其他EDA工具
(5)点击Next后,系统提示创建工程的各属性总结,若没有错误,点击Finish,工程创建向导将生成一个工程,在窗口左侧显示出设备型号和该工程的基本信息等;
图5 创建工程的各属性总结
3.1.2 VHDL源程序
library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
use IEEE.STD_LOGIC_UNSIGNED.ALL;
entity wq is
port(CP,r:in std_logic;
q:out std_logic_vector(3 downto 0));
end wq;
architecture behavioral of wq is
signal count:std_logic_vector(3 downto 0);
begin
process(cp,r)
begin
if r='0' then count<="1111";
elsif cp'event and cp='1' then
if count="1011" then
count<="1000";
else count<=count-1;
if count="0000"then
count<="1111";
else count<=count-1;
end if;
end if;
end if;
end process;
q<=count;
end behavioral ;
3.1.3 波形仿真
(1)点击File->New创建一个设计文件,选择设计文件的类型为VHDL File,如图6;
图6 创建设计文件
(2)在编辑窗口中编辑程序,并存盘,如图7;
图7 编辑程序
(3)点击Processing->Start Compilation编译该文件,系统将开始编译,结束后,给出提示信息和编译结果,如图8所示;
图8 编译
(5)建立时序仿真文件,选择“Vector Waveform File”,如图9;
图9 建立时序仿真文件
(6)出现的界面中,在Name空白处击右键,Insert→Insert Node or Bus,单击,单击,再单击 →OK→OK,并对其进行仿真,如图10所示;
图10 仿真
(7)仿真结果,如图11所示;
图11 仿真结果
(8)仿真后存盘
3.1.4引脚锁定与下载
各引脚的锁定如表1所示:
信号名称
引脚
cp
28
q3
101
q2
100
q1
99
q0
98
r
53
表1 锁引脚
引脚的锁定和下载分别如图12和图13所示:
图12 锁引脚
图13 下载
3.1.5 仿真结果分析
仿真波形图可以看出减法计数器的工作过程:由1111起依次递减,最后减至0000后再由1111起进行下一个周期的循环,其中缺少1001,1010两个状态。当复位键复位后,回到1111重新开始循环。
3.2 Multism实现过程
3.2.1求驱动方程
选择四个时钟脉冲下降沿触发的JK触发器,因要使用同步电路,所以时钟方程应该为
(1)求状态方程
由所示状态图可直接画出如表2所示电路次态的卡诺图,再分解开便可以得到如表3 (a) (b) (c) (d)所示各触发器的卡诺图。
00
01
11
10
00
1111
0000
0010
0001
01
0011
0100
0110
0101
11
1011
1100
1110
1101
10
0111
XXXX
1000
XXXX
表2 次态的卡诺图
由上述卡诺图可求出、、、表达式如下所示:
00
01
11
10
00
1
0
0
0
01
0
0
0
0
11
1
1
1
1
10
0
X
1
1
表3 (a) 的卡诺图
00
01
11
10
00
1
0
0
0
01
0
1
1
1
11
0
1
1
1
10
1
X
0
X
表3(b) 的卡诺图
00
01
11
10
00
1
0
1
0
01
1
0
1
0
11
1
0
1
0
10
1
X
0
X
表3(c)的卡诺图
00
01
11
10
00
1
0
0
1
01
1
0
0
1
11
1
0
0
1
10
1
X
0
X
表3(d) 的卡诺图
根据卡诺图进行相应化简即得到状态方程,如下:
(2)求驱动方程
由于JK触发器的特性方程为
用状态方程与特性方程做比较,可得对应驱动方程,如下:
3.2.2画逻辑电路图
根据所选用的触发器和时钟方程、输出方程、驱动方程,便可以画出如
图14所示的逻辑电路图
图14 逻辑电路图
3.2.3逻辑分析仪的仿真
逻辑分析仪显示的波形如图15所示:
图15 逻辑分析仪波形
检查电路能否自启动:把无效状态1001和1010带入输出方程和和状态方程进行计算,结果如下:
由此可见,在CP操作下都能回到有效状态,即电路能够自启动。
3.2.4结果分析
Multism是一种虚拟仪器,可以用来验证电路的设计的正确性。根据相关计算,得出时序电路的时钟方程、状态方程、驱动方程,从而选择合适触发器来连接实现。本设计中,选用四个时钟脉冲下降沿触发的JK触发器来实现四位二进制减法计数器。逻辑电路图中,四个小红灯即为显示器,灯亮表示“1”,灭表示“0”,从而达到计数目的。
由于其中缺了1001,1010 两种状态,所以在计数过程中会发生跳变,即先从1011跳到1000,再由0000直接跳回到1111,周而复始。逻辑分析仪类似于QuartusⅡ环境下的波形仿真,是对计数器的另一种直观的描述。其中,高电平表示“1”,低电平表示“0”,也可以对计数器的功能进行测试及检验。
4.总结
在本次数字电路课程设计中,我花了较多的时间查阅资料,进行反复练习,使我对二进制减法计数器掌握得更加熟练。这对我以后学习相关的课程以及进行更高层次的数字电路设计都奠定了不错的基础。
在设计过程中,出现了各种各样的问题,有些是单一原因引起的,有的是综合原因引起的,这些都很考验我的毅力与坚持。但是我掌握了研究这类问题的方法,即问题解决的过程就是要从问题所表现出来的情况出发,通过反复推敲,作出相应判断,逐步找出问题的症结所在,从而一举击破。
对于数字电路设计,尤其在使用Multism进行逻辑电路的连接与分析时,这种分析解决问题的能力就更为重要。要在复杂的电子器件和密密麻麻的连线中找出头绪来,并不是一件很容易的事情。往往要重新再来一次,但是这样的问题就出在计算上,尤其是在化简卡诺图时,务必小心谨慎,一个字符写错或者漏掉一些信息,就会导致驱动方程错误,逻辑电路就不能实现最初的设计功能。
在学习过《数字电路技术基础简明教程》之后,我已经算是掌握了一定的数字电路设计的基础以及相应的分析方法、实践能力以及自学能力。虽然遇到了不少问题,但是在向老师和同学请教的学习过程中,我又改正了不少错误的认识,对数字电路的设计与分析方法的掌握也有了一定的提高,我相信这些知识与经验对以后的学习会有极大的帮助。
5.参考文献
1.《数字电子技术基础简明教程》(第三版) 高等教育出版社 余孟尝主编;
2.《数字集成电子技术教程》 高等教育出版社 李世雄,丁康源主编;
3.《数字逻辑与硬件描述语言实验指导书》 沈阳理工大学信息学院技术中心 王东明,喻红婕, 吴迪主编;
4.《VHDL实用教程》. 潘松,王国栋,西安:电子科技大学出版社,2001。
16
展开阅读全文