可编程逻辑实验一FPGA设计16进制加减计数器

可编程逻辑实验一FPGA设计16进制加减计数器
可编程逻辑实验一FPGA设计16进制加减计数器

试验一:16进制加减计数器

一: 实验程序。

实验要求:用VHDL 语言设计一个16进制加减计数器,计数方向可以由外界输入信号控制,带有清零和置位,输出除了包括计数值外还应包括进位和借位。 实验程序:

程序说明:clk :为时钟信号。cr :为清零信号。set :为置位信号。s :为加减计数的方向

控制信号。cin :为置位输入信号,定义为4位的总线形式。Co :为进位信号。

bo :为借位信号。q :为输出信号。

功能说明:在进程p1中:当有清零信号cr ,即cr=1时,计数器清零。当有置位

信号时,将置入的数赋给信号po 。当有时钟的下降沿来时,并且加减方向控制信号s 为0时,计数器做加法运算(如果一开机就是4位输出全高,则当时钟来

LIBRARY IEEE;

USE IEEE.STD_LOGIC_1164.ALL;

USE IEEE.STD_LOGIC_UNSIGNED.ALL;

ENTITY CNT16 IS

PORT(clk,cr,set,s:IN std_logic;

cin:IN

std_logic_vector(3 DOWNTO 0);

q:OUT

std_logic_vector(3 DOWNTO 0);

co,bo:OUT std_logic);

END;

ARCHITECTURE w2 OF CNT16 IS

SIGNAL po:std_logic_vector(3 DOWNTO

0);

BEGIN

p1:PROCESS(clk,cr,set,cin)

BEGIN

IF cr='1' THEN po<="0000";

elsif set='1' then po<=cin;

ELSE IF clk 'EVENT AND clk='0' THEN

IF s='0' THEN

IF po=15 THEN po<="0000"; ELSE po<=po+1; END IF; ELSE IF po=0 THEN po<="1111"; ELSE po<=po-1; END IF; END IF; END IF; END IF; END PROCESS; p2:PROCESS(s) BEGIN IF s='0' THEN co<=po(3)AND po(2) AND po(1) AND po(0); ELSE co<='0'; bo<=NOT po(3) AND NOT po(2) AND NOT po(1) AND NOT po(0); END IF; q<=po; END PROCESS; END;

时,计数器从零开始计数);当s为1时,做减法运算(当计数器初值为0,则时

钟沿之前先向bo借一位,然后在时钟沿之后开始做减法运算)。

在进程p2中,检测计数器的值,如果计数器做的是加法,则当计数器计到15时,将输出一个进位信号给co;如果计数器做的是减法,则当计数器减到零时,

将输出借位信号给bo。

进程p1和p2之间是同时进行的。即:一边计数,一边检测是否有进位信号或是

借位信号。

二:实验时序仿真。

首先,建立一个波形文件。设置截止时间“end time”为:50us。

然后找出管脚进行时序仿真。

把列出的管脚拖到波形文件中,然后给每个输入信号进行设置。

为了避免延时,时钟信号周期设置为:1us。

cr=0,set信号在第三个时钟下降沿到第六个下降沿为高电平,说明此时对信号进行了置位,

所置数的大小为0110;方向信号s信号在第十九个下降沿到第26个下降沿为高,说明这段时间做减法;在29到32下降沿将产生清零信号。

时序仿真上面的波形:

验证波形如下,可知:当set=1期间,置位为0110,而当置位结束时,计数器接着所置的数做加计数,当计到15时,在时钟下降沿后产生了进位信号co。然后计数器继续从0开始加数。

而当计数器加到0011后,由于s信号变成了1,从而使计数器开始做减法,减到0时,产生了借位信号bo,之后计数器开始从1111做减法运算,当见到1011时,由于产生了清零信号,故而输出全为0。

如此看来,时序仿真是正确的。

三:下载,进行硬件检测。

首先要进行模式选定和管脚锁定。我们选择模式五。

锁定的管脚图如下:

详细配置:

管脚说明:时钟信号为:93管脚,即时钟0。

清零信号cr:按键1。

