基于EDA的三位十进制计数器

基于EDA的三位十进制计数器
基于EDA的三位十进制计数器

三位十进制计数器

一、设计目的

采用文本输入法设计三位十进制加法计数器。

编写VHDL源代码,得出正确的仿真波形,并在实验开发系统上进行硬件演示。

二、设计内容

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

三、计数器设计原理

计数器的输入信号是计数信号(CLK),门控信号是手动清零信号(RESET)、手动允许计数(ENA)。清零信号Rest为1时,保持在清零状态,计数脉冲上升沿无效;允许计数端为0时,为保持状态,这时保持至最后一个计数,计数脉冲上升沿无效;清零信号为0,允许计数信号为1时,计数器上升沿脉冲计数。

计数器是在数字系统中使用最多的时序电路,它不仅能用于对时钟脉冲计数,还可以用于分频,定时,产生节拍脉冲和脉冲序列以及进行数字运算等。计数器是一个典型的时序电路,分析计数器就能更好地了解时序电路的特性。

三位十进制计数显示器的设计分三步完成。先设计十进制计数电路,再设计显示译码电路,最后建立一个顶层文件将两者连接起来。

四、设计程序代码

1)三位十进制计数程序:

LIBRARY IEEE;

USE IEEE.STD_LOGIC_1164.ALL;

USE IEEE.STD_LOGIC_UNSIGNED.ALL;

ENTITY COU10 IS

PORT(

CLK,RESET,CIN :IN STD_LOGIC;

CO :OUT STD_LOGIC;

BCDAP :OUT STD_LOGIC_VECTOR(3 DOWNTO 0);

BCDBP :OUT STD_LOGIC_VECTOR(3 DOWNTO 0);

BCDCP :OUT STD_LOGIC_VECTOR(3 DOWNTO 0)

);

END COU3;

ARCHITECTURE BEHAVE OF COU3 IS

SIGNAL BCDAN:STD_LOGIC_VECTOR(3 DOWNTO 0);

SIGNAL BCDBN:STD_LOGIC_VECTOR(3 DOWNTO 0);

SIGNAL BCDCN:STD_LOGIC_VECTOR(3 DOWNTO 0);

BEGIN

BCDAP<=BCDAN;

BCDBP<=BCDBN;

BCDCP<=BCDCN;

KK1:PROCESS(CLK)

BEGIN

