模111计数器
- 格式:doc
- 大小:145.71 KB
- 文档页数:8
5-1(1) 构造一个模为10的同步计数器,需要多少个触发器?(2) 下列中规模通用集成电路中,哪些属于时序逻辑电路:(a)4位计数器;(b)4位并行加法器;(c)4位寄存器;(d )4位数据选择器。
5-2(1) 同步时序逻辑电路中的存储元件可以是任意类型的触发器吗?(2) 下列触发器中,哪些可作为同步时序逻辑电路的记忆元件:(a)D-FF;(b)JK-FF;(c)T-FF;(d)基本RS-FF。
5-3 一个同步时序逻辑电路可以由哪三组函数表达式描述?5-4 某时序逻辑电路如题图所示,设电路现态0012=Q Q ,经过三个时钟脉冲作用后,电路的状态如何?题5-5图题5-4图 5-5 分析题图所示逻辑电路,说明该电路的逻辑功能。
5-6 分析题图所示逻辑电路,说明电路功能,并评价该设计的合理性。
5-7 分析题图所示异步时序逻辑电路。
要求:(1)作出状态表和时序图;(2)说明电路的逻辑功能。
题5-7图题5-6图5-8 如题图所示电路为D 触发器构成的计数器,试说明其功能;并画出在CP 脉冲作用下的输出波形。
5-9试列出如题图所示计数器的状态表,从而说明它是一个几进制计数器?题5-8图 题5-9图题5-10图 题5-11图5-10 如题图所示逻辑图为用两个中规模集成同步十进制加法计数器构成的一个六十进制计数器。
试分析其工作原理。
5-11 在题图所示电路中,x 为控制端,、为输出端,CP 为一连续脉冲。
(1)画出状态转换图;(2)说明电路的功能。
1Q 2Q 5-12 一时序电路如题图所示。
假设触发器的初始状态000123=Q Q Q 。
(1)画出状态转换图和时序图;(2)说明电路的逻辑功能。
5-13 已知某同步时序逻辑电路的激励函数和输出函数表达式为题5-12图 121221Q Q X Q Q Q X D ++=1222Q XQ Q X D +=2Q Z =其中x 为外部输入,Z 为外部输出,、为状态变量,、为D 触发器的输入。
南昌大学实验报告学生姓名:柳宇航学号:6102113025专业班级:通信工程中兴131班实验类型:□验证□综合□设计□创新实验日期:2015.10.22实验成绩:实验一模可变计数器的设计(一)实验要求完成设计、仿真、调试、下载、硬件测试等环节,在EDA实验装置上实现模可变计数器功能,具体要求如下:1、设置一个按键控制改变模值,按键按下时模为10-99之间(具体数值自行确定)的数,没按下时模为100-199之间(具体数值自行确定)的数;2、计数结果用三位数码管十进制显示。
(二)实验步骤1.选定M=0时,实现模值为17的计数;M=1时,实现模值为119的计数。
2.建立工作库文件夹,输入计数器的Verilog代码并存盘。
3.选目标器件CycloneII中的EP2C35F672C8并编译。
4.建立仿真波形文件,设置仿真结束时间和输入条件,进行波形仿真。
图1仿真波形的建立图2M=0时模17计数仿真M=0时,计数到16,灯亮M=1M=0复位M=1时,计数到118,灯亮图3M=1时模119计数仿真波形分析:当RST为高电平时,计数清零。
当RST为低电平,使能位EN为高电平时,开始计数:模控制位M为低电平时,则计数器记到16时归0后重新计数,实现模为17的计数功能;模控制位M为高电平时,则计数器记到118时归0后重新计数,实现模为119的计数功能。
当EN 为低电平时,暂停计数。
5.管脚分配clk PIN_C13en PIN_A5m PIN_B5rst PIN_A6sel[0]PIN_G18sel[1]PIN_G17sel[2]PIN_G16SG[0]PIN_F13SG[1]PIN_F14SG[2]PIN_F15SG[3]PIN_E15SG[4]PIN_F16SG[5]PIN_F17SG[6]PIN_E18SG[7]PIN_F18d[0]PIN_H106.下载测试。
下载到实验箱上测试,下推K7(M=0),可以从实验箱数码管观察到0~16模17计数。
课程设计任务书学生姓名:专业班级:指导教师:工作单位:信息工程学院题目: 模可变16位加法计数器设计初始条件:可用仪器: PC机(Quartus II软件)硬件:EDA-IV型实验箱。
要求完成的主要任务:(1)设计任务设计可变16位加法计数器,可通过3个选择位M2、M1、M0实现最多8种不同模式的计数方式,例如可构成5、10、16、46、100、128、200、256进制,共8种计数模式。
(2)时间安排:2012.12.17 课程设计任务布置、选题、查阅资料2012.12.18-21 设计,软件编程、仿真和调试2012.12.22 2012.12.23 实验室检查仿真结果,验证设计的可行性和正确性,熟悉实验平台和试验箱2012.12.24-26 设计的硬件调试2012.12.27-28 机房检查设计成果,现场演示硬件实物,提交设计说明书及答辩指导教师签名:年月日系主任(或责任教师)签名:年月日目录摘要.................................... 错误!未定义书签。
Abstract (II)1 计数器的工作原理 (1)2 设计原理 (3)2.1 整体设计原理 (3)2.2 单元模块的设计 (4)2.2.1 计数模块的设计 (4)2.2.2显示模块的设计 (5)2.2.3分频模块的设计 (5)2.2.4 顶层模块的设计 (5)3 单元模块元件原理图 (6)4 电路系统的功能仿真 (8)5 硬件调试 (10)6 个人小结 (12)参考文献 (13)附录 (14)摘要计数器的种类按照计数器中的触发器是否同时翻转分类,可将计数器分为同步计数器和异步计数器两种,如果按照计数过程中数字增减分类,又可将计数器分为加法计数器、减法计数器和可逆计数器,随时钟信号不断增加的为加法计数器,不断减少的为减法计数器,可增可减的叫做可逆计数器。
计数器不仅能用于对时钟脉冲计数,还可以用于分频、定时、产生节拍脉冲和脉冲序列以及进行数字运算等。
附录一:基于原理图的模100BCD码计数器的设计1目的:1)练习用原理图输入设计;2)如何用数码管和二极管显示设计;3)如何仿真;4)如何绑定管脚。
2过程2.1新建原理图文件。
点击file->new->block diagram file->OK,如图2-1,图2-2,出现图2-3。
图2-1 新建文件。
点击file->new。
图2-2 新建原理图文件。
点击block diagram file->OK。
图2-3. 原理图设计输入区域。
双击工作区域。
图2-4 宏单元输入界面。
点击Library下的+。
图2-5 选用宏单元。
键入74160。
2.2 输入设计。
双击图2-3的工作区,出现图2-4。
在+megafunctions,+others,+primitives中寻找需要的宏单元。
也可在Name下输入知道名字的宏单元,如“74160”,“GND”,“VCC”等,如图2-5。
输入设计,如图2-6。
存盘为m100_jishuqi,如图2-7。
图2-6 模100BCD码计数器。
图2-7 保存文件。
2.2为本设计建立工程,并放在文件夹..\m100_jishuqi\中。
在图2-7中点击是(或点击file->newproject)出现图2-8;点击next,出现图2-9;输入工程名字和顶层设计名字;点击next,出现图2-10,加入设计文件;点击next,出现图2-11,选择器件(cycloneII系列EP2C70F896C6);点击next->next->finish。
图2-8 新建工程。
点击Next。
图2-9 输入工程名字和顶层设计名字:mo100_jishuqi。
图2-10 把设计文件加入工程。
图2-11 选择器件:cycloneII系列EP2C70F896C6。
2.3把FPGA没有用到的引脚设定为 as input tri-stated。
点击assignment->device,如图2-12;点击Device and Pin Options,如图2-13所示,把Unused Pins设定为as input tri-stated。
模块模块型接线方式说明SM模块型号接线方式说明再进行描述之前,我们首先介绍通道,一个通道即为一个点,可为AI,AO,DI,DO。
1、6ES7131-4BD01-0AA04通道数字量输入4个通道分别为1,5,2,6。
额定输入电压24VDC适用于开关以及接近开关。
如图:图上1、5、2、6,分别代表一个数字量输入点。
图中的断开处可以是一个开关,一个按钮,当开关处于闭合状态时,我们将万用表的一只表笔处于1(5,2,6)端子处,另一只表笔接地或接0V可测得24V电压。
可用终端模块TM-E15S24-01(6ES7193-4CB20-0AA0)。
终端模块即我们所说的插槽,螺钉型的接线端。
也可用TM-E15S26-A1(6ES7193-4CA40-0AA0),该类型的终端模块带有A7,A3,A4,A8接线端。
2、6ES7132-4BD02-0AA04通道数字量输出(24V/0.5A)4个通道分别为(1,3)(5,7)(2,4)(6,8)。
带四个输出的数字电子模块,每个输出的输出电流为0.5 A,额定负载电压24VDC,适用于电磁阀、直流接触器和指示灯。
如图:该类型模块的5(1,2,6)输出一个高电平(24V)进设备,然后回到该类型模块的低电平7(3,4,8)。
当有信号输出时我们可在5(1,2,6)和7(3,4,8)处测得24V电压。
3、6ES7132-4BD32-0AA0个通道分别为(1,3)(5,7)(2,4)(6,8)。
如图:4通道数字量输出(24V/2A)该类型模块与2相同,只是为输出24V,2A。
接线方式同2。
4、6ES7134-4GB11-0AB02通道模拟量输入(4线制)两个通道分别为(1,2)(5,6)。
如图:4线制即设备的单独供电需要一对线信号的输入需要一对线。
设备的正(4-20ma+)接模块的1(5),设备的负(4-20ma-)接模块的2(6)。
当我们取下1(5)处的线时,并接到万用表的红表笔上,把表的黑表笔接到1(5)上,我们可测到正的4-20ma,如果不为正的毫安值,必须进行调换。
第六章 时序逻辑电路6-1 分析题图6-1所示的同步时序电路,画出状态图。
题图6-1解: 11221211n n n n J K Q T Q Z Q Q ====,,,,11111111212n n n n nn n nQ J Q K Q Q Q Q Q Q +=+=+=+122212n n n n Q T Q Q Q +=⊕=⊕,状态表入答案表6-1所示,状态图如图答案图6-1所示。
答案表6-1答案图6-16-2 分析题图6-2所示的同步时序电路,画出状态图。
题图6-2 解:按照题意,写出各触发器的状态方程入下:11J K A ==,21n J Q =,21K =,1212n n nQ Q Q +=,111n n Q A Q +=⊕状态表入答案表6-2所示,状态图如图答案图6-2所示。
答案表6-2答案图6-2Q 2n Q 1n Q 2n+1 Q 1n+1 Z0 0 0 1 1 0 1 1 0 1 1 1 1 1 0 0 0 0 0 1A Q 2n Q 1n Q 2n+1 Q 1n+1 0 0 0 0 0 1 0 1 0 0 1 1 1 0 0 1 0 1 1 1 0 1 1 1 0 0 1 1 0 0 0 1 0 1 1 0 0 1 0 0CLK D 1D 2D 3Q 3Q 2Q 1Q 2Q 3Q 1Q 1Q 2Q 3&6-3分析题图6-3所示的同步时序电路,画出状态图。
题图6-3解:按照题意,写出各触发器的状态方程入下:1112213232131n n n nn J K T J K Q Q T J Q Q K Q ========1,,, 133********n n n n n n n nQ J Q K Q Q Q Q Q Q +=+=+ 1222132n n n n nQ T Q Q Q Q +=⊕=⊕ 1111111n n n n Q T Q Q Q +=⊕=⊕=答案表6-3答案图6-36-4 在题图6-4所示的电路中,已知寄存器的初始状态Q 1Q 2Q 3=111。
数字逻辑电路王秀敏第8章7.10第⼋章检测题⼀、可以⽤来暂时存放数据的器件叫寄存器。
⼆、移位寄存器除寄存数据功能外,还有移位功能。
三、某寄存器由D触发器构成,有4位代码要存储,此寄存器必须由 4 个触发器构成。
四、⼀个四位⼆进制加法计数器,由0000状态开始,问经过18个输⼊脉冲后,此计数器的状态为 0010 。
五、n级环形计数器的计数长度是n,n级扭环形计数器的计数长度是2n。
六、集成计数器的模值是固定的,但可以⽤清零法和置数法来改变它们的模值。
七、通过级联⽅式,把两⽚4位⼆进制计数器74161连接成为8位⼆进制计数器后,其最⼤模值是 256 ;将3⽚4位⼗进制计数器74160连接成12位⼗进制计数器后,其最⼤模值是4096 。
⼋、设计模值为38的计数器⾄少需要 6 个触发器。
习题[题8.1] 试画出⽤2⽚74LS194A 组成8位双向移位寄存器的逻辑图。
74LS194A 的功能表见表8.1.4。
解:电路逻辑图如图A8.1所⽰图A8.1[题8.2] 图P8.2所⽰电路是⽤8选1数据选择器74LS151和移位寄存器CC40194组成的序列信号发⽣器。
试分析在C P 脉冲作⽤下电路的输出序列信号(Y )。
图P8.2解:74LS194A 组成3位扭环形计数器210Q Q Q :000→001 →011 →111 →110 →100 →000,因此74LS151输出013764Y D D D D D D …=111100…。
[题8.3] 分析图P8.3的计数器电路,画出电路的状态转换图,说明这是多少进制计数器。
⼗六进制计数器74161的功能表如表8.2.2所⽰。
图P8.3解:采⽤同步预置数法,31LD Q Q =。
计数器起始状态为0011,结束状态为1010,所以该计数器为⼋进制加法计数器。
状态转换图略。
[题8.4] 分析图P8.4的计数器电路,说明这是多少进制的计数器,并画出电路的状态转换图。
⼗进制计数器74160的功能表如表8.2.6所⽰。
实验八计数器一、实验目的1.熟悉由集成触发器构成的计数器电路及其工作原理。
2.熟悉掌握常用中规模集成电路计数器及其应用方法。
二、实验原理和电路所谓计数,就是统计脉冲的个数,计数器就是实现“计数”操作的时序逻辑电路。
计数器的应用十分广泛,不仅用来计数,也可用作分频、定时等。
计数器种类繁多。
根据计数体制的不同,计数器可分成二进制(即2”进制)计数器和非二进制计数器两大类。
在非二进制计数器中,最常用的是十进制计数器,其它的一般称为任意进制计数器。
根据计数器的增减趋势不同,计数器可分为加法计数器—随着计数脉冲的输入而递增计数的;减法计数器—随着计数脉冲的输入而递减的;可逆计数器—既可递增,也可递减的。
根据计数脉冲引入方式不同,计数器又可分为同步计数器—计数脉冲直接加到所有触发器的时钟脉冲(CP)输入端;异步计数器—计数脉冲不是直接加到所有触发器的时钟脉冲(CP)输入端。
1.异步二进制加法计数器异步二进制加法计数器是比较简单的。
图是由4个JK(选用双JK74LS112)触发器构成的4位二进制(十六进制)异步加法计数器,图和(c)分别为其状态图和波形图。
对于所得状态图和波形图可以这样理解:触发器FF O(最低位)在每个计数沿(CP)的下降沿(1 → 0)翻转,触发器FF1的CP端接FF0的Q0端,因而当FF O(Q O)由1→ 0时,FF1翻转。
类似地,当FF1(Q1)由1→0时,FF2翻转,FF2(Q2)由1→0时,FF3翻转。
4位二进制异步加法计数器从起始态0000到1111共十六个状态,因此,它是十六进制加法计数器,也称模16加法计数器(模M=16)。
从波形图可看到,Q0 的周期是CP周期的二倍;Q1 是Q0的二倍,CP的四倍;Q2是Q1 的二倍,Q0的四倍,CP的八倍;Q3是Q2的二倍,Q1的四倍,Q0的八倍,CP的十六倍。
所以Q0 、Q1、Q2、Q3分别实现了二、四、八、十六分频,这就是计数器的分频作用。
实 验 报 告实验日期: 学 号:姓 名:实验名称:模111计数器总 分:一、实验原理计数器是一种常用的可统计时钟脉冲个数的时序逻辑器件。
计数器中的“数”是触发器的状态组合,即编码。
计数器循环一次所包含的状态总数就称作模。
计数器应用广泛,适用于计数、分频、运算、定时、脉冲产生等。
计数器种类繁多,按级联方式可分为同步计数器和异步计数器;按数字增减方式可分为加法计数器、减法计数器和可逆计数器。
按编码方式可分为二进制计数器、十进制计数器等。
二、实验框图三、实验设计对于模111计数器的三位数字采用三个模10计数器和设置计数清零的方法,分别控制模111计数器的三位。
设置时钟信号clock ,清零端aclr ,时钟信号使能端clk_en ,输入端cin ,计数使能端cnt_en ,进位输出端cout ,数值输出端q (4位二进制表示0-9)。
运用语句b(0) and s(0) and g(0),即计数到111时,aclr 清零有效;b(0) and s(0) and (not g(0)),即计数到110时,cout 输出1即成功进位。
(1)模10计数器VHDL (LPM 定制)LIBRARY ieee;USE ieee.std_logic_1164.all; LIBRARY lpm;USE lpm.all; ENTITY cnt10 IS PORT (aclr : IN STD_LOGIC ;时钟信号clk 模4计数器2-3译码器确定位选时钟信号clock 模111计数器3选1多路选择器七段译码器确定段选cin : IN STD_LOGIC ;clk_en : IN STD_LOGIC ;clock : IN STD_LOGIC ;cnt_en : IN STD_LOGIC ;cout : OUT STD_LOGIC ;q : OUT STD_LOGIC_VECTOR (3 DOWNTO 0) );END cnt10;ARCHITECTURE SYN OF cnt10 ISSIGNAL sub_wire0 : STD_LOGIC ;SIGNAL sub_wire1 : STD_LOGIC_VECTOR (3 DOWNTO 0); COMPONENT lpm_counterGENERIC (lpm_direction : STRING;lpm_modulus : NATURAL;lpm_port_updown : STRING;lpm_type : STRING;lpm_width : NATURAL);PORT (cin : IN STD_LOGIC ;clk_en : IN STD_LOGIC ;aclr : IN STD_LOGIC ;clock : IN STD_LOGIC ;cout : OUT STD_LOGIC ;q : OUT STD_LOGIC_VECTOR (3 DOWNTO 0);cnt_en : IN STD_LOGIC);END COMPONENT;BEGINcout <= sub_wire0;q <= sub_wire1(3 DOWNTO 0);lpm_counter_component : lpm_counterGENERIC MAP (lpm_direction => "UP",lpm_modulus => 10,lpm_port_updown => "PORT_UNUSED",lpm_type => "LPM_COUNTER",lpm_width => 4)PORT MAP (cin => cin,clk_en => clk_en,aclr => aclr, clock => clock, cnt_en => cnt_en, cout => sub_wire0, q => sub_wire1 ); END SYN;(2)模111计数器 library ieee;use ieee.std_logic_1164.all; entity cnt111 isport(clock,aclr,clk_en,cnt_en,cin:in std_logic; bw,sw,gw:out std_logic_vector(3 downto 0); cout:out std_logic); end cnt111; architecture arch of cnt111 iscomponent cnt10port(aclr:in std_logic; cin:in std_logic; clk_en:in std_logic; clock:in std_logic; cnt_en:in std_logic; cout:out std_logic; q:out std_logic_vector (3 downto 0)); end component;signal aclr1:std_logic; signal c1,c2,c3:std_logic;signal b,s,g:std_logic_vector(3 downto 0); beginx1:cnt10 port map(aclr or aclr1,cin,clk_en,clock,cnt_en,c1,gw); x2:cnt10 port map(aclr or aclr1,c1,clk_en,clock,cnt_en,c2,sw); x3:cnt10 port map(aclr or aclr1,c2,clk_en,clock,cnt_en,c3,bw); aclr1<=bw(0) and sw(0) and gw(0);cout<=bw(0) and sw(0) and (not gw(0));end arch;bw 表示计数器百位数值,sw 表示计数器十位数值,gw 表示计数器个位数值,皆为四位二进制 c1控制个位数值的模10计数器的输出,c2控制十位数值的模10计数器的输出,c3控制百位数值的模10计数器的输出 cin 为控制个位数值的模10计数器的输入,其输出c1作为控制十位数值的模10计数器的输入,其输出c2作为控制百位数值的模10计数器的输入 计数至110,cout 输出1,即进位。
计数至111,实现自动清零功能(3)仿真验证参数设置----End Time:3μsGrid Size:10nsclock、aclr、cin、clk_en、cnt_en设置为十进制bw、sw、gw、设置为十进制cout设置为二进制计数器计数到110自动清零,且cout标记进位成功仿真分析:遇到时钟信号clock上升沿,清零信号aclr=0无效,时钟使能端clk_en=1有效,计数使能端cnt_en=1有效时,模111计数器行驶加法计数功能。
由仿真图得,个位数值增加1,当数值为9的时候,个位实现自动清零功能,并且十位数值增加1。
同理,当十位数值为9,个位数值为9时,十位和个位实现自动清零功能,并且百位数值增加1。
模111计数器计数范围为0~110,当计数至110时,下一步计数清零即从0开始重新计数,依次循环。
(4)顶层设计scan_led3顶层图,如图所示元件例化VHDLlibrary ieee;use ieee.std_logic_1164.all; use ieee.std_logic_arith.all; use ieee.std_logic_unsigned.all;entity counter111 isport(clock,clk,aclr,clk_en,cnt_en,cin:in std_logic; q:out std_logic_vector(6 downto 0); bsg:out std_logic_vector(2 downto 0); cout:out std_logic);end counter111;architecture bhv of counter111 iscomponent cnt111port(clock,aclr,clk_en,cnt_en,cin:in std_logic;bw,sw,gw:out std_logic_vector(3 downto 0); cout:out std_logic);end component;component scan_led3port ( clk:in std_logic;bai,shi,ge:in std_logic_vector(3 downto 0);q:out std_logic_vector(6 downto 0); bsg:out std_logic_vector(2 downto 0)); end component;signal bai,shi,ge:std_logic_vector(3 downto 0);q 为数码管显示段选,共7段bsg 为数码管显示位选,共3位clk 为确定位选的时钟信号 bai 、shi 、ge 分别为百位、十位、个位位选信号beging1:cnt111 port map(clock,aclr,clk_en,cnt_en,cin,ge,shi,bai,cout);g2:scan_led3 port map(clk,bai,shi,ge,q,bsg); end bhv;功能仿真 End Time:3μs Grid Size:10ns仿真结论:仿真结果与模111计数器功能一致(5)管脚分配(小实验板)备注:要求位选时钟信号clk 为高频,设置为PIN_125、段选时钟信号clock 频率略低,设置为PIN_122。
用g1、g2命名路径,并确定其功能(6)下载验证下载现象:设置适宜的时钟频率clk和clock,且将aclr设置为高电平,cnt_en设置为高电平,clk_en设置为高电平,cin设置为高电平,数码管显示“000”,并从“000”开始计数,同时可以观察到数码管显示数值每隔相同的时间间隔,数码管显示的数值增大1。
当计数进行到任意时刻时,将aclr的管脚设置为低电平时,数码管重新显示为“000”,若再将aclr的管脚设置为高电平时,数码管重新从“000”开始计时。
下载结论:下载现象与仿真现象相符,且实现模111计数器的功能。
四、实验日志(1)模10计数器采用LPM定制的方法,根据系统内置的输入输出端,端口名称和课本中用VHDL编写的模10计数器略有不同;(2)开始定制的模10计数器没有输入端cin,导致在仿真模111计数器的时候,不能实现加法计数的功能,因为控制十位、百位的模10计数器必须有输入端,且输入端为前一位模10计数器的输出端;(3)设计模111计数器的过程中,实现自动清零功能的时候,开始运用if语句,因为无process(),导致语法错误。