方向信号s:按键2。

置位信号set:按键3。

进位信号co:发光二极管D2。

借位信号bo:发光二极管D1。

置位输入信号cin的4个位依次为:按键8,按键7,按键6和按键5。

输出信号q的4个位用数码管1译码。

管脚锁定后,进行下载:

弹出下载框图:

注意,此时还不能成功下载,因为“Hardware Setup”是为“No Hardware”,就是说,还没有下载的硬件支持。此时要点击“Hardware Setup”,在弹出的对话框中选出一个可支持的硬

件。如下,为“ByteBlasterMV or ByteBlaster II”。选中之后顺次点“OK”和“Close”即可。

之后,选中两个方框,此时呈现的图面如下:

当以上操作均弄完之后,点击“Start”,即可成功下载。

之后按照下载时的管脚说明,依次验证即可。只要时序仿真正确,基本上下载后进行硬件检

测不会出现什么问题,如果出现问题,那就可能是试验箱的问题。

十进制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.熟悉硬件编程语言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。

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时,输出进位信号给十位充当使能信号进位。

设计任意进制计数器

设计任意进制计数器 一、实验目的 掌握中规模集成计数器的使用方法及功能测试方法。 二、实验内容及要求 采用(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 状态转换图:(略)

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

十进制计数器设计

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

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、并用相关仿真软件对电路进行仿真。

十进制加法计数器

十进制加法器设计 1课程设计的任务与要求 课程设计的任务 1、综合应用数字电路知识设计一个十进制加法器。了解各种元器件的原理及其应用。 2、了解十进制加法器的工作原理。 3、掌握multisim 软件的操作并对设计进行仿真。 4、锻炼自己的动手能力和实际解决问题的能力。 5、通过本设计熟悉中规模集成电路进行时序电路和组合电路设计的方法,掌握十进制加法器的设计方法。 课程设计的要求 1、设计一个十进制并运行加法运算的电路。 2、0-9十个字符用于数据输入。 3、要求在数码显示管上显示结果。 2十进制加法器设计方案制定 加法电路设计原理 图1加法运算原理框图 如图1所示 第一步 置入两个四位二进制数。例如(1001)2,(0011)2和(0101)2,(1000)2,同时在两个七段译码显示器上显示出对应的十进制数9,3和5,8。

第二步将置入的数运用加法电路进行加法运算。 第三步前面所得结果通过另外两个七段译码器显示。即: 加法运算方式,则(1000)2+(0110)2=(1110)2 十进制8+6=14 并在七段译码显示出14。运算方案 通过开关S1——S8接不同的高低电平来控制输入端所置的两个一位十进制数,译码显示器U8和U9分别显示所置入的两个数。数A直接置入四位超前进位加法器74LS283的A4——A1端,74LS283的B4——B1端接四个2输入异或门。四个2输入异或门的一输入端同时接到开关S1上,另一输入端分别接开关S5——S8,通过开关S5——S8控制数B的输入,通过加法器74LS283完成两个数A和B的相加。由于译码显示器只能显示0——9,所以当A+B>9时不能显示,我们在此用另一片芯片74LS283完成二进制码与8421BCD码的转换,即S>9(1001)2时加上3(0011)2,产生的进位信号送入译码器U10来显示结果的十位,U11显示结果的个位。 3十进制加法器电路设计 加法电路的实现 用两片4位全加器74LS283和门电路设计一位8421BCD码加法器。由于一位8421BCD 数A加一位数B有0到18这十九种结果。而且由于显示的关系,当大于9的时候要加六转换才能正常显示,所以设计的时候有如下的真值表:

任意进制计数器的构成方法

任意进制计数器的构成方法 从降低成本的角度考虑,集成电路的定型产品必须有足够大的批量。因此,目前常见的计数器芯片在计数进制上只做成应用较广的几种类型,如十进制、十六进制、7位二进制、12位二进制、14位二进制等。在需要其他任意一种进制的计数器时识能用已有的计数器产品经过外电路的不同连接方式得到。假定已有的是N进制计数器,而需要得到的是M进制计数器。这时有MN两种可能的情况。下面分别讨论两种情况下构成任意一进制计数器的方法。 1. M

基于原理图的十进制计数器设计与仿真

《基于FPGA的现代数字系统设计》 实验名称:十进制计数器设计与仿真 姓名: 学号: 班级: 指导老师: 2013年3月11日

实验目的: (1)熟悉和掌握ISE Foudation 软件的使用 (2)掌握基本原理图进行FPGA设计开发的全流程 (3)理解和掌握“自底向下”的层次化设计方法 (4)温习数字电路设计的基础知识 实验要求: (1)使用原理图库中的门电路元件设计七段显示译码电路,以及十进制加法计数器。 (2)要求LED定位显示。 (3)完成LED七段码波形的仿真分析。 (4)在目标板按要求显示译码结果。 实验原理: 本次试验将完成的设计是一个具有数显输出的十进制计数器。示意图如2.1所示。 图2.1 七段数码管属于数码管的一种,是由7段二极管组成。按发光二极管单元衔接方式分为共阳极数码管和共阴极数码管。本实验使用共阴数码管。它是指将一切发光二极管的阴极接到一同构成公共阴极(COM)的数码管。共阴数码管在应用时应将公共极COM接到地线GND上,当某一字段发光二极管的阳极为高电平相应字段就点亮,当某一字段的阳极为低电平相应字段就不亮。 显示译码器,一般是将一种编码译成十进制码或特定的编码,并通过显示器件将译码器的状态显示出来。最小项译码器输出能产生输入变量的所有最小项,而任何一个组合逻辑函数都可以变换为最小项之和的标准形式,故采用译码器和

门电路可实现任何单输出或多输出的组合逻辑函数。当译码器输出低电平有效时,一般选用与非门;当译码器输出高电平有效时,一般选用或门。 本实验可以采用ISE软件自带的“Decoder”库中的4线-16线译码器D4_16E (带使能端,输出高电平有效)和“Logic”库中的16输入或门OR16。 本次试验将完成的设计是一个具有数显输出的十进制计数器。 实验步骤: 1.完成七段数码管的绘制,按照正常操作新建工程,添加新原理图文件。(1)画出七段数码管A段的原理图,如图1所示,根据书上的七段数码管的真值表完成D$_16E与16位或门的连线,其中0的地方连地,1的地方连上D4_16E 芯片。完成A段的原理图之后,进行逻辑仿真,检查原理图是否有问题。 图1 数码管A段原理图 (2)为了确保原理图功能正确,建立激励文件,画出四个输入的波形图,要进行完备测试,测试激励应该包括所有的输入组合情况,这次有A(3:0)有0000~1111共16种组合情况。编辑修改激励波形。对于总线值提供模式设置的编辑功能,操作如图2.1所示。保存设置好的激励文件,如下图所示:

用verilog HDL输入法设计十进制计数器 实验报告

实验名称:实验四:用verilog HDL输入法设计十进制计数器 实验目的:硬件描述语言(HDL)就是可以描述硬件电路的功能、信号连接关系及定时 (时序) 关系的语言,也是一种用形式化方法来描述数字电路和设计数字系统的。通过十进制计数器的设计,熟练掌握硬件描述语言的编程方法。 实验原理: module cout(clk,clear,qd,EN); input clk,clear,EN; output[3:0] qd; reg[3:0] cnt; assign qd=cnt; always @(posedge clk ) begin if(clear ) cnt<=4'h0;//同步清0,高电平有效 else if(EN) begin if(cnt==9) cnt<=4'h0; else cnt<=cnt+1; //加法计数 end end Endmodule 实验内容:为了能对此计数器进行硬件测试,应将其输入输出信号锁定在芯片确定的引 脚上,编译后下载。 (1)选择Tools菜单中的Assignments项,即进入如图2-23所示的Assignment Editor编辑器窗。在Category栏中选择Pin,或直接单击右上侧的Pin按钮。 (2)双击“TO”栏的《new》,在出现的如图2-24所示的下拉栏中分别选择本工程要锁定的端口信号名;然后双击对应的Location栏的《new》,在出现的下拉栏中选择对应端口信号名的器件引脚号,如对应CQ[3],选择42脚。在此选择GW48-EDA系统的电路模式No.5,通过查阅附录有关”芯片引脚对照表”,GWAC3板确定引脚分别为:主频时钟clk接Clock0(第93脚,可接在4Hz上);计数使能EN可接电路模式No.5的键1(PIO0对应第1脚);复位clear则接电路模式No.5的键2(PIO1对应第2脚,注意键序与引脚号码并无对应关系);4位输出数据总线CQ[3..0]可由数码1来显示,通过分别接PIO19、PIO18、PIO17、PIO16(它们对应的引脚编号分别为42、41、40、39)。(如是GWAC6板,CLK:接28,EN:233,RST:234,COUT:1,CQ[3..0]分别接16,17,18,19)(引脚连接关系见附录)

60进制计数器设计

《60进制计加法数器的设计》 设计报告 姓名: 学号: 班级:应用电子1001 系别:电子工程系 指导教师: 时间:2012-5-28—2012-6-1

目录 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同步十进制计数器,并且

EDA十进制计数器的设计

物理与电气工程学院课程设计报 告 十进制计数器设计

一、实验任务 熟悉QuartusⅡ的Verilog HDL文本设计流程全过程,学习计数器的设计、仿真和硬件测试。EDA的设计流程为原理图/HDL文本编辑、逻辑综合、FPGA/CPLD适配、FPGA/CPLD编程下载。EDA的设计所用的软件是Quartus II 软件,Quartus II 软件可以用图形输入、VHDL文本输入的方法输入,之后进行时序仿真,EDA设计流程的最后一步是将程序下载到开发板上,进行硬件测试。 二、实验原理 根据频率的定义和频率测量的基本原理,测定信号的频率必须有一个脉宽为1秒的对输入信号脉冲计数允许的信号;1秒计数结束后,计数值锁入锁存器的锁存信号和为下一测频计数周期作准备的计数器清0信号。这3个信号可以由一个测频控制信号发生器产生,即图6-24中的TESTCTL,它的设计要求是,TESTCTL的计数使能信号CNT_EN能产生一个1秒脉宽的周期信号,并对频率计的每一计数器CNT10的ENA使能端进行同步控制。当CNT_EN高电平时,允许计数;低电平时停止计数,并保持其所计的脉冲数。在停止计数期间,首先需要一个锁存信号LOAD的上跳沿将计数器在前1秒钟的计数值锁存进各锁存器REG4B中,并由外部的7段译码器译出,显示计数值。设置锁存器的好处是,显示的数据稳定,不会由于周期性的清零信号而不断闪烁。锁存信号之后,必须有一清零信号RST_CNT对计数器进行清零,为下1秒钟的计数操作作准备。 按规定编写程序如下: module CNT10 (CLK,RST,EN,LOAD,COUT,DOUT,DATA); input CLK,EN,RST,LOAD; input [3:0] DATA; output [3:0] DOUT;

数电设计任意模值的计数器..

课程设计(论文) 课程名称:数字电子技术基础 题目:设计任意模值的计数器 院(系): xxxxxx 专业班级: xxxxxxxx 姓名: xxx 学号: xx 指导教师: xx 2014年1月3日

任务书 1、课程设计(论文)题目: 设计任意模值的计数器。(模35计数器) 2、本次课程设计(论文)应达到的目的: a)熟悉74LS90计数器的基本功能; b)掌握综合应用理论知识和中规模集成电路设计方法; c)掌握调试及电路主要技术指标的测试方法; d)实现用74LS90计数器输出8421BCD码模35置9计数器; e)作出模拟仿真电路图,完成本次课程设计。 3、本次课程设计(论文)任务的主要内容和要求 主要内容: (1)通过查阅资料,了解74LS90计数器的功能和各个引脚的作用; (2)利用两片中规模集成电路计数器74LS90,实现模35置9计数器,其计数范围在00——34; 课程设计要求: (1)独立完成本次课程设计的主要内容; (2)设计出仿真电路具有清零、预置数、停止等功能;预置数为99; (3)调试结果,分析调试中发现的问题及故障排除方法; (3)将结果输出到仿真电路图的晶体管上,显示出来; (4)写出设计总结报告。

