10进制计数器

10进制计数器
10进制计数器

课程设计任务书

学生姓名:黄思羽专业班级:自动化0607

指导教师:李向舜工作单位:自动化学院

题目: 10进制计数器

初始条件:

1.Quartus4.1以上版本软件;

2.课程设计辅导资料:“数字电路EDA入门”、“VHDL程序实例集”、“EDA技术

与VHDL”、“EDA与数字系统设计”等;

3.先修课程:电路、电子设计EDA、电子技术基础等。

4.主要涉及的知识点:

门电路、组合逻辑电路、时序逻辑电路等。

要求完成的主要任务:(包括课程设计工作量及其技术要求,以及说明书撰写等

具体要求)

1.课程设计时间:1周;

2.课程设计内容:根据指导老师给定的题目,按规定选择其中1套完成;

3.本课程设计统一技术要求:研读辅导资料对应章节,对选定的设计题目进行理

论分析,针对具体设计部分的原理分析、建模、必要的推导和可行性分析,画出程序设计框图,编写程序代码(含注释),上机调试运行程序,记录实验结果(仿真结果),并对实验结果进行分析和总结。具体设计要求包括:

①复习EDA的相关技术与方法;

②掌握VHDL或者Verilog语言,并要求能编写程序。

③Quartus软件的使用:掌握程序编辑、编译、调试、仿真方法。

④设计相关简单的电路,完成既定的功能。

4.课程设计说明书按学校“课程设计工作规范”中的“统一书写格式”撰写,具

体包括:

①目录;

②计数器相关的理论分析、归纳和总结;

③10进制计数器的结构组成及原理分析。

④程序设计框图、程序代码(含注释);

⑤给出程序中主要函数或者语句的功能说明和使用说明;

⑥给出程序仿真运行结果和图表、以及实验结果分析和总结;

⑦课程设计的心得体会(至少500字);

⑧参考文献;

⑨其它必要内容等。

时间安排:

指导教师签名:年月日系主任(或责任教师)签名:年月日

摘要

本次能力拓展训练是作出一个十进制加法计数器,递增计数,有进位、清零、保持功能。需要按要求编写出十进制计数器的VHDL程序,调试、编译程序并绘制出仿真波形图,结果应能实现计数功能。

本次能力拓展训练意义在于复习EDA的相关技术与方法;掌握VHDL或者Verilog语言,并要求能编写程序。Quartus软件的使用:掌握程序编辑、编译、调试、仿真方法。

关键词:十进制计数器VHDL Quartus II 9.0

目录

1设计内容与要求 (1)

2 VHDL语言介绍 (2)

3 计数器设计 (4)

3.1 设计原理 (4)

3.2 程序设计框图 (4)

3.3 程序代码设计 (5)

4 程序仿真 (9)

4.1 仿真软件介绍 (9)

4.2 仿真结果 (9)

4.3 仿真结果分析 (11)

5 心得体会 (12)

参考文献 (13)

十进制计数器

1设计内容与要求

设计一个10进制计数器,对计数器相关的理论进行分析、归纳和总结;10进制计数器的结构组成及原理分析。程序设计框图、程序代码(含注释);给出程序中主要函数或者语句的功能说明和使用说明;给出程序仿真运行结果和图表、以及实验结果分析和总结。

具体设计要求包括:

复习EDA的相关技术与方法;

掌握VHDL或者Verilog语言,并要求能编写程序。

Quartus软件的使用:掌握程序编辑、编译、调试、仿真方法。

设计相关简单的电路,完成既定的功能。

2 VHDL语言介绍

VHDL的英文全名是Very-High-Speed Integrated Circuit Hardware Description Language,诞生于1982年。1987年底,VHDL被IEEE和美国国防部确认为标准硬件描述语言。自IEEE公布了VHDL的标准版本,IEEE-1076(简称87版)之后,各EDA公司相继推出了自己的VHDL设计环境,或宣布自己的设计工具可以和VHDL接口。此后VHDL在电子设计领域得到了广泛的接受,并逐步取代了原有的非标准的硬件描述语言。1993年,IEEE对VHDL进行了修订,从更高的抽象层次和系统描述能力上扩展VHDL的内容,公布了新版本的VHDL,即IEEE标准的1076-1993版本,(简称93版)。现在,VHDL和Verilog作为IEEE的工业标准硬件描述语言,又得到众多EDA公司的支持,在电子工程领域,已成为事实上的通用硬件描述语言。有专家认为,在新的世纪中,VHDL于Verilog语言将承担起大部分的数字系统设计任务。

VHDL语言是一种用于电路设计的高级语言。它在80年代的后期出现。最初是由美国国防部开发出来供美军用来提高设计的可靠性和缩减开发周期的一种使用范围较小的设计语言。

VHDL的英文全写是:VHSIC(Very High Speed Integrated Circuit)Hardware Descriptiong Language.翻译成中文就是超高速集成电路硬件描述语言。因此它的应用主要是应用在数字电路的设计中。目前,它在中国的应用多数是用在FPGA/CPLD/EPLD的设计中。当然在一些实力较为雄厚的单位,它也被用来设计ASIC。

VHDL主要用于描述数字系统的结构,行为,功能和接口。除了含有许多具有硬件特征的语句外,VHDL的语言形式和描述风格与句法是十分类似于一般的计算机高级语言。VHDL的程序结构特点是将一项工程设计,或称设计实体(可以是一个元件,一个电路模块或一个系统)分成外部(或称可是部分,及端口)和内部(或称不可视部分),既涉及实体的内部功能和算法完成部分。在对一个设计实体定义了外部界面后,一旦其内部开发完成后,其他的设计就可以直接调用这个实体。这种将设计实体分成内外部分的概念是VHDL系统设计的基本点

与其他硬件描述语言相比,VHDL具有以下特点:

功能强大、设计灵活。VHDL具有功能强大的语言结构,可以用简洁明确的源代码来描述复杂的逻辑控制。它具有多层次的设计描述功能,层层细化,最后可直接生成电路级描述。VHDL支持同步电路、异步电路和随机电路的设计,这是其他硬件描述语言虽不能比拟的。VHDL还支持各种设计方法,既支持自底向上的设计,又支持自顶向下的设计;既支持模块化设计,又支持层次化设计。

支持广泛、易于修改。由于VHDL已经成为IEEE标准所规范的硬件描述语言,目前大多数EDA工具几乎都支持VHDL,这为VHDL的进一步推广和广泛应用奠定了基础。在硬件电路设计过程中,主要的设计文件是用VHDL编写的源代码,因为VHDL 易读和结构化,所以易于修改设计。

强大的系统硬件描述能力。VHDL具有多层次的设计描述功能,既可以描述系统级电路,又可以描述门级电路。而描述既可以采用行为描述、寄存器传输描述或结构描述,也可以采用三者混合的混合级描述。另外,VHDL支持惯性延迟和传输延迟,还可以准确地建立硬件电路模型。VHDL支持预定义的和自定义的数据类型,给硬件描述带来较大的自由度,使设计人员能够方便地创建高层次的系统模型。

独立于器件的设计、与工艺无关。设计人员用VHDL进行设计时,不需要首先考虑选择完成设计的器件,就可以集中精力进行设计的优化。当设计描述完成后,可以用多种不同的器件结构来实现其功能。