IF(CLK'EVENT AND CLK='1')THEN

IF(RESET='0')THEN

BCDAN<="0000";

ELSIF(CIN='1')THEN

IF(BCDAN="1001")THEN

BCDAN<="0000";

ELSE

BCDAN<=BCDAN+'1';

END IF;

END IF;

END IF;

END PROCESS KK1;

KK2:PROCESS(CLK)

BEGIN

IF(CLK'EVENT AND CLK='1')THEN

IF(RESET='0')THEN

BCDBN<="0000";

ELSIF(CIN='1') AND (BCDAN="1001")THEN

IF(BCDBN="1001")THEN

BCDBN<="0000";

ELSE

BCDBN<=BCDBN+'1';

END IF;

END IF;

END IF;

END PROCESS KK2;

KK3:PROCESS(CLK)

BEGIN

IF(CLK'EVENT AND CLK='1')THEN

IF(RESET='0')THEN

BCDCN<="0000";

ELSIF(CIN='1') AND (BCDBN="1001") AND (BCDAN="1001")THEN

IF(BCDCN="1001")THEN

BCDCN<="0000";

ELSE

BCDCN<=BCDCN+'1';

END IF;

END IF;

END IF;

END PROCESS KK3;

END BEHAVE;

2)显示译码器程序:

LIBRARY IEEE;

USE IEEE.STD_LOGIC_1164.ALL;

ENTITY YIMAQI IS

PORT(II:IN STD_LOGIC_VECTOR(3 DOWNTO 0); Y :OUT STD_LOGIC_VECTOR(6 DOWNTO 0)); END SEG7;

ARCHITECTURE BEHAVE OF SEG7 IS

SIGNAL INDATA:STD_LOGIC_VECTOR(3 DOWNTO 0); BEGIN

INDATA<=II;

PROCESS(INDATA)

BEGIN

CASE INDATA IS

WHEN"0000"=> Y<="0000001";

WHEN"0001"=> Y<="1001111";

WHEN"0010"=> Y<="0010010";

WHEN"0011"=> Y<="0000110";

WHEN"0100"=> Y<="1001100";

WHEN"0101"=> Y<="0100100";

WHEN"0110"=> Y<="0100000";

WHEN"0111"=> Y<="0001111";

WHEN"1000"=> Y<="0000000";

WHEN"1001"=> Y<="0000100";

WHEN"1010"=> Y<="0001000";

WHEN"1011"=> Y<="1100000";

WHEN"1100"=> Y<="0110001";

WHEN"1101"=> Y<="1000010";

WHEN"1110"=> Y<="0110000";

WHEN"1111"=> Y<="0111000";

WHEN OTHERS=>Y<="XXXXXXX";

END CASE;

END PROCESS;

END BEHAVE;

3)顶层文件:

LIBRARY IEEE;

USE IEEE.STD_LOGIC_1164.ALL;

ENTITY DINGCEN IS

PORT(CLK,RESET,ENA:IN STD_LOGIC;

SEG1: OUT STD_LOGIC_VECTOR(6 DOWNTO 0);

SEG2: OUT STD_LOGIC_VECTOR(6 DOWNTO 0);

SEG3: OUT STD_LOGIC_VECTOR(6 DOWNTO 0));

END COU37SEG;

ARCHITECTURE X37 OF COU37SEG IS

COMPONENT SEG7

PORT(II:IN STD_LOGIC_VECTOR(3 DOWNTO 0);

Y :OUT STD_LOGIC_VECTOR(6 DOWNTO 0));

END COMPONENT;

COMPONENT COU3

PORT(CLK,RESET,CIN:IN STD_LOGIC;

BCDAP: OUT STD_LOGIC_VECTOR(3 DOWNTO 0);

BCDBP: OUT STD_LOGIC_VECTOR(3 DOWNTO 0);

BCDCP: OUT STD_LOGIC_VECTOR(3 DOWNTO 0));

END COMPONENT;

SIGNAL A,B,C:STD_LOGIC_VECTOR(3 DOWNTO 0);

BEGIN

U0:COU3 PORT MAP(CLK,RESET,ENA,A,B,C);

U1:SEG7 PORT MAP(A,SEG1);

U2:SEG7 PORT MAP(B,SEG2);

U3:SEG7 PORT MAP(C,SEG3);

END X37;

五、程序设计步骤

1)打开ispEXPERT软件,建立一个新的工程cnt10;

1 单击菜单File→New Project

2 输入工程路径,工程名

2)建立VHDL文件

单击File→New菜单项,选择VHDL File选项,单击OK按钮以建立VHDL文件,分别建立十进制计数程序的vhd文件COU10.vhd,显示译码器vhd文件YIMAQI.vhd和顶层文件DINGNGCEN.vhd

3)然后设定管脚

4)最后保存编译运行,生成可下载到板子里面的jed文件

5)器件下载

6)波形仿真结果

六、设计结果与分析

三位十进制加法计数器实现了从000到999的计数,当计数到999时,计数器的输出置0,下一次又从0到999计数。复位信号RESET跳变为低电平时,计数器的输出被

置零。0到999的计数可以在实验板上数码管显示出来。

七、心得体会

通过这次设计,进一步掌握了ispEXPERT软件的使用方法以及硬件编程下载的基本技能,并掌握了三位十进制计数器的设计原理。

三位十进制加法计数器电路实现从0到999的计数,当计到999时,计数器回到0,又从0到999计数。而计数是计脉冲的个数,有一个脉冲到来便计数一次。本次实现简单地实现了三位十进制加法计数器的功能,为以后的计数器的实现奠定了基础,使我们更加明白和理解计数器的逻辑结构及其功能。

在实验过程中,比较容易出问题的是引脚的锁定,稍微不注意就会把数码管显示的位数颠倒,要不断参考程序分析清楚引脚和数码管对应的接法才能显示正常。还有就是译码器要低电平有效经常搞混,要特别注意。

因此在以后实验中,要特别重视对电路板的选择,深入理解和掌握各电路板板的特点与适用范围。

八、参考文献

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

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

2001.2

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

汇编语言实现十进制加减计算器

课程设计 题目十进制数加减计算器学院计算机科学与技术 专业计算机科学与技术 班级计算机0808班 姓名何爽 指导教师袁小玲 2010 年12 月31 日

