当前位置:文档之家› 基于FPGA十进制同步计数器

基于FPGA十进制同步计数器

基于FPGA十进制同步计数器
基于FPGA十进制同步计数器

十进制同步计数器

一、实验目的

1.学习十进制同步计数器的Verilog硬件设计

2.学会并掌握Quartus II软件的使用

3.学会并掌握modelsim仿真软件的使用

二、实验原理

进制计数器具有电路结构简单、运算方便等特点,但是日常生活中我们所接触的大部分都是十进制数,特别是当二进制数的位数较多时,阅读非常困难,还有必要讨论十进制计数器。在十进制计数体制中,每位数都可能是0,1,2,…,9十个数码中的任意一个,且“逢十进一”。根据计数器的构成原理,必须由四个触发器的状态来表示一位十进制数的四位二进制编码。

第2个计数脉冲来到后,其状态为0010。以下类推,可以得到如表1所示的状态表。但需注意:在第9个脉冲来到后,亦即计数器处于1001态时,低电平封住了F2的置1端,Q1的高电平又使K4=1,故第十个计数脉冲来到后,F2、F3状态不变,F1、F4同时置0,计数器跳过多余的6个状态,完成一次十进制计数循环。

表1 同步十进制加法计数器状态表

为了满足十进制加法计数器的原理,本实验用Verilog程序在FPGA/CPLD 中来实现。首先设计一个程序,程序为脉冲输入,设输出的四位码为q[3:0],十进制计数值为count,脉冲上升沿时q值+1,直到q=9时count=1,q置零重新开始计数直至下一个q=9,count=2,依次循环。

三、实验任务

1.根据实验目的编写verilog程序

2.将设计好的Verilog译码器程序在Quartus II上进行编译

3.对程序进行适配、仿真,给出其所有信号的时序仿真波形图(注意仿真波形

输入激励信号的设置)。本实验要求自己设置clr值,理解清零的意义

四、实验步骤:

1.建立工作库文件和编辑设计文文件

任何一项设计都是一项Project(工程),而把一个工程下的所有文件放在一个文件夹内是一个非常好的习惯,以便于我们整理,利用和提取不同工程下的文件,而此文件夹将被EDA软件默认为Work Library(工作库),所以第一步先根据自己的习惯,建立个新的文件夹。

(1)新建文件夹:在E盘建立并保存工程,文件夹取名myproject,工程取名为cnt10_1

(2)输入源程序:打开Quartus II,选择菜单File-->New-->Design Files-->VerilogHDL File-->OK(如下图所示)

代码如下:

module cnt10_1(clr, clk, q, cout);

input clr, clk;

output[3:0] q;

output cout;

reg[3:0] q;

reg cout;

always @(posedge clk)

begin

if (clr) q = 0;

else begin

if (q == 9) q = 0;

else q = q + 1;

if (q == 0) cout = 1;

else cout = 0;

end

end

endmodule

(3)保存文件:完成一步就保存一步是一个好习惯,这样即使出现意外情况,也不至于以前的努力付诸东流。选择File-->Save as,选择保存路径,即刚才新建的文件夹myproject,文件名应与实体名保持一致,即cnt10_1,点击保存后会跳出“Do you want to create a new project with this file?”选择“是”,则进入如下界面

点击Next,进入“工程设置”对话框,如图所示

第一行表示工程所在的文件夹,第二行为工程名,可以与顶层文件的实体名保持一致,也可以另取别的名字,第三行为当前工程顶层文件的实体名。

点击next,进入ADD FILE对话框,如图所示,单击Add All 按钮,将工程

相关的所有VHDL文件加进工程,也可以单击“Add...”选择性加入,按此步骤建立工程,工程已经自动将所有文件加进去了,可以直接点击next,当先直接建立工程时,需要自己添加。