很强的移植能力。VHDL是一种标准化的硬件描述语言,同一个设计描述可以被不同的工具所支持,使得设计描述的移植成为可能。

易于共享和复用。VHDL采用基于库(Library)的设计方法,可以建立各种可再次利用的模块。这些模块可以预先设计或使用以前设计中的存档模块,将这些模块存放到库中,就可以在以后的设计中进行复用,可以使设计成果在设计人员之间进行交流和共享,减少硬件电路设计。

3 计数器设计

3.1 设计原理

计数器的输入信号是计数信号(Clk),门控信号是手动清零信号(Rest)、手动允许计数(En)。清零信号Rest为1时,保持在异步清零状态,计数脉冲上升沿无效;允许计数端为0时,为保持状态,这时保持至最后一个计数,计数脉冲上升沿无效;清零信号为0,允许计数信号为1时,计数器上升沿脉冲计数。计数器的逻辑功能表如表3-1所示:

表3-1 计数器的逻辑功能表

输出总线信号是二进制—BCD码输出(Dout)一个进位输出端Cy。当计数器输出0000~1000时,Cy=0,只有当计数器输出1001时,Cy=1。

以上分析可知,可以完全完成10进制计数功能。

3.2 程序设计框图

10进制计数器程序的流程可以这样叙述:首先判断是否处于异步清零状态,若是,则计数位和进位信号都是0;若不是,则继续判断计数脉冲是否达到上升沿,并判断手动允许计数信号是否为1,若是,则可开始计数,计数信号达到9之前,连续累加1,达到9之后,清零并进位1。接着继续进入程序进行运算。

10进制计数器程序的流程图如图3-1所示:

图3-1 10进制计数器程序流程图

3.3 程序代码设计

一个VHDL语言的设计程序描述的是一个电路单元,这个电路单元可以是一个门电路,或者是一个计数器,也可以是一个CPU。

一段完整的VHDL代码主要由以下几部分组成:

第一部分是程序包,程序包是用 VHDL 语言编写的共享文件,定义在设计结构体和实体中将用到的常数、数据类型、子程序和设计好的电路单元等,放在文件目录名称为IEEE的程序包库中。

第二部分是程序的实体,定义电路单元的输入/输出引脚信号。程序的实体名称是任意取的,但是必须与VHDL程序的文件名称相同。实体的标识符是ENTITY,实体以 ENTITY开头,以END结束。

第三部分是程序的结构体,具体描述电路的内部结构和逻辑功能。结构体有三种描述方式,分别是行为(BEHAVIOR)描述方式、数据流(DATAFLOW)描述方式和结构(STRUCTURE)描述方式。其中数据流(DATAFLOW)描述方式又称为寄存器描述方式。结构体以标识符ARCHITECTURE开头,以END结尾。

根据上述原则编写程序代码如下所示:

--*******************************************

--程序包

library ieee;

use ieee.std_logic_1164.all;

use ieee.std_logic_unsigned.all;

--*******************************************

--实体

ENTITY cnt10 is

--Cn 计数脉冲

--Rest 清零信号

-- En 允许计数信号

--Dout[3..0] 十进制BCD码

-- Cy 进位码

port(Cn,Rest,En :in std_logic;

Dout : out std_logic_VECTOR ( 3 Downto 0 );

Cy : out std_logic);

end cnt10 ;

--*******************************************

--结构体

architecture sun1 of cnt10 is

begin

Process (Cn,Rest,En)

Variable Cqi : std_logic_VECTOR ( 3 Downto 0 );

Begin

If Rest ='1' Then Cqi :=(Others =>'0');

Cy<='0';

Elsif Cn'Event and Cn='1' then

If En='1' then

If Cqi < "1001" then

Cqi :=Cqi+1;

Cy<='0';

elsif cqi="1001"

then Cy<='1';

Cqi :=(others =>'0');

end If;

end If;

end If;

Dout<=Cqi;

END Process;

End sun1;

--*******************************************

IEEE标准库是存放用VHDL语言编写的多个标准程序包的目录,IEEE库中的程序包有:

STD_LOGIC_1164,

STD_LOGIC_ARITH,

STD_LOGIC_UNSIGNED, 其中 STD_LOGIC_1164是IEEE标准的程序包,定义了STD_LOGIC和STD_LOGIC_VECTOR等多种数据类型,以及多种逻辑运算符子程序和数据类型转换子程序等。

STD_LOGIC_ARITH和STD_LOGIC_UNSIGNED等程序包是SYNOPSYS公司提供的,包中定义了SIGNED和UNSIGNED数据类型以及基于这些数据类型的运算符子程序。用户在用到标准程序包中内容时 , 除了 STANDARD 程序包以外 , 都要在设计程序中加以说明 , 首先用 LIBRARY 语句说明程序包所在的库名 , 再用 USE 语句说明具体使用哪一个程序包和具体的子程序名。

实体是VHDL程序设计中最基本的组成部分,在实体中定义了该设计芯片中所需要的输入/输出信号引脚。端口信号名称表示芯片的输入/输出信号的引脚名,这

种端口信号通常被称为外部信号,信号的输入/输出状态被称为端口模式,在实体中还定义信号的数据类型。端口信号名称可以表示一个信号,也可以表示一组信号(BUS),由数据类型定义。EN,REST,CN,Cy 分别表示计数允许信号、异步清零信号、时钟输入信号和进位输出信号。Dout是一组输出信号,用来表示四位同步二进制计数器的四位计数输出信号。端口信号输入/输出状态IN/OUT分别表示信号进入电路单元和信号从电路单元输出。

结构体是VHDL程序设计中的最主要组成部分,是描述设计单元的具体结构和功能,程序中,结构体放在实体的后面。每一个结构体都有名称,结构体的名称是由设计者任取的,结构体是以标识符ARCHITECTURE开头,以END结尾。不同的结构体采用不同的描述语句。

ARCHITECTURE结构体名OF实体名称IS

说明语句

BEGIN

电路描述语句

END 结构体名;

结构体说明语句是对结构体中用到的数据对象的数据类型、元件和子程序等加以说明。电路描述语句用并行语句来描述电路的各种功能,这些并行语句包括并行信号赋值语句、条件赋值(WHEN-ELSE)语句、进程(PROCESS)语句和子程序调用语句等。结构体的名称是sun1,该结构体属于行为描述方式,采用多种描述语句,如进程(PROCRESS)语句、条件赋值语句(WHEN-ELSE)、顺序语句(IF-ELSE)等。

4 程序仿真

4.1 仿真软件介绍

Altera QuartusII 作为一种可编程逻辑的设计环境,由于其强大的设计

能力和直观易用的接口,越来越受到数字系统设计者的欢迎。

QuartusII design 是最高级和复杂的,用于system on a programmable chip (SOPC)的设计环境。QuartusII design提供完善的timing closure和LogicLock?基于块的设计流程。QuartusII design是唯一一个包括以timing closure和基于块的设计流为基本特征的programmable logic device (PLD)的软件。QuartusII设计软件改进了性能、提升了功能性、解决了潜在的设计延迟等,在工业领域率先提供FPGA与mask-programmed devices开发的统一工作流程。

Altera QuartusII(3.0和更高版本)设计软件是业界唯一提供FPGA和固定功能HardCopy器件统一设计流程的设计工具。工程师使用同样的低价位工具对Stratix FPGA进行功能验证和原型设计,又可以设计HardCopy Stratix 器件用于批量成品。系统设计者现在能够用QuartusII软件评估HardCopy Stratix器件的性能和功耗,相应地进行最大吞吐量设计。

