D0=Q3。电路连接图如习题5.24(c)图所示,在电路图中为避免组合电路输出冒险,增加了一个D触发器对输出进行整形。
习题5.24表 习题5.24态序表 CP Q3 Q2 Q1 Q0 Z Q3 Q3 Q2 Q 2 0 Q1 0 0 0 0 1 Q1 00 01 11 10 00 01 11 10 Q0 Q0 1 0 0 0 1 1 00 D0 D4 D4 D0 00 1 0 × 0 2 0 0 1 0 0 01 D1 D5 D5 D1 01 3 0 0 1 1 1 1 0 × 1 4 0 1 0 0 0 11 11 D3 D7 D7 D3 1 1 × × 5 0 1 0 1 0 10 10 D2 D6 D6 D2 0 0 × × 6 0 1 1 0 0 7 0 1 1 1 1 (b) (a) 8 1 0 0 0 0 1 0 0 1 1 9 习题5.24图
&
MUX EN 0 A0 0 CTRDIV16 A1 0 G 1 CT=0 7 A2 2 M1 CO M2 3CT=15 Q3 0 1 G3 1D F 1 1 1 G4 0 2 CP C1 CP C5/2,3,4+ 1 3 0 4 Q0 0 5 1,5D [1] 0 Q 1 6 0 0 [2] 7 1 Q2 0 [4] Q 3 0 [8]
习题5.24(c)图
习题5.25 (1)将双时钟输入4位二进制同步可逆计数器74193设计成可控的、单时钟输入的可逆计数器。时钟输入端为CP,控制输入端为U/D。控制输入端为高电平时为加计数,低电平时为减计数。
(2)用VHDL程序实现(1)。 CTRDIV16 解:根据题意,若要实现加计数, 则 CPU?U/D?CP,同理,若要实 现减计数,
3D [1] U/D 1 ≥1 0 CPU ≥1 CP CPD 1 CT=0 CO 2+ 2CT=15 G1 BO 1- 1CT=0 G2 G3[LOAD] Q0 Q1 Q2 Q3 则 CPD?U/D?CP
习题5.25图可实现可控的单时钟可逆计数器。 用VHDL实现的程序如下。
LIBRARY ieee;
USE ieee.std_logic_1164.ALL; USE ieee.std_logic_unsigned.ALL; ENTITY keni IS
PORT(cp,ctrl:IN std_logic;
q:OUT std_logic_vector(3 DOWNTO 0));
END keni;
ARCHITECTURE keni_arc OF keni IS
SIGNAL q_s:std_logic_vector(3 DOWNTO 0):=\
21
习题5.25图
[2] [4] [8] BEGIN
q<=q_s;
PROCESS(cp,ctrl) BEGIN
IF(cp'EVENT AND cp='1') THEN IF(ctrl='1') THEN q_s<=q_s+'1';
ELSIF(ctrl='0') THEN q_s<=q_s-'1'; END IF; END IF;
END PROCESS; END keni_arc;
习题5.26 用74163构成12位二进制计数器。
解:用4位二进制计数器74163构成12位二进制计数器,需要3片。将低位芯片的进位端接到高位芯片的计数控制端。注意,只有当前两片均计数到满时,第三片才计数加1,所以前两片的进位输出分别接到第三片的G3和G4上,12位二进制计数器电路图如习题5.26图所示。
RD
CTRDIV16 CTRDIV16 CTRDIV16
5CT=0 5CT=0 5CT=0 M1 M1 M1 CO LD M2 M2 M2 3CT=15 3CT=15 3CT=15 进位输出 G3 G3 G3 1 (2) (1) (3) 1 G4 G4 G4
CP C5/2,3,4+ C5/2,3,4+ C5/2,3,4+
Q0 Q4 Q8 D0 D8 D4 1,5D [1] 1,5D [1] 1,5D [1]
Q1 Q5 Q 9 D1 D9 D5 [2] [2] [2] Q2 Q6 Q10 D2 D10 D6 [4] [4] [4] D3 D11 Q3 D7 Q7 Q11 [8] [8] [8]
习题5.26图 用3个74163构成的12位计数器
习题5.27 习题5.27(a)图为由移位寄存器74194和JK触发器构成的数字/模拟转换器的连接图。设初始状态QQ3Q2Q1Q0=10000,试解释其工作原理和输出电压。
输出 1K SRG4 MA 4kΩ 100Ω 0 0 MB M— C1 UCC 3 1 2kΩ 1J Q C4 CP 1→/2← 输出电压 1.6kΩ 1 CT=0 1kΩ DSR Q0 1,4D A 3,4D UCC & Q1 B 3,4D Q2 C 3,4D D Q3 3,4D DSL 2,4D CO (b)
(a)
习题5.27图
22
解:从习题5.27图(a)中可以看出,JK触发器的输出状态用来改变移位寄存器74194的状态控制端MA、MB的模式。当与非门给移位寄存器的DSR端送入0后,随着CP脉冲的逐个到来,移位寄存器逐位右移。当0移到Q3时,JK触发器翻转,从而使移位寄存器执行左移,因而0被逐位移向Q0,再由Q0通过DSL端移至Q3,此时JK触发器再次翻转,移位寄存器又重复上述过程。所以,随着一个个脉冲的到来,循环的0在往返运动。当采用习题5.27图(a)中电阻值时,输出的模拟波形为三角波如习题5.27图(b)所示。
习题5.28 利用移位寄存器74195和译码器74138构成的程序分频器如习题5.28图所示。通过译码器74138的程序输入可实现2~8任意数分频。试分析其工作过程。
解:从习题图5.28中可以观察到,译码器地址信号由程序输入得到。经译码后输出到两个移位寄存器的预置端。译码器输出端只有一位为零,当该零移到第二片Q3端时,移位寄存器重新置数,进入新一轮的移位操作。地址信号不一样,得到的初始值就不一样,电路的分频比就不一样。如当A2A1A0=111时,可得到最大分频数为8,当A2A1A0=001时,可得到最小分频数为2。
SRG4 SRG4 CT=0 CT=0 A BIN/OCT 0 M1[SHIFT] M1[SHIFT] 0 7 程序 A1 M2[LOAD]M2[LOAD] 1 6 CP CP C3/1→ C3/1→ 输入 A2 2 5 4 J
0 1,3J 1,3J 3 K 1,3K 1,3K SA E 2,3D 2,3D 2 SB & 2,3D 1 2,3D 0 EN 0
SC 0
Q3
习题5.28图
习题5.29 (1)采用双向移位寄存器74194及3线-8线译码器设计一个能同时产生两组代码的序列码发生器,这两组代码分别是F1:110101和F2:010110;
(2) 用VHDL程序实现(1)中要求; (3) 比较(1)和(2)两种方法的特点。 SRG4 M 1 A0 0 MB M— 1 BIN/OCT 1 3 A0 Y0 0 0 & C4 A1 Y1 F1 1 1 1→/2← CP A Y 2 2CT=0 2 2 & Y3 3 D SRY4 Q0 1,4D 4 G1 Y5 0 A 3,4D 1 5 Q1 & B & Y6 1 3,4D G2A 6 C Q2 F2 0 EN 1 Y7 3,4D 7 D G2B Q3 3,4D 1 0 DSL 2,4D 1
(a)
习题5.29图
23
000
习题5.25表 习题5.25真值表 100 001 CP Q0 Q1 Q2 F1 F2 0 0 0 0 1 0
1 1 0 0 1 1
2 1 1 0 0 0 110 011 3 1 1 1 1 1 4 0 1 1 0 1 111 5 0 0 1 1 0 101 (b) 010 习题5.29图 解:(1)首先用74194设计一个自启动的模6扭循环计数器如习题图5.29(a)所示。令此计数器在其计数状态转换过程中,每一状态的输出符合给定序列的要求,可列出真值表如习题5.29表所示。然后用一片3线-8线译码器和与非门实现输出组合电路。由习题5.29表所示得:
F1=Q0Q1Q2+ Q0Q1Q2+ Q0Q1Q2+ Q0Q1Q2=m0+m1+m7+m4= m0·m1·m7·m4= Y0·Y1·Y7·Y4 F2= Q0Q1Q2+ Q0Q1Q2+ Q0Q1Q2=m1+m7+m6=m1·m7·m6=Y1·Y7·Y6 分析电路得全状态转换图如习题5.29图(b)所示。 (2)有VHDL实现的程序如下。
LIBRARY ieee;
USE ieee.std_logic_1164.ALL; ENTITY double_xulie IS PORT(cp:IN std_logic; Z1,Z2:OUT std_logic); END double_xulie;
ARCHITECTURE behave OF double_xulie IS BEGIN
PROCESS(cp)
VARIABLE q:std_logic_vector(2 DOWNTO 0); BEGIN
IF(cp'EVENT AND cp='1') THEN CASE q IS
WHEN \WHEN \WHEN \WHEN \WHEN \WHEN \
WHEN OTHERS=>q:=\END CASE;
IF(q=\Z1<='1'; ELSE Z1<='0'; END IF;
IF(q=\Z2<='1'; ELSE Z2<='0'; END IF; END IF;
24
END PROCESS; END behave;
(3)比较
参考习题5.20。
习题5.30 采用双向移位寄存器74194及门电路设计一个具有自启动的序列长度S=63的m序列发生器。
解:为了使6位移位寄存器具有自启动能力,将两片74194移位寄存器加上防全零措施。一个“或非”门的输入处在全零状态时,其输出为高电平,反馈到MB端使MA=MB=1,移位寄存器执行并行送数的功能。下一个时钟脉冲来后,使电路成为111111状态,进入有效循环。电路连接图如习题5.30图所示。
SRG4 SRG4 M MA 1 A0 0 1 0 0 MB M— MB M— 1 3 1 3 C4 C4 CP CP 1→/2← 1→/2← ≥1 1 1 CT=0 CT=0
DSR 1,4D DSR 1,4D Q0 Q4 A A 1 1 3,4D 3,4D Q1 Q5 B B 1 1 3,4D 3,4D C C Q2 Q6 1 1 3,4D 3,4D D D Q3 Q7 1 1 3,4D 3,4D DSL DSL 2,4D 2,4D =1
习题5.30图
25