课程设计任务书 学生姓名:何爽专业班级:计算机0808班 指导教师:袁小玲工作单位:计算机科学与技术学院 题目: 十进制数加减计算器的设计 初始条件: 理论:学完“汇编语言程序设计”、“课程计算机概论”、“高级语言程序设计”和“数字逻辑”。 实践:计算机学院科学系实验中心提供计算机和软件平台。如果自己有计算机可以在其上进行设计。 要求完成的主要任务:(包括课程设计工作量及其技术要求,以及说明书撰写等具体要求) (1)十进制数加减计算器的设计。 (2)程序应有操作提示、输入和输出,界面追求友好,最好是菜单式的界面。 (3)设计若干用例(测试数据),上机测试程序并分析(评价)所设计的程序。 (4)设计报告格式按附件要求书写。课程设计报告书正文的内容应包括: 在正文第一行写课程设计题目; 1.需求说明(要求、功能简述)或问题描述; 2.设计说明(简要的分析与概要设计); 3.详细的算法描述; 4.源程序与执行结果(含测试方法和测试结果); 5.使用说明; 6.总结,包括设计心得(设计的特点、不足、收获与体会)和展望(该 程序进一步改进扩展的设想)。 时间安排: 设计时间一周:周1:查阅相关资料。 周2:系统分析,设计。 周3~4:编程并上机调试。 周5:撰写课程设计报告。 设计验收安排:20周星期五8:00起到计算机学院科学系实验中心进行上机验收。 设计报告书收取时间:20周的星期五下午5:00之前。 指导教师签名: 2010年12月31日 系主任(或责任教师)签名: 2010年12月31日

四位二进制同步加法计数器(缺0011 0100 0101 0110)

成绩评定表

课程设计任务书

摘要 本次课设题目为四位二进制加法计数器(缺0011 0100 0101 0110)。 首先在QuartusII8.1中建立名为count16的工程,用四位二进制加法计数器的VHDL语言实现了四位二进制加法计数器的仿真波形图,同时进行相关操作,锁定了所需管脚,将其下载到实验箱。 然后,在Multisim软件中,通过选用四个时钟脉冲下降沿触发的JK触发器和同步电路,画出其时序图,卡诺图,建立相关方程,做出相关计算,完成四位二进制加法计数器(缺0011 0100 0101 0110)的驱动方程。在Multisim软件里画出了四位二进制加法计数器的逻辑电路图。经过运行,分析由红绿灯的亮灭顺序及状态,和逻辑分析仪里出现波形图。说明四位二进制加法计数器顺利完成。 关键词:计数器;VHDL语言;仿真;触发器。

目录 一、课程设计目的 (1) 二、设计框图 (1) 三、实现过程 (2) 1、QUARTUS II实现过程 (2) 1.1建立工程 (2) 1.2编译程序 (7) 1.3波形仿真 (10) 1.4 仿真结果分析 (14) 1.5引脚锁定与下载 (14) 2、MULTISIM实现过程 (16) 2.1求驱动方程 (16) 2.2画逻辑电路图 (19) 2.3逻辑分析仪的仿真 (20) 2.4结果分析 (21) 2.5自启动判断 (22) 四、总结 (23) 五、参考书目 (24)

一、课程设计目的 1 了解同步加法计数器工作原理和逻辑功能。 2 掌握计数器电路的分析、设计方法及应用。 3 学会正确使用JK 触发器。 二、设计框图 状态转换图是描述时序电路的一种方法,具有形象直观的特点,即其把所用触发器的状态转换关系及转换条件用几何图形表示出来,十分清新,便于查看。 在本课程设计中,四位二进制同步加法计数器用四个CP 下降沿触发的JK 触发器实现,其中有相应的跳变,即跳过了0011 0100 0101 0110四个状态,这在状态转换图中可以清晰地显示出来。具体结构示意框图和状态转换图如下: 1010 101111001101111011110 /1 /1000 101101110010000100000/0/0/0/0/0/0/0/0/0/????←????←????←????←????←↓↑???→????→????→????→????→? B:状态转换图

同步二进制加法计数器