Altera的QuartusII可编程逻辑软件属于第四代PLD开发平台。该平台支持一个工作组环境下的设计要求,其中包括支持基于Internet的协作设计。Quartus平台与Cadence、ExemplarLogic、MentorGraphics、Synopsys和Synplicity等EDA供应商的开发工具相兼容。改进了软件的LogicLock模块设计功能,增添了FastFit编译选项,推进了网络编辑性能,而且提升了调

试能力。

4.2 仿真结果

打开Quartus II9.0,建立新工程,再新建一个VHDL文件,在该窗口输

入源程序,然后对源程序进行编译运行。新建一个波形文件,在波形文件中加入

所需观察波形的管脚,给输入管脚指定仿真波形,编辑待仿真波形文件,如图4-1所示,点击按钮,进行波形仿真。

图4-1 带仿真波形图

仿真后的10进制计数器波形如图4-2所示:

图4-2 十进制计数器仿真波形

自动得到十进制计数器的电路图的图形文件,如图4-3所示:

图4-3 十进制计数器的电路图

4.3 仿真结果分析

由仿真结果可知,手动允许计数信号为1,清零信号为0,计数开始。十进制BCD码从0000开始计数,Rest清零信号有效后,计数为7,BCD码为0111,之后计数清零。Rest清零信号为0后,计数再次开始,BCD码由0000到1001,计数由0到9,完成一次计数,之后进位并清零,再次开始。手动计数信号无效后,停止计数,保持最后一位计数值。

由上述分析可知,仿真结果完全符合真值表内容,结果正确。

5 心得体会

这次能力拓展训练历时一个星期左右,通过这一个星期的学习,发现了自己的很多不足,自己知识的很多漏洞,看到了自己的实践经验还是比较缺乏,理论联系实际的能力还急需提高。

在一开始题目发下来的时候,本来以为是比较容易的一道题,但是真正做起来才发现一系列的比较分析其实更具挑战性。在学习EDA这门课的时候,我已经学会了使用Max plusII软件,本以为在做本次训练会简单许多,但事实和想象总是有差距的。编程都是一样,这给我减轻了许多负担,但是在绘制仿真波形图时,却出现了问题,程序编译无错误,但是仿真却不能计数,在仔细查阅了相关书籍并调试了多次后,终于出来了结果。经过不断的摸索,终于还是解决了问题。

这次能力拓展训练终于完成了,在设计的过程中,可以说算是困难重重。回顾此次能力拓展训练,至今我仍感慨颇多,的确,从选题到定稿,从理论到实践,在整整一星期的日子里,可以说得是苦多于甜,但是可以学到很多很多的的东西,同时不仅可以巩固了以前所学过的知识,而且学到了很多在书本上所没有学到过的知识。这毕竟第一次做的,难免会遇到过各种各样的问题,比如有时候被一些小的,细的问题挡住前进的步伐,让我总是为了解决一个小问题而花费很长的时间。最后还要查阅其他的书籍才能找出解决的办法。并且我在做设计的过程中发现有很多东西,也知道了自己的不足之处,知道自己对以前所学过的知识理解得不够深刻,掌握得不够牢固。通过本次十进制计数器的设计,我对Quartus II9.0的功能有了更深刻的认识。同时,一方面认识到了自己这学期来学习电子设计自动化这门课有所得,但掌握地并不全面,不透彻,对于完成训练来说还远远不够;同时在设计的过程中发现了自己的不足之处,对以前所学过的知识理解得不够深刻,掌握得不够牢固,以后我会更加努力。今后,在学习中,我要端正自己的态度努力学习,只有这样我们才能真正的掌握好知识。

与此同时在设计的过程中得到了指导老师和同学们的关心和帮助,才能顺利完成本次课程设计,在此表示感谢。

参考文献

[1]侯伯亨、顾新.VHDL硬件描述语言与数字逻辑电路设计.西安电子科技大学出版社,2001.2

[2]卢毅等.VHDL与数字电路设计.北京: 科学出版社,2001.4

[3]李景华、杜玉远.可编程逻辑器件与EDA技术.东北大学出版社,2001.3

[4]谭会生、张昌志.EDA技术及应用.西安电子科技大学出版,2001.7

[5]王锁平.电子设计自动化(EDA)教程.电子科技大学出版社,2000.3

[6]潘松,黄蛀生.EDA技术实用教程.北京:科学出版社,2002.10

十进制4位加法计数器设计

洛阳理工学院 十 进 制 4 位 加 法 计 数 器 系别:电气工程与自动化系 姓名:李奇杰学号:B10041016

十进制4位加法计数器设计 设计要求: 设计一个十进制4位加法计数器设计 设计目的: 1.掌握EDA设计流程 2.熟练VHDL语法 3.理解层次化设计的内在含义和实现 设计原理 通过数电知识了解到十进制异步加法器的逻辑电路图如下 Q3 则可以通过对JK触发器以及与门的例化连接实现十进制异步加法器的设计 设计内容 JK JK触发器的VHDL文本描述实现: --JK触发器描述 library ieee; use ieee.std_logic_1164.all; entity jk_ff is

port( j,k,clk: in std_logic; q,qn:out std_logic ); end jk_ff; architecture one of jk_ff is signal q_s: std_logic; begin process(j,k,clk) begin if clk'event and clk='0' then if j='0' and k='0' then q_s <= q_s; elsif j='0' and k='1' then q_s <= '0'; elsif j='1' and k='0' then q_s <= '1'; elsif j='1' and k='1' then q_s <= not q_s; end if; end if; end process; q <= q_s; qn <= not q_s; end one; 元件门级电路: 与门VHDL文本描述实现: --与门描述library ieee; use ieee.std_logic_1164.all;

三位二进制加法计数器(无效态:000,001)设计一个基于74138的组合电路 设计一个140进制加法计数器

目录 1 课程设计的目的与作用 (1) 2 设计任务 (1) 3 设计原理 (2) 3.1三位二进制加法计数器 (2) 3.2全加器 (2) 3.3用集成芯片设计一个140进制的加法器 (2) 4实验步骤 (3) 4.1加法计数器 (3) 4.2全加器 (6) 4.3用集成芯片设计一个140进制的加法器 (7) 5仿真结果分析 (8) 6设计总结 (9) 7参考文献 (9)

1课程设计的目的与作用 (1)了解同步计数器及序列信号发生器工作原理; (2)掌握计数器电路的分析,设计方法及应用; (3)掌握序列信号发生器的分析,设计方法及应用 2 设计任务 2.1加法计数器 (1)设计一个循环型3位2进制加法计数器,其中无效状态为(000,001),组合电路选用与门和与非门等。 (2)根据自己的设计接线。 (3)检查无误后,测试其功能。 2.2全加器 (1)设计一个全加器,选用一片74LS138芯片设计电路。 (2)根据自己的设计接线。 (3)检查无误后,测试其功能。 2.3 140进制的加法器 (1)设计一个140进制加法器并显示计数,选用两片74L163芯片设计电路。 (2)根据自己的设计接线。 (3)检查无误后,测试其功能。

