十进制加减计数器

十进制加减计数器
十进制加减计数器

集成电路软件设计

实验二:十进制加减计数器

实验地点实验时间

学院班级

姓名学号

成绩指导老师

年月日

一、设计任务

1、设计十进制加减计数器;

2、练习使用Modelsim软件和Synopsys公司的Design Compiler软件。

二、设计要求

1、十进制加减计数器;

2、控制端口控制加与减的计数;

3、输入时钟的频率自定,符合设计即可

三、预习要求

编写加减计数器的VHDL代码;

library ieee;

use ieee.std_logic_1164.all;

use ieee.std_logic_unsigned.all;

entity counter is

port(clk ,up: in std_logic;

q: out integer );

end ;

architecture one of counter is

signal count :integer range 0 to 99;

begin

process(clk)

begin

if clk'event and clk='1' then

if up='1' then

if count=99 then count<=0;

else count<=count+1;

end if ;

elsif up='0' then

if count=0 then count<=29;

else count<=count-1;

end if ;

end if;

end if;

end process ;

q<=count;

end ;

四、实验报告

使用Modelsim软件编译并仿真加减计数器的VHDL代码,编写Testbench,给出仿真结果;

LIBRARY ieee ;

USE ieee.std_logic_1164.all ;

USE ieee.std_logic_unsigned.all ;

ENTITY testbench IS

END ;

ARCHITECTURE counter_tb_arch OF testbench IS

SIGNAL q :integer range 0 to 99 ;

SIGNAL up:std_logic :='1';

SIGNAL clk:std_logic :='0';

COMPONENT counter

PORT (clk,up: in std_logic;

q:out integer range 0 to 99 );

END COMPONENT ;

BEGIN

DUT : counter

PORT MAP ( q=> q ,up=> up ,clk => clk ) ;

process(clk)

begin

clk <= not clk after 20ns;

end process;

up <= '0' after 1000ns;

END ;

五、仿真波形

通过VHDL代码的编译成功和testbench的编写并对其编译、仿真,其仿真结果如下图所示:

六、网表电路

使用Design Compiler软件将加减计数器的VHDL代码综合成网表电路;

七、对比综合后的网表电路与前期VHDL代码,检查一致性。

通过对比生成网表电路的输入与输出管脚,结合生成网表中的每个模块的功能,同时对每个功能模块的分析,并从中得到网表电路运行后的结果,通过把功能网表的运行结果和vhdl的仿真结果比较,得到他们是一致的。

八、总结(实验过程中遇到的问题以及解决问题的过程。)

在编译时出现了许多错误 经过反复修改编译 再修改再编译最终排除了所有的错误。比如刚开始在VHDL代码设计中输出端口q不是用integer既整形,结构不能十进制计数,后面改成整形,才能真正达到十进制的计数。在打来encounter软件时,由于modelsim 的软件没有关闭,使得unis操作系统没有响应。通过关闭操作系统然后重新开启后就可以运行。

同步二进制加法计数器

同步二进制加法计数器 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.文字叙述逻辑功能 解:

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

课程设计 题目十进制数加减计算器学院计算机科学与技术 专业计算机科学与技术 班级计算机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日

项目四六十进制计数器的设计与制作

认识常见计数器 读一读: 集成计数器的分类 集成计数器的分类如下。 (1) 按数的进制分类 二进制计数器是指按二进制数的运算规律进行计数的电路。例如74LS161为集成4位二进制同步加法计数器,其计数长度为16。 十进制计数器是指按十进制数的运算规律进行计数的电路。例如CC4518为集成十进制同步加法计数器,其计数长度为10。 任意进制计数器是指二进制计数器和十进制计数器以外其它进制计数器统称为任意进制计数器。如十二进制计数器和六十进 制计数器等。 (2) 按计数时触发器的状态是递增还是递减分类 加法计数器、减法计数器和可逆计数器。图5-15、5-16分别为十进制加法、减法计数器的状态转换图。 Q D Q C Q B Q A 0000 0110 0001 0111 0010 0011 0101 0100 1000 1001 图5-15 十进制加法计数器状态转换图 Q D Q C Q B Q A 1001 0011 1000 0010 0111 0110 0100 0101 0001 0000 图5-16 十进制减法计数器状态转换图 (3) 按计数器中触发器的翻转是否同步分类 同步计数器和异步计数器。 (4) 按计数器中使用的开关元件类型分类 TTL 计数器和CMOS 计数器。TTL 计数器中电路元件均为晶体 管,而CMOS 计数器中电路元件均为场效应管。

