数电 四位二进制减法计数器 课设

更新时间:2023-03-09 12:32:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

成 绩 评 定 表

学生姓名 专 业 评 语 高亮 班级学号 课程设计题目 1103060128 四位二进制减法计数器 通信工程 组长签字: 成绩 日期 20 年 月 日

课程设计任务书

学 院 学生姓名 课程设计题目 信息科学与工程学院 高亮 专 业 班级学号 通信工程 1103060128 四位二进制减法计数器(缺0011, 0100, 0101, 0110, 1000) 实践教学要求与任务: 1、了解数字系统设计方法 2、熟悉VHDL语言及其仿真环境、下载方法 3、熟悉Multisim环境 4、设计实现四位二进制减法计数器 工作计划与进度安排: 第一周 熟悉Multisim环境及QuartusⅡ环境,练习数字系统设计方法, 包括采用触发器设计和超高速硬件描述语言设计,体会自上而 下、自下而上设计方法的优缺点。 第二周 1.在QuartusⅡ环境中用VHDL语言实现四位二进制减法计数器(缺0011, 0100, 0101, 0110, 1000), 2.在Multisim环境中仿真实现四位二进制减法计数器(缺0011, 0100, 0101, 0110, 1000), 指导教师: 专业负责人: 学院教学副院长: 201 年 月 日 201 年 月 日 201 年 月 日

摘要

本文首先在QuartusII8.1中建立名为count10的工程,并用四位二进制减法计数器的VHDL语言实现了四位二进制减法计数器的仿真波形图,继续进行相关操作锁定了所需管脚,将其下载到实验箱。然后通过选用四个时钟脉冲下降沿触发的JK触发器和同步电路,画出其时序图,卡诺图,由JK触发起的特征方程建立相关方程,进行计算,得出了四位二进制减法计数器(缺0011, 0100, 0101, 0110, 1000)的驱动方程。进而在Multisim软件中画出了四位二进制减法计数器的逻辑电路图。经过运行,由红灯的亮灭顺序及绿灯的状态还有在逻辑分析仪里出现与仿真波形一样的波形图。说明四位二进制减法计数器(缺0011, 0100, 0101, 0110, 1000)设计成功。

关键字:四位二进制减法计数器;JK触发器;驱动方程;仿真波形图;逻辑电路图。

目录

1、课程设计目的 .............................................................................. 2 2、课程题目实现框图 ...................................................................... 2 3、实现过程 ...................................................................................... 3

3.1 QuartusII8.1实现过程(VHDL)....................................................................................3

3.1.1 建立工程 ...................................................... 3 3.1.2 调试程序 ...................................................... 4 3.1.3 波形仿真 ..................................................... 11 3.1.4 仿真结果分析 ................................................. 15 3.1.5 引脚锁定与下载 ............................................... 15

3.2 Multisim实现过程(电路设计).......................................................................17

3.2.1 求驱动方程 .................................................... 17

3.2.2 画逻辑电路图 .................................................. 21 3.2.2 逻辑分析仪的仿真 .............................................. 22

3.2.3 仿真结果分析 .................................................. 22

4、设计总结 .................................................................................... 23 5、参考文献 .................................................................................... 24

1

一、 课程设计目的

1、了解数字系统设计方法。

2、熟悉VHDL语言及其仿真环境、下载方法。

3、熟悉Multisim环境,学会使用逻辑符号及元件画逻辑电路图。

二、课程题目实现框图

1、如图2-1所示是四位二进制减法计数器的结构示意框图。CP是输入减法计数脉冲,所谓计数,就是计CP脉冲个数,每来一个脉冲计数器就减一个1,当不够减时就向高位

错位。

2、根据二进制减法计数器的规律可以画出如图2-2所示的四位二进制减法计数器的状态图。

1111 1100 1011 1010 1001 1000 0111 0110

0000 0001 0010 0011 0100 0101

/0 图2-1 4/0位二进制减法计数器的状态图

2

三、实现过程

3.1 QuartusII8.1实现过程(VHDL)

3.1.1 建立工程

图3-1 QUARTUS软件的启动界面

(1)点击File –> New Project Wizard创建一个新工程,系统显示如图3-2。

3

图3-2 工程创建向导的启始页

(2)点击Next,为工程选择存储目录、工程名称、顶层实体名等,如图3-3所示; (3)点击Next,若目录不存在,系统可能提示创建新目录,如图3-4所示,点击“是”按钮创建新目录,系统显示如图3-5所示;

(4)系统提示是否需要加入文件,在此不添加任何文件;

(5) 点击Next,进入设备选择对话框,如图3-6,这里选中实验箱的核心芯片CYCLONE系列FPGA产品EP1C6Q240C8;

(6)点击Next,系统显示如图3-7,提示是否需要其他EDA工具,这里不选任何其他工具;