3 设计原理 3.1加法计数器 1.计数器是用来统计输入脉冲个数电路,是组成数字电路和计算机电路的基本时序逻辑部件。计数器按长度可分为:二进制,十进制和任意进制计数器。计数器不仅有加法计数器,也有减法计数器。如果一个计数器既能完成累加技术功能,也能完成递减功能,则称其为可逆计数器。在同步计数器中,个触发器共用同一个时钟信号。 2.时序电路的分析过程:根据给定的时序电路,写出各触发器的驱动方程,输出方程,根据驱动方程带入触发器特征方程,得到每个触发器的次态方程;再根据给定初态,一次迭代得到特征转换表,分析特征转换表画出状态图。 3.CP是输入计数脉冲,所谓计数,就是记CP脉冲个数,每来一个CP脉冲,计数器就加一个1,随着输入计数脉冲个数的增加,计数器中的数值也增大,当计数器记满时再来CP脉冲,计数器归零的同时给高位进位,即要给高位进位信号。 3.2全加器 1.74LS138有三个输入端:A0,A1,A2 和八个输出端Q0-Q7. 3个使能输入端口分是STB,STC,STA,只有当STB=STC=0,STA=1时,译码器才能正常工作,否则译码器处于禁止状态,所有输出端为高电平。 2. 以处理低位进位,并输出本位加法进位。多个全加器进行级联可以得到多位全加器 3.3用集成芯片设计一个140进制的加法器 选取两片74LS163芯片设计140进制加法计数器。74LS163具有以下功能: A 异步清零功能 当0 CR时,其他输入信号都不起作用,由时钟触发器的逻 = = CR时,计数器清零。在0 R复位计数器也即使异步清辑特性知道,其异步输入端信号是优先的,0 = CR正是通过D 零的。

任意进制计数器及简易秒表设计

实验四:时序逻辑电路设计——任意进制计数器及简易秒表设 计 一、实验目的 1.熟悉硬件编程语言Verilog HDL的基本语法及应用 2.熟悉FPGA/CPLD的使用 3.基本掌握现代逻辑电路设计思想方法 4.掌握计数器的工作原理,掌握任意进制计数器构成的脉冲反馈法 二、实验设备 PC机,QuartusII实验开发环境,FPGA实验开发板 三、实验要求: 1、认真阅读实验指导材料及相关数据手册,写出实验预习报告。 2、预先熟悉QuartusII 的使用。 3、根据课本第七章、第八章的内容及补充本部分补充知识,对本设计 要求完成的实验内容预先完成程序流程设计、运用Verilog HDL进 行逻辑电路设计时的模块结构及主要模块功能定义。 4、分析实验结果及实验中出现的问题,并给出合理的解释。 5、实验结束后写出实验报告,按时提交实验报告的纸版和电子版。 6、预先完成本实验涉及到的集成电路手册的预习。 7、实验结束后完成详细的实验总结报告,包括实验目的和要求,实验 原理、实验详细过程及步骤,实验问题分析及改进措施,实验结 果分析等内容。 四、实验项目 1、基础实验 设计四位同步10进制计数器 根据四位同步10 进制计数器(74LS160)的工作原理,运用硬件编程语言Verilog HDL及FPGA实验开发板设计一个同步10进制计数器,并通过译码器显示电路,在LED上显示出相应计数结果。 2、提高性实验: 设计一简易秒表

要求所设计的秒表能够完成60秒的计时功能,计时满60秒给出一个状态提示信息。 用硬件编程语言Verilog HDL及FPGA实验开发板、LED完成本实验。本版实验板的七段数码管是通过动态扫描的方式进行不同的时钟显示功能,右下图可知LEDDIG0~LEDDIG7时LED的片选信号,LEDSEGA~LEDSEGH为数码管的a,b,c,d,e,f,g,管脚。通过动态扫描方式来实现不同数码管的电亮工作。 五、实验说明 (1)计数器原理 74LS160是四位10进制加法计数器,计数满10个状态产生一个进位,进位信号由1001状态产生,具有置零和置数功能,可以运用脉冲反馈法构成任意进制计数器,其工作原理见教材P250-255。 电路结构图及管角分布如下图所示。其使用见本实验提供的74LS160 Datasheet。

三位二进制同步减法计数器

1 三位二进制同步减法计数器的设计(000、010) 1.1 课程设计的目的 1、学会利用触发器和逻辑门电路,实现六进制同步减法计数器的设计 2、学会掌握并能使用常用芯片74LS112、74LS08芯片的功能 3、学会使用实验箱、使用软件画图 4、了解计数器的工作原理 1.2 设计的总体框图 1.3 设计过程 1逻辑抽象分析 CP为输入的减法计数脉冲,每当输入一个CP脉冲,计数器就减一个1,当不够减时就向高位借位,即输出借位信号。当向高位借来1时应当为8,减一后为7。状态图中,状态为000输入一个CP脉冲,不够减,向高位借1当8,减1后剩7,计数器的状态应由000转为111,同时向高位输出借位信号,总体框图中C为借位信号。 2状态图 状态000、010为无效状态,据分析状态图为: /0 /0 /0 /0 /0 001011100101110111 /1

3 选择触发器,求时钟方程、输出方程和状态方程 ● 选择触发器 由于状态数M=6,触发器的个数n 满足122n n M -≤≤,故n 的取值为3。选用3个 下降沿触发的JK 触发器。 ● 求时钟方程 因为是同步,故012CP CP CP CP === ● 求输出方程 1.3.1 输出C 的卡诺图 根据输出C 的卡诺图可得输出方程为 C=Q 2n Q 1n ● 求状态方程 计数器的次态的卡诺图为

1.3.2 次态210n n n Q Q Q 的卡诺图 各个触发器的次态卡诺图如下: 1.3.3 2n Q 次态卡诺图 1.3.4 1n Q 的次态卡诺图

1.3.5 0n Q 的次态卡诺图 根据次态卡诺图可得次态方程为: Q 2n+1=Q 1n Q 0n +Q 2n Q 1n Q 1n+1= Q 1n Q 0n + Q 2n Q 1n + Q 2n Q 1n Q 0n Q 0n+1 =Q 2n +Q 0n 4 求驱动方程 Q 2n+1 =Q 1n Q 2n + Q 0n Q 1n Q 2n Q 1n+1=Q 0n Q 2n Q 1n +Q 0n Q 2n Q 1n Q 0n+1=Q 2n Q 0n +Q 2n Q 0n 驱动方程是: J 0 = Q 2n K 0 =Q 2n J 1 =Q 0n Q 2n K 1= Q 0n Q 2 J 2 = Q 1n K 2=Q 0n Q 1n 5 检查是否能自启动 将无效状态100、101分别代入输出方程、状态方程进行计算,结果如下:

24进制计数器设计报告.doc