同步二进制加法计数器 F0302011 5030209303 刘冉 计数器是用来累计时钟脉冲(CP脉冲)个数的时序逻辑部件。它是数字系统中用途最广泛的基本部件之一,几乎在各种数字系统中都有计数器。它不仅可以计数,还可以对CP 脉冲分频,以及构成时间分配器或时序发生器,对数字系统进行定时、程序控制操作。此外,还能用它执行数字运算。 1、计数器的特点: 在数字电路中,把记忆输入CP脉冲个数的操作叫做计数,能实现计数状态的电子电路称为计数器。特点为(1)该电路一般为Moore型电路,输入端只有CP信号。 (2)从电路组成看,其主要组成单元是时钟触发器。 2、计数器分类 1) 按CP脉冲输入方式,计数器分为同步计数器和异步计数器两种。 同步计数器:计数脉冲引到所有触发器的时钟脉冲输入端,使应翻转的触发器在外接的CP脉冲作用下同时翻转。 异步计数器:计数脉冲并不引到所有触发器的时钟脉冲输入端,有的触发器的时钟脉冲输入端是其它触发器的输出,因此,触发器不是同时动作。 2) 按计数增减趋势,计数器分为加法计数器、减法计数器和可逆计数器三种。 加法计数器:计数器在CP脉冲作用下进行累加计数(每来一个CP脉冲,计数器加1)。 3) 按数制分为二进制计数器和非二进制计数器两类。 二进制计数器:按二进制规律计数。最常用的有四位二进制计数器,计数范围从0000到1111。 异步加法的缺点是运算速度慢,但是其电路比较简单,因此对运算速度要求不高的设备中,仍不失为一种可取的全加器。同步加法优点是速度快,虽然只比异步加法快千分之一甚至几千分之一秒,但对于计数器来讲,却是十分重要的。所以在这个高科技现代社会中,同步二进制计数器应用十分广泛。 下图为三位二进制加法计数器的电路图。 图1 三位二进制计数器 图示电路为对时钟信号计数的三位二进制加法计数器或称为八进制加法计数器。 该电路的经典分析过程: 1.根据电路写出输出方程、驱动方程和状态方程 2. 求出状态图 3.检查电路能否自启动 4.文字叙述逻辑功能 解:

十进制加法计数器EDA大作业

百度文库- 让每个人平等地提升自我EDA技术实践报告 十进制加法计数器 姓名:王浩 学号: 9 专业:电气自动化 班级: 12级自动化二班日期:

目录 第1章前言 (1) 摘要 (1) 第2章设计说明 (2) 设计思路 (2) 模块介绍 (2) 真值表 (3) 第3章原理图 (5) 第4章波形仿真图 (10) 第5章管脚锁定及连线 (11) 第6章总结 (13)

第一章前言 本次课程设计介绍了一种基于数字电子技术的十进制加法器实现了如下功能: 1.用四个数码管显示加数与被加数和结果 2.设置加数和被加数。当加数和被加数超过9时显示“E”,计算结果显示为“EE” 3.分别用四个拨码开关控制加数与被加数 4.当加数、被加数超过9时,蜂鸣器报警5秒 EDA技术,就是以大规模可编程逻辑器件为设计载体,以硬件描述语言为系统逻辑描述的主要方式,以计算机、大规模可编程逻辑器件的开发软件及实验开发系统为实验工具,通过有关的开发软件,自动完成用软件的方式设计的电子系统到硬件系统的逻辑编译、逻辑化建、逻辑分割、逻辑综合及优化、逻辑布局布线、逻辑仿真,直至完成对于特定目标芯片的适配编译、逻辑映射、编程下载等工作,最终形成集成电子系统或专用集成芯片的一门新技术。 利用EDA技术进行电子系统的设计,具有以下几个特点:1.用软件的方式设计硬件;2.用软件方式设计的系统到硬件系统的转换是由有关的开发软件自当完成的;3.设计过程中可用有关软件进行仿真;4.系统可现场编程,在线升级;5.整个系统可集成在一个芯片上,体积小,功能低,可靠性高。因此,EDA技术是现代电子设计的发展趋势。 摘要 此次设计是十进制加法器,用74238进行加法部分,根据BCD码加法运算规则,当俩数相加的结果小于或等于9时,相加结果与二进制数相加结果一致,当相加结果大于9时,相当于按二进制数相加所得的结果再加6. 当加数或被加数超过九时,数码管显示E,结果显示EE。蜂鸣器报警5秒钟。 关键字:十进制加法器,数码管显示,蜂鸣器报警

十进制计数器

EDA实验一:十进制计数器 (2013-05-25 00:38:40) 转载▼ 标签: 杂谈 实验一QuartusII的VHDL输入设计 --- 应用QuartusII完成基本时序电路的设计 姓名:李静学号:1023019857 日期:2013-05-22 (一)实验目的: 熟悉QuartusⅡ的VHDL文本设计过程,学习简单时序电路的设计、仿真和测试。 (二)实验仪器: 计算机一台,ALTERA公司Cyclone系列的EP1C3TC144芯片实验箱。 (三)实验原理: 对于异步清零和同步加载与时钟使能的计数器:当时钟信号CLK、复位信号RST、时钟使能信号EN或加载信号LOAD 中任一信号发生变化,都将启动进程。此时如果RST为 ‘0’,将计数器清零,该操作独立于CLK,如果RST为 ‘1’,则看是否有时钟信号的上升沿,如果有且EN=