(7)点击Next后,系统提示创建工程的各属性总结,若没有错误,点击Finish,工程创建向导将生成一个工程,这时软件界面如图3-8,在窗口左侧显示出设备型号和该工程的基本信息等。

4

图3-3 输入工程名称、存储目录

图3-4 提示是否创建新文件夹

5

图3-5 提示是否添加文件

图3-6 芯片型号选择

6

图3-7 提示是否利用其他EDA设计工具夹

图3-8 工程阐述汇总

7

3.1.2 调试程序

为实现用一个拨码开关控制一个LED亮灭的功能,可用VHDL编写一个程序实现,具体操作过程如下:

1) 点击File->New创建一个设计文件,系统显示如图3-9;

图3-9 创建一个设计文件 2) 选择设计文件的类型为VHDL File;

3) 点击OK,系统显示如图3-10,窗口右侧为VHDL的编辑窗口。

8

图3-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 is PORT (cp,r:IN STD_LOGIC;

q:OUT STD_LOGIC_VECTOR(3 DOWNTO 0) ); end count10;

ARCHITECTURE Behavioral OF count10 IS

SIGNAL count:STD_LOGIC_VECTOR(3 DOWNTO 0) ; BEGIN

PROCESS (cp,r)

9

BEGIN

if r='0' then count<=\

elsiF cp'EVENT AND cp='1' THEN

if count=\ count <=\

elsif count=\ ELSE count <= count-1; END IF; END IF; END PROCESS; q<=count; end Behavioral;

5)输入程序后,存盘,如图3-11所示:

图3-11 存盘 6 ) 点击Processing->Start Compilation编译该文件,系统将开始编译,结束后,给出提示信息和编译结果,如图3-12所示:

10

图3-12 编译结果显示 3.1.3 波形仿真

( 1 )建立时序仿真文件,如图3-13所示,选择“Vector Waveform File”,出现图3-14的界面,在Name空白处击右键,Insert→Insert Node or Bus 。

图3-13

11

在图3-15中单击

图3-14 仿真波形显示界面

图3-15

12

图3-16 在图3-16中单击

,再单击 →OK→OK。如图3-17所示:

图3-17 将仿真文件存盘时,过程与代码存盘一样,文件名字必须与顶层文件同名,即count10,默认即可。

13

图3—18 图3-18 是为仿真输入赋值的。如想赋值‘1’,单击

( 2 ) 单击菜单进行仿真。

图3-19

14

仿真结果如图3-20。

图3-20 仿真波形图 3.1.4 仿真结果分析

由仿真波形图可以清楚地看到在一个周期之内,即由小到大,依次完成了四位二进制减法计数的功能。其中由于缺了0011, 0100, 0101, 0110, 1000五个状态,即缺了十进制数中的3,4,5,6,8四个数,在波形仿真中,在这几个状态处发生跳变,即由0010跳到0111,再由0111跳到1001,然后由1111直接跳回到0000,即完成一个周期的计数,由此循环往复。

3.1.5 引脚锁定与下载

左上侧Assignment选项中选Pins,给下侧Location分配引脚:cp-PIN_28 q[3]-PIN_98q[2]-PIN_99 q[2]-PIN_100 q[1]-PIN_101 r-PIN_58。

15

图3-21 锁定管脚界面

锁定管脚之后,右键点击Tools——〉Programmer ,如下图3-22所示。

图3-22 下载界面

如图,点击start,右上角progress框显示100%,即下载成功。

16

3.2 Multisim 实现过程(电路设计)

3.2.1求驱动方程

相关结构示意框图和状态转换图见上(二)所示步骤。选择四个时钟脉冲下降沿触发的JK触发器,因要使用同步电路,所以时钟方程应该为CP0?CP 1?CP2?CP3?CP。

(1)求输出方程 Q1nQ0n nQ3nQ2 00 01 11 10 00 01 11 10 0 X 0 X 0 X 0 0 0 0 1 0 0 X 0 0 图 3.2.1

nnnnQ3由图3.2.1所示卡诺图可直接得到输出方程C=Q2Q1Q0。

(2)求状态方程

17

n?1 由所示状态图可直接画出如图3.2.1所示电路次态Q3n?1Q2Q1n?1Q0n?1的卡诺图,再

分解开便可以得到如图3.2.2所示各触发器的卡诺图。

Q1nQ0nnQ3nQ2 00 01 11 10 00 1111 0000 XXXX 0001 01 XXXX XXXX 0010 XXXX 11 1011 1100 1110 1101 10 XXXX 0111 图3.2.2次态Q3n?11010 n?1n?1的卡诺图 Q0Q21001 n?1n?1将上述卡诺图对应拆成四个卡诺图,分别求出Q3n?1、Q2、Q1n?1、Q0表达式

如下所示:

Q1nQ0n nQ3nQ2 00 01 11 10 00 01 11 10 1 X 1 X 0 X 1 0 X 0 1 1 0 X 1 1 (a) Q3n?1的卡诺图

18