摘要 Multisim 11.0提供了丰富的元器件。这些元器件按照不同的类型和种类分别存放在若干个分类库中。这些元件包括现实元件和虚拟元件 计数器是一种最简单的基本运算,计数器在数字系统中主要是对脉冲信号个数进行计数,以实现测量、计数和控制功能,同时兼有分频的功能。计数器按计数进制分有二进制计数器,十进制计数器和任意进制计数器;按技术单元中触发器所接受计数脉冲和翻转顺序分有异步计数器、同步计数器;按计数供能分忧加法计数器,减法计数器,可逆计数器等。 本次课程设计,是要我利用MULTISIM 11.0仿真模拟软件,根据设计要求设计利用74LS90计数器实现8421BCD码的异步置9模35加法计数器,了解计数器的工作原理。74LS90计数器是异步二——五——十计数器,而8421BCD码是最基本和最常用的BCD码,它和四位自然二进制码相似。我们将通过此次课程设计,加强对数字电子技术的理解,进一步巩固课堂上学到的理论知识。 关键词:Multisim11.0,计数器,8421BCD码的异步置9模35,74LS90

硬件设计—10进制计数器设计

实验一 10进制计数器设计 实验目的:掌握软件设计流程,掌握电路图输入方式,了解和熟悉实验箱。 实验内容:利用74161实现十进制计数,并使用7448实现七段代码显示器显示结果。 原理图:如下图所示 仿真结果及结果分析:通过实验,可以得到如下两张仿真结果图。以下分别是在CLR为低电平和CLR为高电平时的输出(Q[1]-Q[7])波形图和仿真结果图,通过实验以及参考七段显示译码器7448的功能表可知:当CLR为低电平时为十六进制计数功能,即仿真结果图上面会从7E-00计数,即对应的为0-15的数值计数,直到00H即对应值为15时再从0开始计数到15,对应如下仿真图(1);当CLR为高电平时为十进制计数功能,即仿真结果上面会从7E-73计数,即对应0-9的数值计数,直到73H即对应值为9时再从0开始计数到9,对应如下仿真图(2)。综上所述,如下两张仿真图所示的内容可知,实验结果正确,符合预期的结果。