‘1’,接下去是判断加载控制信号LOAD的电平,如果LOAD 为低电平,则允许将输入口的四位加载数据置入计数器中,以便计数器在此基础上累计计数。如果LOAD为高电平,则允许计数器计数;此时若数值小于9,计数器将进行正常计数,否则计数器清零。但如果EN=‘0’,则计数器保持原值不变。(四)实验内容: 设计含异步清零和同步加载与时钟使能的计数器(使用例3-20),给出程序设计、软件编译、仿真分析、硬件测试及详细实验过程。 实验程序: 【例3一20】: LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; USE IEEE.STD_LOGIC_UNSIGNED.ALL; ENTITY CNT10 IS PORT (CLK,RST,EN,LOAD : IN STD_LOGIC; DATA : IN STD_LOGIC_VECTOR(3 DOWNTO 0); DOUT : OUT STD_LOGIC_VECTOR(3 DOWNTO 0); COUT : OUT STD_LOGIC ); END CNT10; ARCHITECTURE behav OF CNT10 IS

verilog HDL十进制加减法计数器报告

十进制加减法计数器 1.实验要求 (1)在Modelsim环境中编写十进制加减法计数器程序; (2)编译无误后编写配套的测试程序; (3)仿真后添加信号,观察输出结果。 2.设计程序如下 module decade_counter #(parameter SIZE=4) (input clock,load_n,clear_n,updown, input [SIZE-1:0]load_data, output reg [SIZE-1:0]q ); always @(negedge load_n,negedge clear_n,posedge clock) if (!load_n) q<=load_data; else if (!clear_n) q<=0; else //clock??? if(updown) q<=(q+1)%10; else begin if(q==0) q<=9; else q<=q-1; end endmodule 3.测试程序如下 `timescale 1ns/1ns module test_decade_counte; reg clock,load_n,clear_n,updown; reg [3:0]load_data; wire [3:0]q; decade_counter T1(clock,load_n,clear_n,updown,load_data,q); initial begin clock=0;clear_n=0;

#30 clear_n=1;load_n=0;load_data=7; #30 load_n=1;updown=0; #300 updown=1; #300 updown=0; #300 updown=1; #300 $stop; end always #10 clock=~clock; always @(q) $display("At time%t,q=%d",$time,q); endmodule 4.波形如下 5.测试结果如下 # At time 0,q= 0 # At time 30,q= 7 # At time 70,q= 6 # At time 90,q= 5 # At time 110,q= 4 # At time 130,q= 3 # At time 150,q= 2 # At time 170,q= 1 # At time 190,q= 0 # At time 210,q= 9 # At time 230,q= 8 # At time 250,q= 7 # At time 270,q= 6 # At time 290,q= 5 # At time 310,q= 4 # At time 330,q= 3

六位十进制计数器设计(DOC)

河南科技学院新科学院电子课程设计报告 题目:六位十进制计数显示器 专业班级:电气工程及其自动化113班 姓名:吕志斌 时间:2013.05.27 ~2013.06.05 指导教师:邵锋张伟 完成日期:2013年06月05 日

6位十进制计数显示器设计任务书 1.设计目的与要求 设计6位十进制计数显示器电路,要认真并准确地理解有关要求,独立完成系统设计,要求所设计的电路具有以下功能: (1)能够实现0-999999的计数并显示; (2)具备计数数据的锁存功能; (3)采用数码管显示; (4)具备复位清零功能。 2.设计内容 (1)画出电路原理图,正确使用逻辑关系; (2)确定元器件及元件参数; (3)电路仿真; (4)SCH文件生成与打印输出; (5)PCB文件生成与打印输出。 3.编写设计报告 写出设计的全过程,附上有关资料和电路图,有总结体会。 4.答辩 在规定时间内,完成叙述并回答问题。 目录 1.引言 (1) 2.总体设计方案 (1)

2.1设计思路 (1) 2.2总体设计框图 (1) 3.设计原理分析 (1) 3.1计数器所用元器件74LS47 (1) 3.2译码显示电路所用器件 (3) 3.3译码显示电路工作原理分析 (4) 3.4锁存电路工作原理及器件 (4) 4.调试与仿真 (4) 5.体会与总结 (5) 参考文献 (5) 附录1仿真图 (6) 附录2原理图 (7)