读一读: 计数器是一种能累计脉冲数目的数字电路,在计时器、交通信号灯装置、工业生产流水线等中有着广泛的应用。 计数器电路是一种由门电路和触发器构成的时序逻辑电路,它是对门电路和触发器知识的综合运用。计数器是用以统计输入时钟脉冲CP个数的电路。计数器不仅可以用来计数,也可以用来作脉冲信号的分频、程序控制、逻辑控制等。计数器的种类很多,按计数器中触发器的翻转情况,分为同步计数器和异步计数器两种。按照计数值增减情况,可以分为加法计数器、减法计数器和可逆计数器。计数器也有TTL和CMOS不同类型系列产品。计数器累计输入脉冲的最大数目为计数器的模,用M表示,如十进制计数器又可称为模为10的计数器,记作M=10; 触发器有两个稳定状态,在时钟脉冲作用下,两个稳定状态可相互转换,所以可用来累计时钟脉冲的个数。用触发器构成计数器的原理是触发器的状态随着计数脉冲的输入而变化,触发器状态变化的次数等于输入的计数脉冲数。 读一读: 四进制计数器 四进制计数器能累计4个时钟脉冲,有4个有效状态,因此用两个JK触发器就能构成四进制计数器。如图5-8所示为用两个JK触发器构成的四进制同步加法计数器的逻辑图。 JK触发器构成四进制同步加法计数器逻辑图 图5-8中J0=K0=1时,根据JK触发器的逻辑功能可知,左边的触发器在CP上升沿作用下,具有翻转的功能;J1=K1=Q0,当Q0=0时,右边的触发器状态保持不变,当Q0=1时,右边的触发器状态在CP上升沿作用下,具有翻转的功能。于是得到图5-9所示电路的状态转换真值表5-3。 根据状态转换真值表5-3画出状态转换图5-9,由图5-9可知该电路实现了四进制加法计数器的逻辑功能。 电路的状态转换真值表

用同步十进制加法记数器构成的一个六进制记数器

如何改进六进制记数器设计的方法 ---私立华联学院电子信息工程系龙志 摘要:本文主要通过对同步十进制加法计数器74LS160实现六进制计数器的的常规设计分析,进而研究并实现对六进制计数器的改进设计,本设计主要是对74LS160的异步复位端进行分析设计,使用74LS160能克服触发器的工作速度的差异情况以及竞争冒险现象,实现了使异步复位信号能够持续足够长的时间,从而使74LS160能够从0110这一状态复位变为0000状态,成功得竞争结果,实现我的设计思想。 关键字:同步计数器、加法计数器、触发器、计数脉冲、异步复位、预置数 引言:任何一个数字系统几乎都包含计数器。计数器不仅可以用来计数,也可用来定时、分频和进行数字运算。所谓计数,就是计算输入脉冲的个数,而计数器就是实现计数功能的时序部件。计数器的种类很多。按照组成计数器各触发器的状态转换所需CP是否来自统一的计数脉冲,可以分为同步计数器和异步计数器;按照计数数值的增减情况可以分为加法计数器、减法计数器和可逆计数器;按照计数进位制不同可分为二进制计数器、十进制计数器和任意进制计数器;按照集成工艺不同可分为双极型计数器和单极型计数器。另外,计数器既有中规模集成组件,也可以用小规模集成电路组成。 正文:除了计数功能外,计数器还有一些附加功能,如异步复位、预置数(注意,有同步预置数和异步预置数两种。前者受时钟脉冲控制,后者不受时钟脉冲控制)、保持(注意,有保持进位和不保持进位两种)。虽然计数器产品一般只有二进制和十进制两种,有了这些附加功能,我们就可以方便地用我们可以得到的计数器来构成任意进制的计数器。 同时我们也知道计数器是一种应用十分广泛的时序电路,除用于计数,分频外,还广泛用于数字测量,运算和控制,从小型数字仪表,到大型数字电子计算机,几乎无所不在,是任何现代数字系统中不可缺少的组成部分。 计数器可利用触发器和门电路构成.但在实际工作中,主要是利用集成计数器来构成.在用集成计数器构成N进制计数器时,需要利用置数控制端或清零端,让电路跳过某些状态来获得N进制计数器。下面我举自己设计的用同步十进制加法计数器74LS160构成一个六进制计数器。

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

