答:同步清零指在清零信号有效的条件下,需等到下一个时钟脉冲到来计数器才清零。异步清零是只要清零信号有效则即刻清零。同步置数指置数方式下,下一个时钟脉冲到来时,输出端反映输入端数据的状态。异步置数指只要置数信号到来,计数器立即置数,无需等下一个时钟脉冲到来。
题5.5 TTL集成电路74161与74163有什么不同,如果写出74163的VHDL程序,怎样修改74161的VHDL程序?
答:74161与74163唯一的不同是复位方式不同,若写出74163的VHDL程序,只需在74161的VHDL程序基础上,加上判断时钟的到来即可。如: IF CP=‘1’AND CP′EVENT。
题5.6 在时序模块的国标符号控制块中,相互关联方式有哪些?
答:在时序模块的国标符号控制块中。有以下几种关联:与、非、关联、控制、置位、复位、使能和工作模式。
题5.7 计数器可作为数字分频用,从本质上讲,两者有何区别?
答:计数器和分频器从本质上讲,两者区别在于其作用上,计数器用电路的状态来反映计数值。而分频器则利用状态的变化来反映输出频率与输入时钟脉冲间的比例关系。
题5.8 试考虑有一个74161和一个4线-16线译码器设计一个4位12比特序列码发生器。
答:首先将74161接成12进制计数器。再将74161的4个触发器输出端Q3Q2Q1Q0
接在4线-16线译码器的4个地址输入端A3A2A1A0。4线-16线译码器的输出配备四个多扇入的与门或与非门可以完成四个不同的逻辑函数,实际上也是4位12比特序列码发生器。
题5.9 当设计两个1位十进制数相加,其和也是1位十进制数,并且显示七段发光管只有一个,你可能用到几个书中介绍的中规模时序模块?
答:有两种方法:一种方法是用无记忆的组合电路,另一种方法是用时序电路。 (1) 将十进制的加数和被加数输入到8线-3线编码器,其输出为两个4位二进制数。将这两个4位二进制数送到4位二进制加法器的输入,其输出则为和,再通过显示译码器送到显示七段发光管。这样的设计无记忆,只要将输入的加数和被加数按键放松,输出就不再显示和。共用到中规模组合电路5块。
(2) 第一次通过8线-3线编码器先输入被加数,用计数器记住第一次按键,并启动第一个寄存器,存入4位二进制加法器的输入端。第二次通过8线-3线编码器输入加数,用计数器记住第二次按键,并启动第二个寄存器,存入4位二进制加法器的另一个输入端。同时启动加法器,将和通过显示译码器送到显示七段发光管。这样的设计有记忆,用到了计数器和寄存器,输出显示两位十进制的和。共用到中规模组合电路7块。
题5.10 在设计某些时序电路(例如计数器、移位寄存器连接的计数器)时,会由于种种原因落入非工作状态,你应该如何考虑电路设计方案?
答:(1)设置正确的复位信息;
(2) 设置正确的预置信息;
(3)分析非工作状态,使其在有限个脉冲作用下进入工作状态。
习题题解
习题5.1 习题5.1图为一片4位二进制同步计数器(74161或74163),试分析下列各种连接图,可构成模几计数器,并写出态序表。
6
CTRDIV16 CTRDIV16 CTRDIV16 1 CT=0 CT=0 1 1 CT=0 M1 M1 CO CO M1 3CT=15 M2 CO M2 3CT=15 M2 3CT=15 G3 1 G3 1 G3 1 1 G4 G4 1 G4 CP C5/2,3,4+ 1 CP C5/2,3,4+ CP C5/2,3,4+ Q0 D0 Q0 D1,5D [1] Q0 0 0 1,5D [1] Q 1 D1 0 1,5D [1] & Q 1 D [2] ≥1 Q1 1 1 [2] Q2 D2 [2] Q2 D2 [4] 0 Q2 [4] D3 Q 3 0 [4] Q 3 D3 [8] Q [8] 0 3 [8] (a) (b) (c)
习题5.1图 用74161接成的电路
解:可以用如下两种方法:
(1) 题目中已知芯片的名称,在手册中查找集成芯片的符号和功能表,再根据电路的连接分析电路功能。
(2) 题目中已知芯片国标符号,根据符号可以知道集成芯片的的工作原理。 下面以第二种方式分析习题5.1图的功能。
首先观察总定性符号CTRDIV16,可知集成芯片是16进制计数器。符号控制框上的CT=0说明低电平有效的异步清零,并观察外部给的高电平,可知清零无效。
习题5.1图电路的反馈信号反馈到符号控制框上的M1和M2,低电平有效的M1是关联到时序块的数据输入端。当M1有效时,且CP时钟到来时,时序块的数据输入端的数据送到触发器的输出端。当M2有效时计数器按二进制计数。
以下按(2)的原则分析习题5.1图。习题5.1图(a)、(b)、(c)的态序表如习题5.1表(a)、(b)、(c)所示。 习题5.1表(a) 习题5.1表(b) 习题5.1表(c) N Q3 Q2 Q1 Q0 N Q3 Q2 Q1 Q0 N Q3 Q2 Q1 Q0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 1 0 0 1 0 1 0 0 0 1 2 0 0 1 0 2 0 0 1 1 3 0 1 0 0 2 0 0 1 0 3 0 1 0 0 4 0 1 0 1 3 0 0 1 1 4 0 1 1 0 5 0 1 1 0 4 0 1 0 0 5 0 1 1 1 6 0 1 1 1 7 1 0 0 0 6 1 0 0 0 5 0 1 0 1 8 1 0 0 1 7 1 0 1 0 6 0 1 1 0 9 1 0 1 0 8 1 0 1 1 7 0 1 1 1 10 1 1 0 0 9 1 1 0 0 11 1 1 0 1 8 1 0 0 0 10 1 1 1 0 12 1 1 1 0 9 1 0 0 1 11 1 1 1 1 13 1 1 1 1 分析题5.1图(a)为模10计数器(M=10),题5.1图(b)为模12计数器(M=12),题5.1图(c)为模14计数器(M=14)。
习题5.2 习题5.2图为一片4位二进制同步计数器(74161或74163),连成下面电路,试问可构成模几计数器,并写出态序表。
解:分析习题5.2图的方法和习题5.1图大致相同,所不同的是反馈到工作模式的信号不是由触发器的输出经组合电路反馈,而是从进位位经过非门反馈。属于后N
7
种状态计数的预置方法,其状态态序表如习题5.2表所示,可以看出M=12。
习题5.2表 习题5.2图态序表 N Q3 Q2 Q1 Q0
CTRDIV16 0 0 1 0 0 CT=0 1 1 0 1 0 1 M1 CO 1 2 0 1 1 0 M2 3CT=15
G3 1 3 0 1 1 1 G4 1 4 1 0 0 0 CP C5/2,3,4+ 5 1 0 0 1 Q0 6 1 0 1 0 1,5D [1] 0 Q1 7 1 0 1 1 [2] 0 Q2 8 1 1 0 0 1 [4] Q3 9 1 1 0 1 0 [8] 10 1 1 1 0
11 1 1 1 1
习题5.2图
习题5.3 用74193(双时钟可逆计数器)按习题5.3图所示外部连线,可构成模几计数器,写出态序表,并用VHDL语言实现习题5.3图功能。
习题5.3表 习题5.3图态序表 CTRDIV16 N QD QC QB QA 0 CT=0 CO 2+ 1 2CT=15 0 0 1 1 1 G1 BO 1 0 1 1 0 CP 1- 1CT=0 G2 2 0 1 0 1 G3[LOAD] 3 0 1 0 0 QA 4 0 0 1 1 3D [1] 1QB 5 0 0 1 0 1 [2] QC 6 0 0 0 1 1 [4] QD 7 0 0 0 0 0 [8]
习题5.3图
解:首先观察总定性符号CTRDIV16,可知集成芯片是16进制计数器。符号控制框上的CT=0说明高电平有效的异步清零,并观察外部给的低电平,可知清零无效。
习题5.3图电路的反馈信号反馈到符号控制框上的G3,低电平有效的G3关联到时序块的数据输入,且和时钟CP无关,因此属于异步清零。当此端信号为低电平时,时序块的数据输入端的数据送到触发器的输出端。当G3无效时计数器按二进制计数,G1端接高电平,G2接时钟时,为减计数功能。当计数到零时,BO输出为低电平。其输出反馈到G3,并重新预置开始新的循环。分析习题5.3图,得习题5.3表态序表,从态序表可以看出M=7。
用VHDL实现的习题5.3图如下。
LIBRARY ieee;
USE ieee.std_logic_1164.ALL; USE ieee.std_logic_unsigned.ALL; ENTITY ti53 IS
PORT(cp:IN std_logic;q:OUT std_logic_vector(3 DOWNTO 0)); END ti53;
ARCHITECTURE ti53_arc OF ti53 IS
SIGNAL load_s:std_logic:='0'; BEGIN
PROCESS(cp,load_s)
VARIABLE cnt:std_logic_vector(3 DOWNTO 0);
8
BEGIN
IF(load_s='0') THEN
cnt:=\END IF;
IF(cp'EVENT AND cp='1') THEN IF(cnt=\
load_s<='0'; ELSE
cnt:=cnt-'1';load_s <= '1'; END IF; END IF; q<=cnt;
END PROCESS; END ti53_arc;
习题5.4 用74193按习题5.4图所示外部接线,可构成模几计数器。
习题5.4表 习题5.4图态序表 N QD QC QB QA
0 0 0 1 1
CTRDIV16 1 0 1 0 0 0 CT=0 2 0 1 0 1 CO CP 2+ 2CT=15 3 0 1 1 0 G1 BO 1 1- 1CT=0 4 0 1 1 1
G2 5 1 0 0 0 G3[LOAD]
6 1 0 0 1 QA 7 1 0 1 0 13D [1] QB 8 1 0 1 1 1 [2] QC 9 1 1 0 0 0 [4]
QD 10 1 1 0 1 0 [8] 11 1 1 1 0 12 1 1 1 1 习题5.4图 解:分析习题5.4图的方法和习题5.3图大致相同。所不同的是当G3无效时计数器按二进制计数,G2端接高电平,G1接时钟时,为加计数功能。当计数到“1111”时,CO输出为低电平。其输出反馈到G3,并重新预置开始新的循环。分析习题5.4图,得态序表如习题5.4表所示,从态序表可以看出M=12。
习题5.5 分析习题5.5图所示电路为模几计数器,并写出态序表。
解:从习题5.5图中的总定性符CTR了解到电路是计数器,且时序块的上部是二进制,而下部是五进制。从控制块的Z3可知,当其有效时,关联到时序输出为9。但此电路置9无效。从控制块的CT=0可知,清零端信号有效时,触发器输出清零。
CTR CTR
& 3CT=0 & 3CT=0
0 0 & & Z3 Z3 0 0 DIV2 QA DIV2 QA + + 3D [1] 3D [1] 3CT=1 3CT=1 QB QB DIV5 DIV5 0 0 QC QC CP CP + + CT CT QD QD 2 2 3CT=4 3CT=4
(a) (b)
习题5.5图
9
习题5.5图(a)电路连成5421BCD码的输出形式,所以列出和分析态序表如习题5.5表(a)后,得到M=6,即模6计数器。习题5.5图(b)电路也连成5421BCD码的输出形式,所以列出和分析态序表如习题5.5表(b)后,得到M=9, 即模9计数器。
习题5.5表(a) 习题5.5表(b) N QA QD QC QB N QA QD QC QB 0 0 0 0 0
0 0 0 0 0 1 0 0 0 1
2 0 0 1 0 1 0 0 0 1 3 0 0 1 1 2 0 0 1 0 4 0 1 0 0 3 0 0 1 1 5 1 0 0 0
6 1 0 0 1 4 0 1 0 0
7 1 0 1 0 5 1 0 0 0 8 1 0 1 1 6 1 0 0 1 9 1 1 0 0
习题5.6 试用74161构成M=462计数器。 解:用三片74161用置位方式采用串并行进位结构,要预置的初态为4096-462=3634=111000110010,从3634到4095共462个状态,所以片(1)预置数0010。片(2)预置数0011。片(3)预置数1110,当计数器从该预置值计数到4096后,片(3)的进位输出经反相使各片重新预置,进入新一轮计数,电路如习图5.6图。 RD
CTRDIV16 CTRDIV16 CTRDIV16 CT=0 CT=0 CT=0 M1 M1 M1 CO 1 M2 3CT=15 M2 3CT=15 M2 3CT=15 1 1 1 G3 G3 G3 (1) (2) (3) 1 1 1 G4 G4 G4 C5/2,3,4+ C5/2,3,4+ C5/2,3,4+ CP Q0 Q4 Q8 0 1 0 1,5D [1] 1,5D [1] 1,5D [1] Q 1 Q5 Q9 1 1 1 [2] [2] [2] Q2 Q6 Q10 0 0 1 [4] [4] [4] Q3 Q7 Q11 0 0 1 [8] [8] [8]
习题5.6图 用后462种状态构成串并行计数电路
解本题还可利用并行进位结构、串行进位结构、用后462种状态的全并行结构等方法,请见参考文献[2]。 RD 习题5.7 试用74193构成 CTRDIV16 CTRDIV16 CT=0 CT=0 M=176计数器。 CO 2CT=15 2+ 2+ CP 2CT=15 G1 G1 解:用两片74193串行连 BO 1 1 1- 1- 1CT=0 1CT=0 接如习题5.7图所示。并用右片 G2 G2 G3[LOAD] G3[LOAD] 的进位输出端CO作为置数控制
Q0 Q4 信号,连接到两个芯片的置数端 3D [1] 3D [1] 0 1 Q1 Q5 [2] 0 [2] 1 G3。这时,计数器的模与置数N10 Q2 Q6 [4] 1 [4] 1 Q3 Q7 之间的关系为M=176=255-N10,
0 1 [8] [8] 因此N10=79,即置数01001111。 由习题5.7图可见,每片计数器 习题5.7图 并行构成176进制加法计数器
10