6位十进制计数器设计 摘要:本文为完成六位十进制计数显示电路设计的完整过程,该电路是一种具备锁存复位清零功能的显示电路。具有结构简单,原理清晰的特点。 关键词:计数锁存复位 74LS47 74LS161 74LS93 74LS162 1引言 计数器的计数范围不够广,功能不太完善。在一些要求计数显示的场合需要较宽的计数范围,随着大规模集成电路的发展,数字技术显示技术也在不断的更新替换。然而,一些有时也需要一些专用的功能键。六位十进制显示器是一种能直接用数字显示范围且计数范围为0-999999的脉冲计数仪表,通过计数显示器将输入脉冲信号转换为对等的四位BCD码,再进入译码器将其转换为其位二进制数,最后经过驱动电路输入到七段式数字显示器显示十进制数。 2总体设计方案 本设计用74LS161芯片完成计数译码功能和锁存功能,将他们分别作为输入端接入74LS47译码,然后接入七段显示器完成显示功能。通过逻辑与非门与下一级的脉冲输入端完成进位,用开关KA.,KB分别控制复位清零和锁存。 2.1设计思路 本设计用六块74LS161来实现0-999999计数功能和完成锁存功能。将他们作为输入端接入6块74LS47芯片完成译码显示功能,用开关KA控制74LS161芯片的CLR端和CLK端来控制计数器清零和下一位的进位功能。 2.2总体设计框架图 该电路输入脉冲先进入计数电路然后再进入译码电路,同时计数与电路给下一位输入脉冲,计数器经过译码器译码,然后由LED数码管显示 (总体设计框架如图1)。 3设计原理分析 3.1计数器所用元器件74LS161 本设计计数器所用芯片为74LS161(图2)。该芯片A~D可以预置数,CLK端为脉冲接入端并由QA-QD完成输出(上升沿有效)。CLR为异步清除输出端(低电平有效),CEP 和CET为技术控制端,/PE为同步并行置入控制端(低电平有效)可以完成置数清零功能,在本设计中CLR接开关KA与一个

十进制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;

实验十进制加减法计数器

实验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

二位十进制计数器

EDA技术及应用讲座作业 题目:基于EDA的二位十进制计数器 学校:中南大学 学科专业:生物医学工程 学生: 学号: 0405080704 任课教师: 完成日期: 2011 年 5 月 19日

基于EDA的二位十进制计数器 一实验目的 1了解QuartusII软件及基本操作; 2熟悉图形编辑器 Graphic Editor File 的设计方法; 3熟悉VHDL 语言设计方法; 4掌握简单计数器的图形设计方法和VHDL语言设计方法。 二任务要求 用两种EDA设计方法设计一个二位十进制计数器,具体要求如下: 1能累加计时; 2能循环计时(当计时到我们所需的数值时,能清零继续计数); 3能通过一个开关来选择计数器进制数; 4要求分别用图形设计方法和VHDL语言两种方法实现该设计; 5分析比较两种设计方法。 三计数器原理及其EDA实现方法 计数是一种最简单基本的运算,计数器就是实现这种运算的逻辑电路,计数器在数字系统中主要是对脉冲的个数进行计数,以实现测量、计数和控制的功能,同时兼有分频功能,计数器是由基本的计数单元和一些控制门所组成,计数单元则由一系列具有存储信息功能的各类触发器构成,这些触发器有RS触发器、T触发器、D触发器及JK触发器等。 在EDA设计中,可以采用两种方法来实现简单的计数器。采用图形设计方法,设计者可以调用设计软件提供的库元件,如基本的逻辑器件与门、或门、四位十进制计数器74160等等,并将这些元件以一定方式连接,从而构成目标计数器;采用VHDL语言设计方法,设计者只要根据VHDL语言规则定义目标计数器的管脚,并描述目标计数器的功能,然后设计软件便可以自动综合出目标计数器,采用这种设计方法,设计者不用考虑实际可用硬件的构成方式,因此很灵活方便。 本作业将利用Alter公司的设计软件Quartus II 9.1分别采用以上两种方法来实现一个二位十进制计数器,该计数器有两个可选进制24进制和12进制,可以通过一个开关来改变进制。该计数器在输入时钟的驱动下可以在00到24(或12)间循环计数,并将当前计数的十位和个位以BCD码输出。 四具体方案 4.1 图形设计方法 1设计思路 我采用了两个同步十进制计数器74160来实现二位十进制计数器,其原理图如图1所示。 图1中将个位计数器ONES的输出H0[0]-H0[3]通过一个或非门连接到十位计数器TENS的时钟输入,从而实现个位到十位的进位。当H0[0]-H0[3],由“1001”变为“0000时”,或非门将产生一个上升沿,从而触发十位数计数器加1。 74160具有一个异步清零脚(CLRN)和一个同步置数脚(LDN),我采用了同步置数脚来实现该计数器的循环计数。图1中24进制计数情况下,当两个计数器的输出为23(即“00100011”)时,通过一个与非门产生一个下降沿并输入到两个计数器的同步置数端,从而实现了循环计数。12进制计数时,只要输出为