24进制计数器设计报告 单时钟同步24进制计数器课程设计报告1.设计任务1.1设计目的1.了解计数器的组成及工作原理。 2.进一步掌握计数器的设计方法和计数器相互级联的方法。 3.进一步掌握各芯片的逻辑功能及使用方法。 4.进一步掌握数字系统的制作和布线方法。 5.熟悉集成电路的引脚安排。 1.2设计指标1.以24为一个周期,且具有自动清零功能。 2.能显示当前计数状态。 1.3设计要求1.画出总体设计框图,以说明计数器由哪些相对独立的功能模块组成,标出各个模块之间互相联系,时钟信号传输路径、方向。 并以文字对原理作辅助说明。 2.设计各个功能模块的电路图,加上原理说明。 3.选择合适的元器件,利用multisim仿真软件验证、调试各个功能模块的电路,在接线验证时设计、选择合适的输入信号和输出方式,在确定电路充分正确性同时,输入信号和输出方式要便于电路的测试和故障排除。 4.在验证各个功能模块基础上,对整个电路的元器件和布线进行合理布局。 5.打印PCB板,腐蚀,钻孔,插元器件,焊接再就对整个计数器电路进行调试。

2.设计思路与总体框图.计数器由计数器、译码器、显示器三部分电路组成,再由555定时器组成的多谐振荡器来产生方波,充当计数脉冲来作为计数器的时钟信号,计数结果通过译码器显示。 图1所示为计数器的一般结构框图。 十位数码显示管译码驱动异步清零计数器计数脉冲(由555电路产生)个位位数码示像管译码驱动异步清零计数器强制清零▲图1计数器结构框图3.系统硬件电路的设计3.1555多谐荡电路555多谐振荡电路由NE555P芯片、电阻和电容组成。 由NE555P的3脚输出方波。 ▲图2555电路3.2计数器电路集成计数芯片一般都设置有清零输入端和置数输入端,而且无论是清零还是置数都有同步和异步之分。 有的集成计数器采用同步方式,即当CP触发沿到来时才能完成清零或置数任务;有的集成计数器则采用异步方式,即通过触发器的异步输入端来直接实现清零或置数,与CP信号无关。 本设计采用异步清零。 由2片十进制同步加法计数器74LS160(图2-1-1)、一片与非门74LS00(图2-1-2)和相应的电阻、开关。 由外加送来的计数脉冲(由555电路产生)送入两个计数器的CLK端,电路在计数脉冲的作用下按二进制自然序依次递增1,当个位计数到9时,输出进位信号给十位充当使能信号进位。

四位二进制减法计数器

成绩评定表

课程设计任务书

摘要 Quartus II 是Altera公司的综合性PLD/FPGA开发软件,支持原理图、VHDL、VerilogHDL以及AHDL(Altera Hardware Description Language)等多种设计输入形式,内嵌自有的综合器以及仿真器,可以完成从设计输入到硬件配置的完整PLD设计流程。 Multisim是Interactive Image Technologies (Electronics Workbench)公司推出的以Windows为基础的仿真工具,适用于板级的模拟/数字电路板的设计工作。它包含了电路原理图的图形输入、电路硬件描述语言输入方式,具有丰富的仿真分析能力。Multisim为用户提供了丰富的元器件,并以开放的形式管理元器件,使得用户能够自己添加所需要的元器件。 本次数电课程设计使用Quartus II仿真环境以及VHDL下载和Multisim 仿真环境来编译实现四位二进制同步减法计数器。在Multisim中选用四个JK 触发器来实现四位二进制减法计数器。运用卡诺图求解时序方程。逻辑电路图中,四个小红灯即为显示器,从右到左显示时序图中的十二种状态,其中,灯亮表示“1”,灭表示“0”,从而达到计数目的。 关键字:VHDL硬件描述语言、四位二进制减计数器、QUARTUSⅡ、Multisim、

目录 一.课程设计目的 (1) 二.课设题目实现框图 (1) 三.实现过程 (1) (一)VHDL的编译和仿真 (1) 1.建立工程 (1) 2.VHDL源程序 (4) 3.编译及仿真过程................................................................... (6) 4.引脚锁定及下载 (9) 5.仿真结果分析................................................................... (11) (二)电路设计................................................................... . (11) 1求驱动方程................................................................... .. (12) 2.基于Multisim的设计电路图 (15) 3.逻辑分析仪显示的波形 (15) 4.仿结果分析 (16) 四.设计体会 (16) 五.参考文献................................................................... . (17)

设计任意进制计数器

设计任意进制计数器 一、实验目的 掌握中规模集成计数器的使用方法及功能测试方法。 二、实验内容及要求 采用(74LS192)复位法或预置数法设计一个三位十进制计数器。要求各位同学设计的计数器的计数容量是自己学号的最后三位数字。 三、设计过程 74LS192是中规模同步十进制可逆计数器,具有双时钟输入,并具有清除和置数等功能,其引脚排列如图所示。74LS192(CC40192)的功能如下表所示。 1234A B C D 4 3 2 1 D C B A 161514131211109 Vcc D CR BO CO LD D D D Q Q CP CP Q Q GND 12345678 D 1 1 023 3 u2 74LS192 CR:清除端CP u:加计 数端 LD :置数端CP D:减计 数端 CO :非同步进位输出端 BO :非同步借位输出端 D3、D2、D1、D0:数据输入端 Q3、Q2、Q1、Q0:输出端 74LS192引脚排列图 表74LS192(CC40192)的功能 输入端输出端功能 CR LD CP u CP D D3 D2 D1 D0 Q3 Q2 Q1 Q0 1 ×××××××00 0 0 清零 0 0 ×× d c b a d c b a 置数 0 1 ↑ 1 ××××0000~1001加计数1001时CO=0 0 1 1 ↑××××1001~0000减计数0000时BO=0 用M进制集成计数器可以构成N(任意)进制的计数器。通常用反馈清零 法和反馈置数法。当计数器的计数N>M时,则要用多片M进制计数器构成。 其计数规律为:当低位计数器没有达到计数的最大值时,如74LS192的1001时, 其高位芯片应处于保持状态,只有当低位芯片计数达到最大值时,给相邻的高位 芯片计数器发一个信号,使其脱离保持状态,进入计数状态。现以233为例为计 数容量进行设计。由于233为三位数,因此需用三块74LS192。 1、清零法: CR(R D)=(Q1Q0)百(Q1Q0)拾(Q1)个 初态:0000 终态:233-1=232即:0010 0011 0010 状态转换图:(略)

做一个五进制的加减法计数器

一、做一个五进制的加减法计数器,输入控制端为1时,做加法,为0时,做减法, 用J K 触发器实现。 第一步:根据要求进行逻辑抽象,得出电路的原始状态图。 取输入数据变量为X,检测的输出变量为乙该电路的功能是五进制计数器。当X=1时,计数器作加“ 1”运算,设初态为S o。状态由S o做加1运算,状态转为S i,输出为0;状态S i做加1运算,转为状态S2,输出为0;状态S2做加1运算,转为状态S3,输出为0;状态S3做加1运算,转为状态S4,输出为0;当状态S4继续做加1 运算时,状态由S4转到S0,输出为1。当X=0时,计数器作减“1”运算。状态由S0 做减1运算,此时产生借位,状态转为S4,输出为1;状态S4做减1运算,转为状态S3,输出为0;状态S3做减1运算,转为状态S2,输出为0;状态S2做减1运算,转为状态S1,输出为0;状态S1做减1运算,状态由S1转为状态 S0,输出为0。由此得出状态转换图: 第二步:状态编码。 该电路是五进制计数器,有五种不同的状态,分别用S0、S1、S2、S3、S4表示五种状态,这五种状态不能作状态化简。在状态编码时,依据2n+1