六位十进制计数器设计(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与一个

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

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

十进制计数器设计教案资料

十进制计数器设计

十进制计数器设计 一、实验目的:熟悉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位输入数据DATA被加载,但如果此时时钟没有上升沿,尽管出现了加载信号LOAD=0,依然未出现加载情况;当EN=1,RST=1,LOAD=1时,计数正常进行,在计数数据等于9时进行输出高电平。 三、实验任务:在Quartus II上将设计好的程序进行编辑、编译、综合、适配、仿真,从时序仿真图中学习计数器工作原理,了解计数器的运行情况及时钟输入至计数器数据输出的延时情况。 四、实验步骤: (一)、建立工作库文件和编辑设计文件 任何一项设计都是一项Project(工程),而把一个工程下的所有文件放在一个文件夹内是一个非常好的习惯,以便于我们整理,利用和提取不同工程下的

六十进制计数器设计

六十进制计数器 设计报告 姓名: 学号: 班级:13电气工程1班 系别:自动化工程系 指导教师: 时间: 2015-1-10

目录 1.概述 (2) 1.1计数器设计目的 (3) 1.2计数器设计组成 (3) 2.六十进制计数器设计描述 (4) 2.1设计的思路 (6) 2.2设计的实现 (6) 3. 六十进制计数器的设计与仿真 (7) 3.1基本电路分析设计 (7) 3.2 计数器电路的仿真 (10) 4.总结 (13) 4.1遇到的问题及解决方法 (13) 4.2实验的体会与收获 (14)

◆1概述 计数器是一个用以实现计数功能的时序部件,它不仅可用来及脉冲数,还常用作数子系统的定时、分频和执行数字运算以及其它特定的逻辑功能。 计数器种类很多。按构成计数器中的各触发器是否使用一个时钟脉冲源来分,有同步计数器和异步计数器。根据计数制的不同,分为二进制计数器、十进制计数器和任意进制计数器。根据计数器的增减趋势,又分为加法、减法和可逆计数器。还有可预制数和可变程序功能计数器等等。目前,无论是TTL还是CMOS集成电路,都有品种较齐全的中规模集成计数器。使用者只要借助于器件手册提供的功能和工作波形图以及引出端的排列,就能正确运用这些器件。 计数器在现代社会中用途中十分广泛,在工业生产、各种和记数有关电子产品。如定时器,报警器、时钟电路中都有广泛用途。在配合各种显示器件的情况下实现实时监控,扩展更多功能。 1.1计数器设计目的 1)每隔1s,计数器增1;能以数字形式显示时间。 2)熟练掌握计数器的各个部分的结构。 3)计数器间的级联。 4)不同芯片也可实现六十进制。 1.2计数器设计组成 1)用两个74ls192芯片和一个与非门实现。 2)当定时器递增到59时,定时器会自动返回到00显示,然后继续计 时。 3)本设计主要设备是两个74LS160同步十进制计数器,并且由200HZ, 5V电源供给。作高位芯片与作低芯片位之间级联。 4)两个芯片间的级联。 ◆2.六十进制计数器设计描述

十进制计数器设计

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

实验十进制加减法计数器

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

EDA60进制计数器设计

《EDA技术》课程实验报告 学生姓名: 所在班级: 指导教师: 记分及评价: 报告满分3分 得分 一、实验名称 实验6:60进制计数器设计 二、任务及要求 【基本部分】 1、在QuartusII平台上,采用文本输入设计方法,通过编写VHDL语言程序,完成60进制计数器的设计并进行时序仿真。 2、设计完成后生成一个元件,以供更高层次的设计调用。 3、实验箱上进行验证。 【发挥部分】 在60进制基础上设计6进制计数器,完成时序仿真。 三、实验程序 library ieee; use ieee.std_logic_1164.all; use ieee.std_logic_unsigned.all; entity sixth is port(clk:in std_logic; co:out std_logic;--jin wei qh:buffer std_logic_vector(3 downto 0);--shi wei ql:buffer std_logic_vector(3 downto 0));--ge wei end entity sixth; architecture art of sixth is begin co<='1'when(qh="0101"and ql="1001")else'0'; process(clk) begin if(clk='1')then if(ql=9)then ql<="0000"; if(qh=5)then