十进制可逆加减计数器

时序电路逻辑设计 实验人:周铮班级:中法1202班学号:U201215676 一实验目的 1.掌握用SSI实现简单组合逻辑电路的方法。 2.掌握简单数字电路的安装与测试技术。 3.熟悉使用Verilog HDL描述组合逻辑电路的方法,以及EDA仿真技术。 二实验器件 计算机,可编程实验板 三实验内容 十进制加减可逆计数器设计 功能要求: 拨码开关键SW1为自动可逆加减功能键,当SW1为HIGH时,计数器实现自动可逆模十加减计数功能,即4个七段数码管上几乎同步显示0—1—2—3—4—...9—8—7—...0—1...的模十自动可逆加减计数结果;当SW1为LOW时,计数器按拨码开关键SW0的选择分别执行加减计数功能。即当SW0为HIGH时,计数器实现模十加计数功能,即4个七段数码管上几乎同步显示0—1—2—3—4—...9——0—1...的模十加计数结果;当SW0为LOW时,计数器实现模十减计数功能,即4个七段数码管上几乎同步显示9—8—7—...—1—0— (9) —8—7…的模十减计数结果。 四实验设计 1.原理设计 脉冲发生电路采用555定时器组成的多谐振荡器振荡产生周期为1s的矩形脉冲,从而为计数器提供触发信号。其中,可以通过R1,R2,C来控制充放电的时间。 加/减计数控制电路主要由74LS138构成。74LS138芯片是常用的3-8线译码器,常用在单片机和数字电路的译码电路中,74LS138的引脚排列及 真值表如图