(4)选择目标芯片:我们选用的是CycloneIII系列的EP3C55F484C8,在Family栏选择芯片系列——CycloneIII,在窗口右边的三个下拉列表框选择过滤条件,分别选择Package为FBGA、Pin count为484和Speed grade为8,点击Next,如图所示

(5)工具设置:进入EDA工具设置窗口,有三个选项,分别是选择输入的HDL类型和综合工具、选择仿真工具、选择时序分析工具,这是除Quartus II 自含的所有设计工具以外的外加的工具,如果不作选择的,表示仅选择Quartus II自含的所有设计工具,本次不需要其他的设计工具,可以直接点击Next

(6)结束设置:进入“工程设置统计”窗口,列出了与此工程相关的设置情况,

设置完成,点击Finish。

2.编译

配置好后就可以进行编译了,点击Processing Start Compilation命令,启动全程编译编译成功后的界面如图所示

3.时序仿真

(1)打开波形编辑器:File-->New-->Verification/Debugging Files-->Vector Waveform-->OK,即出现空白的波形编辑器,如图所示

(2)设置仿真时间区域:Edit-->End Time在Time栏中输入50,单位选择“us”,点击确定并保存波形文件

(3)将工程cnt10_1的端口信号名选入波形编辑器中:View-->Utility windows-->Node Finder,在Filter框中选Pins:all(通常是默认选项),然后点击List,则显示出了所有引脚,如图所示

将重要的端口名拖进波形编辑器后关闭窗口

(4)编辑输入波形:首先进行总线数据格式设置和参数设置:点击信号左边的+号,能展开此总线中的所有信号;如果双击此+号左边的信号标记,将弹出对该信号数据格式设置的Node Properties对话框,在该对话框的Radix下拉列表中有四种选择,这里可选择二进制Binary表达方式。

其次输入波形数据:用鼠标在图所示信号名的某一数据区拖拉出来一块蓝色区域,然后单击左侧工具栏的问号(?)按钮,在弹出窗口输入数据,继而在不同区域设置不同数据。本设计不需要输入数据,脉冲及输入。

(5)仿真

仿真器参数仿真:选择Assignment→Settings命令,在Settings窗口下选择Category→ Simulator Settings。在右侧的Simulation mode下拉列表中选择Timing,即选择时序仿真,并选择仿真激励文件名cnt10_1.vwf。选择Simulation Period栏,确认选中了“Run simulation until all vector stimuli are used”。

(6)启动仿真器:Processing-->Start Simulation ,直至出现Simulation was successful,仿真结束,然后会自动弹出“Simulation Report”如图所示

4.应用RTL电路图观察器

Tools-->Netlist Viewers-->RTL Viewer,结果如图所示

四、实验总结

FPGA的学习是一个循序渐进的过程。一开始接触到Qurtus ii的时候觉得很困难,尤其是仿真,初次仿真的时候对参数的设置没有清晰的认识。通过对实验的一步步探究,开始逐渐了解软件的使用方法和技巧,并熟悉了仿真的方法和参数设置。

经过几周的学习,我觉得学习应该脚踏实地,FPGA的学习也一样。首先要做的是学习软件的使用,然后把课本上的知识应用在软件上,自己动手做一下程序,最好提前安装一下QuartusII,并练习程序编写,这样会对后续的深入学习有很大帮助。

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

同步十进制加法计数器优化设计

物理科学与技术学院课程设计 同步十进制加法计数器设计 班级: 指导老师: 学生:

集成电路设计愈发成为现代高科技的基石,尤其是芯片设计,几乎所有的电子系统都需要芯片,而在芯片逻辑功能中,计数器就显得非常重要。市场上多数同步十进制计数器多数采用JK触发器设计,而本设计采用D型主从触发器构成的同步十进制加法计数器。 本设计采用8421BCD码的编码方式来表示一位十进制数。设计中采用D型主从触发器构成T触发器来设计基本逻辑电路单元。本设计使用Microwind和Dsch软件完成原理图和版图设计。采用D型主从触发器,优化了同或门电路,大大减少MOS管数量,节省了版图面积,提高芯片性能。 关键词:同步十进制加法计数器Microwind Dsch D触发器T触发器