仿真图(1) 仿真图(2)管脚锁定说明:

硬件测试情况说明及结果分析: 根据原理图上的芯片引脚功能按照设好的引脚用线连接好电路,输出的Q[1]-Q[7]接到七段显示译码器上面,对应芯片的引脚分别为52、53、54、55、58、59、60,CLK的脉冲信号接芯片引脚11,给的脉冲可自己给定,尽量选择让数字变化的情况可以看清的脉冲信号,而CLR接芯片引脚143然后接到控制开关L8,通过L8来控制CLR为高电平或者低电平。然后把电脑里面的程序和引脚配置情况加载到实验箱的芯片上,在给定脉冲后,当开关L8即CLR接低电平时,七段显示译码器上显示的为16进制数从0-15计数,计数到15后再从0开始到15计数;而当控制L8即CLR接高电平时,七段显示译码器上显示的为10进制数从0-9计数,计数到9时再从0开始新一轮的计数。通过实验观察可知所做实验符合预期的结果,实验成功。 实验总结: 通过这次实验,我们学会了利用74161实现十进制和十六进制计数,并使用7448实现七段代码显示器显示结果。在实验过程中,遇到最大的问题就是对所使用的芯片功能没能了解透彻以及实验过程中的步骤没能完全记清楚而导致实验不能够很顺利的进行,需要临时查找资料,还好之后在老师的帮助和讲解下最后还是成功的完成了实验,得到了与预期一致的正确结果,同时也学到了更多的相关知识。同时,我们也意识到了实践的重要性,很多东西在学理论知识时感觉自己学会了,到了自己动手实践时却不一定能成功,这也是为什么动手实践非常重要的原因,

相关文档
最新文档