计数单元电路主要由十进制计数器74LS192构成。74LS192是同步十进制可逆计数器,它具有双时钟输入,并具有清除和置数等功能,其引脚排列图如图 功能表如图 2.模拟仿真 用Verilog HDL语言设计二通道数据选择器实验程序如下: ①实验代码 module a( input clk,

设计一个四位二进制计数器

1、要求:设计一个四位二进制计数器,将计数结果由数码管显示,显示结果为十进制数。数码管选通为低电平有效,段码为高电平有效。 分析:VHDL 描述包含五部分:计数器、将四位二进制数拆分成十进制数的个位和十位、二选一的数据选择器、七段译码、数码管选通控制信号 线定义为信号 library IEEE; use IEEE.STD_LOGIC_1164.ALL; use IEEE.STD_LOGIC_ARITH.ALL; use IEEE.STD_LOGIC_UNSIGNED.ALL; entity counter3 is Port ( clk:in STD_LOGIC; clk1 : in STD_LOGIC; clr : in STD_LOGIC; en : in STD_LOGIC; co : out STD_LOGIC; scanout:out std_logic_vector(1 downto 0); ledout:out std_logic_vector(6 downto 0)); end counter3; architecture Behavioral of counter3 is signal cnt:std_logic_vector(3 downto 0); signal cnt1:std_logic_vector(3 downto 0); signal cnt2:std_logic_vector(3 downto 0); signal hex:std_logic_vector(3 downto 0); signal scan:std_logic_vector(1 downto 0); en clr

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

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

1课程设计的目的与作用 (1).了解同步计数器及序列信号发生器工作原理; (2).掌握计数器电路的分析,设计方法及应用; (3).掌握序列信号发生器的分析,设计方法及应用 2 设计任务 2.1加法计数器 (1).设计一个循环型3位2进制加法计数器,其中无效状态为(001,010),组合电路选用与门和与非门等。 (2).根据自己的设计接线。 (3).检查无误后,测试其功能。 2.2全加器 (1).设计一个全加器,选用一片74LS138芯片设计电路。 (2).根据自己的设计接线。 (3).检查无误后,测试其功能。 2.3 256进制的加法器 (1).设计一个256进制的加法器并显示计数,选用两片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用集成芯片设计一个256进制的加法器 选取两片74LS163芯片设计256进制加法计数器。74LS163具有以下功能: A.异步清零功能 当0 CR时,其他输入信号都不起作用,由时钟触发器的逻辑 = = CR时,计数器清零。在0 特性知道,其异步输入端信号是优先的,0 R复位计数器也即使异步清零 = CR正是通过D

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

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

赣南师院物理与电子信息学院数字电路课程设计报告书 姓名:胡丹 班级:电气教育技术10级 学号:100805004 时间:2012年 4月8日

3位二进制同步减法计数器 1、设计任务与要求 设计一个3位二进制同步减法计数器(无效状态为001 100) 2、方案设计与论证 2.1 基本原理 计数器是用来统计脉冲个数的电路,是组成数字电路和计算机电路的基本时序部件,计数器按进制分可分为:二进制,十进制和N 进制。计数器不仅有加法计数器,也有减法计数器。一个计数器如果既能完成加法计数,又能完成减法计数,则其称为可逆计数器。 同步计数器:当输入计数脉冲到来时,要更新状态的触发器都是同时翻转的计数器,叫做同步计数器。设计同步计数器按照下面的思路进行分析。 图(1) 2.2 设计过程 2.2.1 状态图 000 111 110 101 011 010 图(2) 2.2.2 卡诺图 00 01 11 10 111 xxx 010 000 xxx 011 110 101 图(3) 0 1 Q 1n Q 0n Q 2n 时序逻辑问题 状态赋值 状态转换图 最简逻辑表达式 逻辑图 检查能否自启动 选定触发器类型

00 01 11 10 1 x 0 0 x 1 1 图(4) 00 01 11 10 1 x 1 1 x 1 1 图(5) 00 01 11 10 1 x 0 0 x 1 1 图(6) 2.2.3 状态方程与驱动方程 状态方程: 12 n Q +=1n Q 2 n Q +1n Q 2 n Q 11 n Q +=1 n Q +0 n Q 1 n Q Q 1n Q 0n Q 2n 0 1 Q 1n+1的卡诺图 Q 1n Q 0n Q 2 n 0 1 Q 1n Q 0n Q 2n 0 1

十进制加法计数器

在数字系统中,常需要对时钟脉冲的个数进行计数,以实现测量、运算和控制等功能。具有计数功能的电路,称为计数器。 计数器是一种非常典型、应用很广的时序电路,计数器不仅能统计输入时钟脉冲的个数,还能用于分频、定时、产生节拍脉冲等。计数器的类型很多,按计数器时钟脉冲引入方式和触发器翻转时序的异同,可分为同步计数器和异步计数器;按计数体制的异同,可分为二进制计数器、二—十进制计数器和任意进制计数器;按计数器中的变化规律的异同,可分为加法计数器、减法计数器和可逆计数器。 二进制加法计数器运用起来比较简洁方便,结构图和原理图也比其它进制的简单明了,但二进制表示一个数时,位数一般比较长。十进制是我们日常生活中经常用到的,不用转换,所以设计十进制加法计数器比设计二进制加法计数器应用广泛,加法器是以数据的累加过程,日常生活中,数据的累加普遍存在,有时候需要一种计数器对累加过程进行运算处理,所以设计十进制加法计数器应广大人们生活的需要,对我们的生活有一个积极地促进作用,解决了生活中许多问题,所以会设计十进制加法计数器使我们对数字电路的理论和实践知识的充分结合,也使我们对电子技术基础有了深刻的了解,而且增强了我们对电子技术基础产生了浓厚的兴趣,这次课程设计使我受益匪浅!

一、设计题目 (3) 二、设计目的 (3) 三、设计依据 (3) 四、设计内容 (3) 五、设计思路 (4) 六、设计方案 (7) 七、改进意见 (10) 八、设计总结 (11) 九、参考文献 (12)

一、设计题目 十进制加法计数器 二、设计目的 1.学习电子电路设计任务。 2.通过课程设计培养学生自学能力和分析问题、解决问题的能力。 3.通过设计使学生具有一定的计算能力、制图能力以及查阅手册、使用国家技术标准的能力和一定的文字表达能力。 三、设计依据 1.用JK触发器组成。 2.实现同步或异步加法计数。 四、设计内容 1.复习课本,收集查阅资料,选定设计方案; 2.绘制电气框图、电气原理图; 3.对主要元器件进行计算选择,列写元器件的规格及明细表; 4.设计总结及改进意见; 5.参考资料; 6.编写说明书。

十进制计数器设计

十进制计数器设计 一、实验目的:熟悉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;

相关文档
最新文档