Q1nQ0n nQ3nQ2 00 01 11 10 00 01 11 10 1 X 0 X 0 X 1 1 X 0 1 0 0 X 1 0 n?1 (b)Q2的卡诺图

Q1nQ0n nQ3nQ2 00 01 11 10 00 01 11 10 1 X 1 X 0 X 0 1 X 1 1 1 0 X 0 0

19

(c)Q1n?1的卡诺图

Q1nQ0n nQ3nQ2 00 01 11 10 00 1 0 X 1 01 11 10 X 1 X X 0 1 0 0 0 X 1 1 n?1 (d)Q0的卡诺图

图3.2.3 各触发器的卡诺图

(1)根据卡诺图进行相应化简即得到状态方程,如下:

====

+ +

++

+

++

(3)求驱动方程

由于JK触发器的特性方程为Qn?1?JQn?KQn,

用状态方程与特性方程做比较,可得对应驱动方程,如下:

20

JK触发器的特性方程为Qn?1?JQn?KQn 与特性方程做比较,可得 ====

==

=

, =1

+

检查电路能否自启动:把无效状态0011, 0100, 0101, 0110,和1000带入输出方程和和状态方程进行计算,结果如下:

0011—>1001 0100—>1011 0101—>1001 0110—>0001 可见,在输入计数脉冲CP操作下,都能回到有效状态,即电路能够自启动。

3.2.2 画逻辑电路图

根据所选用的触发器和时钟方程、输出方程、驱动方程,便可以画出如图3.2.4所示的逻辑电路图。

图3.2.4 逻辑电路图

21

3.2.3 逻辑分析仪的仿真

图3.2.5 逻辑分析仪的仿真

3.2.4 仿真结果分析

Multisim是一种虚拟仪器,可以用来验证电路设计的正确性。根据相关计算,得出时序电路的时钟方程、输出方程,状态方程、驱动方程,从而选择合适的触发器来连接实现。在本设计中,选用四个时钟脉冲下降沿触发的JK触发器来实现四位二进制减法计数器。在逻辑电路图中,四个小红灯即为显示器,从左到右显示时序图中的十二种状态,其中,灯亮表示“1”,灭表示“0”,从而达到计数目的。

由于其中缺了0011, 0100, 0101, 0110,五种状态,所以在计数过程中会发生跳变,即先从0011跳到0111,再从0111跳到1001,然后由1111直接跳回到0000,循环往复。逻辑分析仪类似于QuartusII环境下的波形仿真,是对计数器的另一种直观的描述。其中,高电平表示“1”,低电平表示“0”,也可以对计数器的功能进行测试和检验。

22

四、设计总结

在本次数字电路课程设计之中,我下载了QuartusII和Multisim软件,花费许多时间回顾课本知识以及查阅资料,在两种环境下反复进行练习。由于是第一次接触数字电路的课程设计,所以我一开始对于相关设计过程和分析方法并不太熟练。没有形成一种逻辑分析技巧,但经过我反反复复的练习和计算,最终还是熟练掌握了对此的计算步骤以及设计方法,这一点很值得欣慰,通过本次数字电路课程设计,让我对数字电路设计有了更高层次的认识和掌握,我想这对于我以后学习相关的课程以及进行类似的设计操作会有很大的帮助,为我更深一步掌握数字电路奠定了很好的基础。

在初步设计过程中,我也出现了各种各样的问题,有些是由于我的粗心引起的,还有一些是因为我没掌握好数字的相关知识,比如在设计过程中求驱动方程,由于知识掌握不扎实出了好几次错误,但通过我不懈的努力和耐心的练习,最终求出了驱动方程,画出了逻辑电路图并且测试成功,还较好地掌握了数字电路的知识,并且很快完成了数字电路课程设计,顺利的通过了考核。由此,我体会到,对于数字电路课程设计先要掌握好课本上的知识,还要有反复练习和理解相关原理的坚持和耐心,最终才会顺利完成本次课程设计。

通过本次数字电路课程设计,让我掌握了好多以前不知道的知识,这些收获一定会对我以后的学习和操作有很大的帮助。

23

五、参考文献

(1) 阎石 主编。数字电子技术基础(第5版),北京:高等教育出版社,2006.05。 (2)余孟尝 主编。数字电子技术基础简明教程,北京:高等教育出版社,2006.07。 (3)候建军编。数字电子技术基础(第2版),北京:高等教育出版社,2007.12。 (4)李春茂 改编。电子技术基础-Electronics(英文改编版),北京:电子工业出版社,2005.08。

(5)弗洛伊德(Floyd,T.L.)(美)著,余璆 改编。Digital Fundamentals (Ninth Edition),北京:电子工业出版社,2008.05。

(6)罗杰 主编,电子技术基础(数字部分 第5版)习题全解,北京:高等教育出版社,2008.1。

24

本文来源:https://www.bwwdw.com/article/mqh8.html

Top