第三步:求出输出方程,状态方程和驱动方程(控制函数)。用 JK触发器构成逻辑电路,JK触发器的特性方程Q2n Q1n 00 01 Q n+1=J Q n+ K Q n。 XQ3n 00 01 11 10 1 000 0 X X X 1V X n 0000 00011110 (1) Q2n Q1n _________ (b) Q3n+1=X Q2 Q1n+ X Q3n Q2n Q1n 2n Q1n 00 01 11 10 1000 X X X 0X A X 00u0 状态转换表如下: 1 1 10 XQ3 00 01 11 10 Z=X Q n3 + X Q3 1n XQ3

10进制加法计数器课程设计

西北师范大学知行学院 数字电子实践论文 课题:74ls161组成的十进制加法计数器 (置数法) 班级:14电本 学号:14040101114 姓名:于能海

指导老师:崔用明 目录 第1章前言 (1) 1.1 摘要 (1) 1.2 设计目的 (2) 1.3 设计内容及要求 (2) 第2章设计方案 (3) ....................................................................................................................... 错误!未定义书签。 2.1主要芯片功能介绍 (3) 2.2.1 四位二进制计数器74161介绍 (3) ............................................................................................................... 错误!未定义书签。 2.2 工作原理 (4) 第3章硬件设计 (4) 3.1 单元电路设计 (4) 3.2 总硬件电路图 (5) 第4章仿真与试验 (6) 4.1 仿真结果 (6) 4.2 调试中遇到的问题 (7) 第5章结论和体会 (8)

第1章前言 1.1 摘要在数字电路技术的课程中,计数器的功能是记忆脉冲的个数,它是数字系统中应用最广泛的基本时序逻辑构件。计数器在微型计算机系统中的主要作用就是为CPU和I/O设备提供实时时钟,以实现定时中断、定时检测、定时扫描、定时显示等定时控制,或者对外部事件进行计数。一般的微机系统和微机应用系统中均配置了定时器/计数器电路,它既可当作计数器作用,又可当作定时器使用,其基本的工作原理就是"减1"计数。计数器:CLK输入脉冲是一个非周期事件计数脉冲,当计算单元为零时,OUT输出一个脉冲信号,以示计数完毕。 本十进制加法计数器是基于74161芯片而设计的, 该十进制加法计数器设计理念是用于工厂流水线上产品计数,自动计数,方便简单。 关键词:74ls161计数器 Introduction In the course of digital circuit technology, the counter memory function is the number of pulses, it is a digital system, the most widely used basic sequential logic components. The main role of the counter in the micro-computer system is to provide real-time clock for the CPU and I / O devices to achieve the timer interrupt, timing detection, scheduled scanning, the timing display timing control, or to count external events. General computer systems and computer application systems are equipped with a timer / counter circuit, it can as a counter action, but also as a timer, the basic working principle is "minus 1" count. Counter: CLK input pulse is a non-periodic event count pulses to zero when calculating unit, OUT outputs a pulse signal, to show the count is completed. The decimal addition counter is designed based on the 74161 chip, the low potential sensor senses when to rely on external signals, sensors in an object within the sensing range, otherwise it is a high potential. Within the sensing range of the sensor when an object is moved out of date, sensor potential from high to low and then high, appears on the edge. Counter is automatically incremented and displayed on a digital control. The decimal addition counters have two seven-segment LED. It can count from 0 to 99 objects, and easy to expand. The design concept of decimal addition counter is used to count on a factory assembly line products, automatic counting, convenient and simple. Keywords:74ls161counter

《设计任意进制计数器》的实验报告

实验八设计任意进制计数器 一、实验目的 掌握中规模集成计数器的使用方法及功能测试方法。 二、实验内容及要求 采用(74LS192)复位法或预置数法设计一个三位十进制计数器。要求各位同学设计的计数器的计数容量是自己学号的最后三位数字。 三、设计过程 用M进制集成计数器可以构成N(任意)进制的计数器。通常用反馈清零法和反馈置数法。当计数器的计数N>M时,则要用多片M进制计数器构成。其计数规律为:当低位计数器没有达到计数的最大值时,如74LS192的1001时,其高位芯片应处于保持状态,只有当低位芯片计数达到最大值时,给相邻的高位芯片计数器发一个信号,使其脱离保持状态,进入计数状态。现以233为例为计数容量进行设计。由于233为三位数,因此需用三块74LS192。 1、清零法: CR(R D)=(Q1Q0)百(Q1Q0)拾(Q1)个 初态:0000 终态:233-1=232即:0010 0011 0010 状态转换图:(略)

2、置数法:由于74LS192是具有异步清零、置数功能的十进制计数器,因此保留哪233种状态,方法有多种。下图是其中两种置数法。犹以最后一种使用器件最少,接线最为简单。 方案一: 方案三: LD=(Q1Q0)百(Q1Q0 )拾(Q2Q0)个(或LD=CO) 初态:0000(或1000-332=668) 终态:332-1=331即:0011 0011 0001(或999)

四、实验用仪器、仪表 数字电路实验箱、万用表、74LS192、74LS00、74LS20、74LS08等 五、实验步骤 ①清零法: 1.检查导线及器件好坏(即加上电源后,按74LS192的功能表进行检测)。 2.按上图连接电路。LD、CP D分别接逻辑开关并置为高电平,百位(74LS192(3))、拾位、个位的Q 、Q2、Q1、Q0分别接发光二极管或数码管,计数脉冲接手动或1Hz 3 时钟脉冲。检查无误后接通电源。 3.加入CP进行测试并检查结果是否正确,如有故障设法排除。 4.结果无误后记录数据后拆线并整理实验设备。 实验证明,实验数据与设计值完全一致。设计正确。 ②置数法: 1.检查导线及器件好坏(即加上电源后,按74LS192的功能表进行检测)。 分别接逻辑开关并置为高电平,百位(74LS192(3))、 2.按上图连接电路。CR、CP D 拾位、个位的Q 、Q2、Q1、Q0分别接发光二极管或数码管,计数脉冲接手动或1Hz 3 时钟脉冲。检查无误后接通电源。

Verilog10进制计数器电路

练习 设计一个10进制计数器电路,把10进制计数器的计数结果送到一位数码管显示,要求计数器的计数频率为1Hz。系统时钟为25MHz,要求系统同步复位,高电平有效。完成电路设计框图,各模块仿真以及系统功能仿真和下载编程。 分频器: module fenpin25(clk,rst,clk_1hz); input clk; input rst; output clk_1hz; reg clk_1hz; reg [23:0] cnt; always@(posedge clk or posedge rst) begin if(rst==1'b1) cnt<=24'd0; else if(cnt==13107119)begin cnt<=24'd0; clk_1hz<=~clk_1hz; end else cnt<=cnt+1; end endmodule 十进制计数器: module cnt10(rst,clk,cnt); input rst,clk; output [3:0] c nt; reg [3:0] c nt; always@(posedge clk) begin if(rst==1'b0) cnt<=4'b000;