The integrated circuit design increasingly becomes the modern high tech the cornerstone, particularly the chip design, the nearly all electronic system needs the chip, but in the chip logical function, the counter appears very important. In the market the most synchronization decade counter uses the JK trigger design most, but this design uses D main the synchronized decimal base addition counter which constitutes from the trigger to compare the JK trigger to be possible to omit 80 MOS tubes. This design uses 8421BCD the code the encoding method to express a decimal digit. In the design uses D main to constitute the T trigger from the trigger to design the basic logic circuit unit. This design uses Microwind and the Dsch software completes the schematic diagram and the domain design. Uses D main from the trigger, optimized the same or gate electric circuit, reduces the MOS tube quantity greatly, has saved the domain area, enhances the chip performance. Keywords: Synchronized decimal base addition counter Microwind Dsch D trigger T trigger

十进制计数器

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与一个

实验二含异步清零和同步使能的加法计数器

实验二含异步清零和同步使能的加法计数器 一、实验目的 1、了解二进制计数器的工作原理。 2、进一步熟悉QUARTUSII软件的使用方法和VHDL输入。 3、时钟在编程过程中的作用。 二、实验原理 二进制计数器中应用最多、功能最全的计数器之一,含异步清零和同步使能的加法计数器的具体工作过程如下: 在时钟上升沿的情况下,检测使能端是否允许计数,如果允许计数(定义使能端高电平有效)则开始计数,否则一直检测使能端信号。在计数过程中再检测复位信号是否有效(低电平有效),当复位信号起作用时,使计数值清零,继续进行检测和计数。 其工作时序如图3-1所示: 图3-1 计数器的工作时序 三、实验内容 本实验要求完成的任务是在时钟信号的作用下,通过使能端和复位信号来完成加法计数器的计数。实验中时钟信号使用数字时钟源模块的1HZ信号,用一位拨动开关K1表示使能端信号,用复位开关S1表示复位信号,用LED模块的LED1~LED11来表示计数的二进制结果。实验LED亮表示对应的位为‘1’,LED灭表示对应的位为‘0’。通过输入不同的值模拟计数器的工作时序,观察计数的结果。实验箱中的拨动开关、与FPGA的接口电路,LED灯与FPGA的接口电路以及拨动开关、LED与FPGA的管脚连接在实验一中都做了详细说明,这里不在赘述。 数字时钟信号模块的电路原理如图3-2所示,表3-1是其时钟输出与FPGA的管脚连接表。

图3-2 数字时钟信号模块电路原理 信号名称对应FPGA管脚名说明 DIGITAL-CLK A14数字时钟信号送至FPGA的A14 表3-1 数字时钟输出与FPGA的管脚连接表 按键开关模块的电路原理如图3-3所示,表3-2是按键开关的输出与FPGA的管脚连接表。 图3-3 按键开关模块电路原理 信号名称FPGA I/O名称核心板接口管脚号功能说明S[0]PIN_AF5JP1_91‘S1’ Switch S[1]PIN_AH6JP1_93‘S2’ Switch S[2]PIN_AH7JP1_95‘S3’ Switch S[3]PIN_AH8JP1_97‘S4’ Switch S[4]PIN_AG10JP1_99‘S5’ Switch S[5]PIN_AG11JP1_101‘S6’ Switch S[6]PIN_AH14JP1_90‘S7’ Switch S[7]PIN_AG7JP1_92‘S8’ Switch

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

二位十进制计数器

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进制计数时,只要输出为

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

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

实验十进制加减法计数器

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

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

赣南师院物理与电子信息学院数字电路课程设计报告书 姓名:胡丹 班级:电气教育技术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;

相关主题
文本预览
相关文档 最新文档