qh<="0000"; else qh<=qh+1; end if; else ql<=ql+1; end if; end if; end process; end architecture art; 四、仿真及结果分析 图6-1 60进制计数器仿真图 用VHDL语言实现一个六十进制计数器,该计数器有计数使能端en,清零端clr和进位输出端co。档en=1时,计数器正常计数;当clr=1时,计数器清零。最后在试验箱上仿真,数码管显示了0到59,则60进制计数器完成。 五、硬件验证 1、选择模式: 2、引脚锁定情况表: 六、小结 1、六进制程序 library ieee; use ieee.std_logic_1164.all; use ieee.std_logic_unsigned.all; entity six is port(clk,en,clr:in std_logic; co:out std_logic;--jin wei qh:buffer std_logic_vector(3 downto 0));--shi wei end entity six; architecture art of six is begin co<='1'when(qh="0101" and en='1')else'0';

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

实验一十进制计数器的设计与仿真 一、实验目的 熟悉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、摘要----------------------------------------------------------------------2 2、设计任务和要求--------------------------------------------------------2 3、单片机简要原理--------------------------------------------------------2 3.1 AT89C51的介绍------------------------------------------------3 3.2 单片机最小系统------------------------------------------------6 3.3 七段共阳极数码管---------------------------------------------7 4、硬件设计-----------------------------------------------------------------7 4.1 键盘电路的设计-------------------------------------------------8 4.2 显示电路的设计-----------------------------------------------9 5、软件设计------------------------------------------------------------10 5.1 系统设计------------------------------------------------------10 5.2 显示与按键设计---------------------------------------------12 6、系统调试.-------------------------------------------------------------13 6.1系统初始状态的调试------------------------------------------13 6.2键盘输入功能的调试-----------------------------------------14 6.3系统运算功能的调试------------------------------------------16 7、心得体会与总结---------------------------------------------------------16 参考文献---------------------------------------------------------------------17 附录1 系统硬件电路图--------------------------------------------------18 附录2 程序清单-----------------------------------------------------------19 -----------

十进制计数器设计

实验四十进制计数器设计 ——综合性实验(一) 一、实验目的 1、学生在掌握所学知识(模拟电路、数字电路、VHD语言等)的基础之上,通过进行该实 验可将有关知识的连贯起来,提高自己本身的综合能力。 2、该实验的参考程序有逻辑错误,学生通过该实验修改程序可以深入的了解和掌握VHDL 语言。 二、实验要求 1、编写十进制计数器程序。 2、利用波形分析进行验证十进制计数器功能正确性。 三、实验设备 1、计算机一台 2、EDA——Ⅳ实验箱一台 四、实验提示 1.输入信号:计数信号(Cn)。 2.门控信号:手动清零(Rest)、手动允许计数(EN)。 3.输出总线信号:二进制——BCD码输出(Dout); 4.输出信号:进位信号(cy); 五、实验主要步骤 1.建立项目文件 2.建立程序文件 3.归属项目文件 4.输入程序 5.程序编译 6.建立波形文件 7.归属项目文件 8.调入引脚信息 9.编辑并编译波形文件 10.波形仿真 六、实验报告要求 1、分别叙述计数器工作原理和设计原理。

2、 绘制它们的程序流程图并进行程序分析。 3、 详细叙述和总结实验过程并进行仿真实验。 4、 进行十进制计数器波形分析与验证。 七、实验波形分析参考 图4.1为修改后的正确波形 图4.2实验指导书提供的计数波形分析 图4.3——6实验指导书提供的计数波形分析 图4.2 实验指导书提供的计数波形分析(不可计数) 图4.3 修改后的计数波形分析(计数不正确) 图4.4 修改后的计数波形分析(无进位) 图4.5 修改后的计数波形分析(十一进制) 图4.1 正确的计数波形分析

图4.6 修改后的计数波形分析(起始位不是零) 八、参考程序: ――******************************************* ――十进制计数器程序 ――适用环境实验教学 ――软件设计:孙晓明/ 自动控制实验室 ――设计时间:2005-02-18 ――最后修改时间:2006-02-7 ――******************************************* library ieee; use ieee.std_logic_1164.all; use ieee.std_logic_unsigned.all; ENTITY cntA 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 cntA ; architecture sun1 of cntA 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; --学生“If Cqi < "1010" then Cqi :=Cqi;” cy<='0'; --学生无 elsif cqi="1001" then cy<='1'; --学生无 Cqi :=(others =>'0');

相关文档
最新文档