else if(cnt==4'd9) cnt<=4'b000; else cnt<=cnt+1; end endmodule 十进制计数器仿真波形图: LED译码器: module qiduan(cnt,led,scan); input [3:0] c nt; output [6:0] l ed; output [3:0] s can; reg [6:0] l ed; wire [3:0] s can; assign scan=4'b0001; always@(cnt) begin case(cnt) 4'b0001:led=7'b0000110; 4'b0010:led=7'b1011011; 4'b0011:led=7'b1001111; 4'b0100:led=7'b1100110; 4'b0101:led=7'b1101101; 4'b0110:led=7'b1111100; 4'b0111:led=7'b0000111; 4'b1000:led=7'b1111111; 4'b1001:led=7'b1101111; 4'b1010:led=7'b1110111; default:led=7'b0111111; endcase end endmodule

三位二进制同步减法计数器(无效状态:000、111)电压串联负反馈放大电路

课程设计任务书

目录 1. 数字电子设计部分 (1) 1.1 课程设计的目的与作用 (1) 1.2设计任务: (1) 1.2.1同步计数器 (1) 1.2.2串行序列信号检测器 (1) 1.3设计原理: (2) 1.3.1同步计数器 (2) 1.3.2串行序列信号检测器 (2) 1.4实验步骤: (3) 1.4.1同步计数器: (3) 1.4.2串行序列检测器 (6) 1.5设计总结和体会 (9) 1.6参考文献 (10) 2.模拟电子设计部分 (11) 2.1课程A设计的目的与作用 (11) 2.1.1课程设计 (11) 2.2 设计任务、及所用multisim软件环境介绍 (11) 2.2.1 设计任务:负反馈放大电路的基本框图 (11) 2.2.2 Multisim软件环境的介绍 (12) 2.3电路模型的建立 (15) 2.4理论分析及计算 (15) 2.4.1电路反馈类型的判断 (15) 2.4.2对电压串联负反馈电路的理论分析 (16) 2.5仿真结果分析 (19) 2.6设计总结和体会 (23) 2.7 参考文献 (24)

1. 数字电子设计部分 1.1课程设计的目的与作用 1.了解同步计数器及序列信号发生器工作原理; 2.掌握计数器电路的分析,设计方法及应用; 3.掌握序列信号发生器的分析,设计方法及应用; 4.学会正确使用JK触发器。 1.2设计任务: 1.2.1同步计数器 1. 使用设计一个循环型3位2进制同步减法计数器,其中无效状态为(000,111),组合 电路选用与门和与非门等。 2. 根据同步计数器原理设计减法器的电路图。 3. 根据电路原理图使用Multisim进行仿真。 4. 将电路图进行实际接线操作。 5. 检查无误后,测试其功能。 1.2.2串行序列信号检测器 1.使用设计一个序列信号检测器,其中序列为(1110),组合电路选用与门和与非门等。 2.根据序列发生检测器原理设计检测器的原理图。 3.根据电路原理图使用Multisim进行仿真。 4.将电路图进行实际接线操作。 5.检查无误后,测试其功能。

实验十进制加减法计数器

实验1 十进制加减法计数器 实验地点:电子楼218 实验时间:2012年10月19日指导老师:黄秋萍、陈虞苏 实验要求:设计十进制加减法计数器,保留测试程序、设计程序、仿真结果 1.设计程序: module count(EN,CLK,DOUT,F,RST); input EN,CLK,F,RST; output [3:0]DOUT; reg [3:0]DOUT; always@(posedge CLK) begin :abc if(EN) if(!RST) if(F) begin :a DOUT=DOUT+1; if(DOUT==10) DOUT=0; end //END A else begin :b DOUT=DOUT-1; if(DOUT==15) DOUT=9; end else DOUT=0; else DOUT=DOUT; end endmodule 2.测试程序 `timescale 10ns/1ns module test_count; wire [3:0] DOUT; reg EN,F,RST,CLK; count M(EN,CLK,DOUT,F,RST); initial begin :ABC CLK=0; EN=0;

RST=1; F=1; #100 EN=1; #200 RST=0; #1500 F=0; #3000 $stop; end always #50 CLK=~CLK; initial $monitor("EN=%b,F=%b,RST=%b,DOUT%D",EN,F,RST,DOUT); endmodule 3.测试结果 # EN=0,F=1,RST=1,DOUT x # EN=1,F=1,RST=1,DOUT x # EN=1,F=1,RST=1,DOUT 0 # EN=1,F=1,RST=0,DOUT 0 # EN=1,F=1,RST=0,DOUT 1 # EN=1,F=1,RST=0,DOUT 2 # EN=1,F=1,RST=0,DOUT 3 # EN=1,F=1,RST=0,DOUT 4 # EN=1,F=1,RST=0,DOUT 5 # EN=1,F=1,RST=0,DOUT 6 # EN=1,F=1,RST=0,DOUT 7 # EN=1,F=1,RST=0,DOUT 8 # EN=1,F=1,RST=0,DOUT 9 # EN=1,F=1,RST=0,DOUT 0 # EN=1,F=1,RST=0,DOUT 1 # EN=1,F=1,RST=0,DOUT 2 # EN=1,F=1,RST=0,DOUT 3 # EN=1,F=1,RST=0,DOUT 4 # EN=1,F=1,RST=0,DOUT 5 # EN=1,F=0,RST=0,DOUT 5 # EN=1,F=0,RST=0,DOUT 4 # EN=1,F=0,RST=0,DOUT 3 # EN=1,F=0,RST=0,DOUT 2 # EN=1,F=0,RST=0,DOUT 1 # EN=1,F=0,RST=0,DOUT 0 # EN=1,F=0,RST=0,DOUT 9 # EN=1,F=0,RST=0,DOUT 8 # EN=1,F=0,RST=0,DOUT 7 # EN=1,F=0,RST=0,DOUT 6 # EN=1,F=0,RST=0,DOUT 5

十进制计数器设计

十进制计数器设计 一、实验目的:熟悉Quartus II的Verilog文本设计流程全过程,学习十进制计数器的设计、仿真,掌握计数器的工作原理。 二、实验原理:计数器属于时序电路的范畴,其应用十分普遍。该程序设计是要实现带有异步复位、同步计数使能和可预置型的十进制计数器。该计数器具有5个输入端口(CLK、RST、EN、LOAD、DATA)。CLK输入时钟信号;RST起异步复位作用,RST=0,复位;EN是时钟使能,EN=1,允许加载或计数;LOAD是数据加载控制,LOAD=0,向内部寄存器加载数据;DATA是4位并行加载的数据。有两个输出端口(DOUT和COUT)。DOUT 的位宽为4,输出计数值,从0到9;COUT是输出进位标志,位宽为1,每当DOUT为9时输出一个高电平脉冲。RST在任意时刻有效时,如CLK非上升沿时,计数也能即刻清0;当EN=1,且在时钟CLK的上升沿时刻LOAD=0,4位输入数据DA TA被加载,但如果此时时钟没有上升沿,尽管出现了加载信号LOAD=0,依然未出现加载情况;当EN=1,RST=1,LOAD=1时,计数正常进行,在计数数据等于9时进行输出高电平。 三、实验任务:在Quartus II上将设计好的程序进行编辑、编译、综合、适配、仿真,从时序仿真图中学习计数器工作原理,了解计数器的运行情况及时钟输入至计数器数据输出的延时情况。 四、实验步骤: (一)、建立工作库文件和编辑设计文件 任何一项设计都是一项Project(工程),而把一个工程下的所有文件放在一个文件夹内是一个非常好的习惯,以便于我们整理,利用和提取不同工程下的文件,而此文件夹将被EDA软件默认为Work Library(工作库),所以第一步先根据自己的习惯,建立个新的文件夹。 (1)新建文件夹:在盘建立并保存工程,将文件夹取名Jishuqi。 (2)输入源程序:打开Quartus II,选择菜单File→New→Design Files→VerilogHDL File→OK(如图1所示)。 图1 在空白处工作框处输入任务要求中的代码,代码如下: module CNT10 (CLK,RST,EN,LOAD,COUT,DOUT,DATA); input CLK, EN, RST,LOAD; input [3:0] DATA; output [3:0] DOUT; output COUT;

实验一十进制计数器的设计与仿真电子科技大学

实验一十进制计数器的设计与仿真 一、实验目的 熟悉QuartusⅡ的Verilog HDL文本设计流程全过程,学习计数器的设计、仿真和硬件测试。 二、实验原理 该程序设计是带有异步复位、同步计数使能、可预置型功能全面的十进制计数器。 (1)第一个条件句if(!RST)构成的RST接于寄存器下方的异步清0端CLR。 (2)第二个条件句if(EN)构成EN接于寄存器左侧的使能端ENA。 (3)第三个条件句if(LODA)构成LODA接于上面的多路选择器,使之控制选择来自DATA的数据,还是来自另一多路选择器的数据。 (4)不完整的条件语句与语句Q1<=Q1+1构成了加1加法器和4位寄存器。 (5)语句(Q1<9)构成了小于比较器,比较器的输出信号控制左侧多路选择器。 (6)第二个过程语句构成了纯组合电路模块,即一个等式比较器,作进位输出。 三、实验设备与软件平台 实验设备:计算机、FPGA硬件平台是Cyclone系列FPGA 软件平台:Quartus II (32-Bit)、5E+系统 四、实验内容 编写Verilog程序描述一个电路,实现以下功能:设计带有异步复位、同步计数使能和可预置型的十进制计数器。 具有5个输入端口(CLK、RST、EN、LOAD、DATA)。CLK输入时钟信号;RST 起异步复位作用,RST=0,复位;EN是时钟使能,EN=1,允许加载或计数;LOAD 是数据加载控制,LOAD=0,向内部寄存器加载数据;DATA是4位并行加载的数

据。有两个输出端口(DOUT和COUT)。DOUT的位宽为4,输出计数值,从0到9;COUT是输出进位标志,位宽为1,每当DOUT为9时输出一个高电平脉冲。 五、实验步骤 设计程序: module CNT10 (CLK,RST,EN,LOAD,COUT,DOUT,DATA); input CLK; input EN; input RST; input LOAD; input [3:0] DATA; output [3:0] DOUT; output COUT; reg [3:0] Q1 ; reg COUT ; assign DOUT = Q1; always @(posedge CLK or negedge RST) begin if (!RST) Q1 <= 0; else if (EN) begin if (!LOAD) Q1 <= DATA; else if (Q1<9) Q1 <= Q1+1; else Q1 <= 4'b0000; end end always @(Q1) if (Q1==4'h9) COUT = 1'b1; else COUT = 1'b0; Endmodule

三位二进制减法计数器的设计

目录 1设计目的与作用 (1) 设计目的及设计要求 (1) 设计作用 (1) 2设计任务 (1) 3三位二进制减法计数器的设计 (1) 设计原理 (1) 设计过程 (2) 4 74161构成227进制同步计数器并显示 (4) 设计原理 (4) 设计过程 (4) 5仿真结果分析 (5) 三位二进制减法计数器仿真结果 (5) 74161构成227进制同步计数器的仿真结果 (8) 6设计总结 (8) 7参考文献 (9)

1设计目的与作用 设计目的及设计要求 按要求设计三位二进制减法计数器(无效状态001,011)及用74161构成227进制同步计数器并显示,加强对数字电子技术的了解,巩固课堂上学到的知识,了解计数器,并且加强对软件multisim的了解。 设计作用 multisim仿真软件的使用,可以使我们对计数器及串行检测器有更深的理解,并且学会分析仿真结果,与理论结果作比较。加强了自我动手动脑的能力。 2设计任务 1.三位二进制减法计数器(无效状态001,011) 构成227进制同步计数器并显示 3三位二进制减法计数器的设计 设计原理 设计一个三位二进制减法计数器(无效状态001,011) 000 /0010 /0100 /0101 /0110 /0 111

/1 排列n n n 210 Q Q Q 图 状态图 设计过程 a .选择触发器 由于JK 触发器的功能齐全,使用灵活,在这里选用3个CP 上升沿触发的边沿JK 触发器。 b .求时钟方程 采用同步方案,故取012CP CP CP CP === c .求状态方程 由所示状态图可直接画出电路次态n+1n+1n+1 210Q Q Q 卡诺图。再分解开便可以得到如图各触 发器的卡诺图。 Q 1n Q 0n Q 2n 00 01 11 10 1 图次态n+1 n+1n+12 10Q Q Q 卡诺图 Q 1n Q 0n Q 2n 00 01 11 10

2位10进制加法计数器课程设计

目录 第1章前言 (1) 1.1 摘要 (1) 1.2 设计目的 (1) 1.3 设计内容及要求 (1) 第2章设计方案 (2) 2.1 系统框图 (2) 2.2主要芯片功能介绍 (2) 2.2.1 四位二进制计数器74161介绍 (2) 2.2.2七段显示译码器7448介绍 (3) 2.3 工作原理 (4) 第3章硬件设计 (5) 3.1 单元电路设计 (5) 3.2 总硬件电路图 (7) 第4章仿真与试验 (8) 4.1 仿真结果 (8) 4.2 调试中遇到的问题 (8) 第5章结论和体会 (9) 第6章参考文献 (10)

第1章前言 1.1 摘要 在数字电路技术的课程中,计数器的功能是记忆脉冲的个数,它是数字系统中应用最广泛的基本时序逻辑构件。计数器在微型计算机系统中的主要作用就是为CPU和I/O设备提供实时时钟,以实现定时中断、定时检测、定时扫描、定时显示等定时控制,或者对外部事件进行计数。一般的微机系统和微机应用系统中均配置了定时器/计数器电路,它既可当作计数器作用,又可当作定时器使用,其基本的工作原理就是"减1"计数。计数器:CLK输入脉冲是一个非周期事件计数脉冲,当计算单元为零时,OUT输出一个脉冲信号,以示计数完毕。 本十进制加法计数器是基于74161芯片而设计的,依靠传感器感应外界信号,传感器在感应范围内有物体时输出低电位,反之则是高电位。当传感器的感应范围内有物体移过时,传感器电位由高到低再到高,出现上跳沿。计数器会自动加一,并将在数码管上显示。本十进制加法计数器有两位七段数码管。可计数0~99个物体,并易于扩展。 该十进制加法计数器设计理念是用于工厂流水线上产品计数,自动计数,方便简单。 1.2 设计目的 1、综合运用相关课程中所学到的理论知识去独立完成某一设计课题; 2、学习用集成触发器构成计数器的方法; 3、进一步熟悉常用芯片和电子器件的类型及特性,并掌握合理选用器件的原则; 5、初步了解电路设计、仿真的过程和方法; 4、锻炼分析问题解决问题的能力; 1.3 设计内容及要求 1、具有2位10进制计数功能; 2、利用传感器,不接触计数; 3、每一个物体经过,计数器自动加1; 4、具有显示功能; 5、并用相关仿真软件对电路进行仿真。

相关文档
最新文档