解:在四位二进制同步计数器74161计数全状态转换过程中,令每一状态的输出对应给定序列的每1比特,可列出态序表如习题5.17表所示。采用16选1数据选择器,电路连接图如习题5.17图所示。
A0 0 EN MUX A0 CTRDIV16 1 A2 G 0 1 CT=0 A M1 3 15 3 1 M2 3CT=15 CO1 G3 1 0 G4 CP 1 0 1 1D C5/2,3,4+ 1 2 CP C1 1 3 1,5D [1] Q 0 40 0 5 [2] Q 10 6 [4] Q2 1 7 [8] Q 1 8 31 9 0 10 1 1112 0 1 13 0 14 0 15 习题5.17图
用VHDL程序实现如下:
LIBRARY ieee;
USE ieee.std_logic_1164.ALL; USE ieee.std_logic_arith.ALL; USE ieee.std_logic_unsigned.ALL; ENTITY xulie IS
PORT(cp:IN std_logic;
F:OUT std_logic);
END xulie;
ARCHITECTURE xulie_arc OF xulie IS BEGIN
PROCESS(cp)
VARIABLE q:std_logic_vector(3 DOWNTO 0):=\BEGIN
IF(cp'EVENT AND cp='1') THEN IF(q=\q:=\ELSE
q:=q+'1'; END IF; CASE q IS
WHEN \WHEN \WHEN \WHEN \WHEN \WHEN \WHEN \WHEN \WHEN \WHEN \WHEN \WHEN \
16
习题5.17表 习题5.17态序表 N Q3 Q2 Q1 Q0 F 0 0 0 0 0 1 1 0 0 0 1 0 2 0 0 1 0 1 F 3 0 0 1 1 1 4 0 1 0 0 0 5 0 1 0 1 0 6 0 1 1 0 0 7 0 1 1 1 1 8 1 0 0 0 1 9 1 0 0 1 1 10 1 0 1 0 0 11 1 0 1 1 1 12 1 1 0 0 0 13 1 1 0 1 1 14 1 1 1 0 0 15 1 1 1 1 0 WHEN \WHEN \WHEN \WHEN \WHEN OTHERS=>F<='X'; END CASE; END IF;
END PROCESS; END xulie_arc;
习题5.18 习题5.18图是集成化m/(m+1)分频器E12012的内部主要部分电原理图,Q3
有两个输出端,其中一个在封装内部实现线或。试问:
(1) 如习题5.18图(a)所示。从CP1输入时钟CP,L接控制信号,CP2悬空,此分频器的分频次数m/(m+1)为多少(设初始状态Q3Q2Q1=110)。
(2) 如习题5.18图(b)所示。将CP2与Q3相接,时钟CP仍从CP1输入,m/(m+1)又为多少?(设初始状态Q4Q3Q2Q1=1110)。
写出态序表(此电路是在时钟脉冲的下降沿时翻转)。
解:(1)D1?Q1Q2?LQ2?Q3,D2?Q1,D3?Q2,根据初始状态Q3Q2Q1=110,列出态序表如习题5.18表(a),得到分频次数为m/(m+1)=5/6。
(2)D1?(Q4?L)Q2?Q1Q2?Q3,D2?Q1,D3?Q2,D4?Q4,根据初始状态
Q4Q3Q2Q1=1110,列出态序表如习题5.18表(b)所示,得到分频次数为m/(m+1)=10/11。 FF4 FF1 FF2 FF3 & ≥1 Q4 Q1 Q2 Q3 1D 1D 1D 1D C1 C1 C1 C1 Q4 Q3 Q2 Q1
L
CP1 CP2 (a) FF4 FF1 FF2 FF3 & ≥1 Q4 Q1 Q2 Q3 1D 1D 1D 1D C1 C1 C1 C1 Q4 Q1 Q3 Q2 ≥1 CP1 CP2 L
(b)
习题5.18题图
17
习题5.19 试用74195构成8位环形、扭环形计数器。 解:(1)选用两片74195构成环形计数器。电路连接图如习题5.19图(a)所示,可将第(1)片的J、K连在一起与第(2)片的Q7相连接,第(2)片的J、K连在一起与第(1)片的Q3相连接,在预置端加启动信号进行预置,使电路初始状态为10000000后,J1=K1=0,J2=K2=0。第一个CP脉冲来后Q0变成0,电路作右移操作,第8个CP脉冲作用后,电路恢复到初始状态。
(2)扭环形计数器连接图如习题5.19图(b)所示。将第(1)片的J、K连接在一起与第(2)片的Q7相连,第(2)片的J、K连在一起与第(1)片的Q3相连接。当清零后,在时钟脉冲作用下构成一个计数循环,其模M=16。
SRG4 SRG4 1 1 CT=0 CT=0 M1[SHIFT] M1[SHIFT] M2[LOAD]M2[LOAD] CP C3/1→ (1) CP C3/1→ (2) J 1,3J 1,3J K 1,3K Q4 1,3K Q0 1 2,3D 2,3D Q5 Q1 0 0 2,3D 2,3D Q6 Q2 0 0 Q7 Q3 0 0 Q3 0
(a)
SRG4 SRG4 CT=0 CT=0 M1[SHIFT] 1 1 M1[SHIFT] M2[LOAD]M2[LOAD] CP C3/1→ (1) CP C3/1→ ( 2) J 1,3J 1,3J K 1,3K Q4 Q0 1,3K 2,3D 2,3D Q5 Q1 2,3D 2,3D Q6 Q2 Q7 Q3 Q7 Q3 (b)
习题5.19图
18
习题5.18表(b) 习题5.18(b)态序表 Q4 Q3 Q2 Q1 表5.3.11(a) 习题5.18(a)态序表 Q3 Q2 Q1 1 1 0 1 1 1 1 0 1 0 0 1 0 0 0 0 1 0 L=1 L=0 1 1 1 0 1 1 1 1 1 1 0 1 1 0 0 1 1 0 0 0 1 0 1 0 0 1 1 1 0 1 0 1 0 0 0 1 0 0 0 0 0 0 1 0 L=1 L=0 习题5.20 分析习题5.20图所示电路的逻辑功能,并用VHDL语言实现此电路功能,然后比较两种实现方法的特点。
解:预置端为Q0Q1Q2,J=Q3,K=Q3,并行数据输入端D0D1D2D3=0111。根据74195的逻辑功能,当电路状态Q0Q1Q2Q3=1110时,预置端为低电平,执行M2模式,即并行送数。其他状态时,预置端为高电平,执行M1模式,即移位操作。其态序表如习题5.20表所示。 所以此电路为模15移存型计数器。
习题5.20表 习题5.20态序表 Q0 Q1 Q2 Q3 SRG4 0 1 1 1 1 CT=0 0 0 1 1 M1[SHIFT] & M2[LOAD]0 0 0 1 C3/1→ CP 0 0 0 0
1 0 0 0 J 1,3J 0 1 0 0 K 1,3K Q0 1 0 1 0 0 2,3D Q1 0 1 0 1 1 2,3D Q2 0 0 1 0 1 Q3 1 0 0 1 1 1 1 0 0 0 1 1 0 1 0 1 1 1 1 0 1 习题5.20图
1 1 1 0 VHDL程序实现习题5.20如下。 LIBRARY ieee;
USE ieee.std_logic_1164.ALL; ENTITY yiwei IS
PORT(cp:IN std_logic;
q:OUT std_logic_vector(3 DOWNTO 0));
END yiwei;
ARCHITECTURE yiwei_arc OF yiwei IS
SIGNAL q_s:std_logic_vector(3 DOWNTO 0):=\BEGIN
q<=q_s;
PROCESS(cp) BEGIN
IF(cp'EVENT AND cp='1') THEN IF(q_s=\q_s<=\ELSE
q_s(3 DOWNTO 1)<=q_s(2 DOWNTO 0); END IF;
IF(q_s(3)='0') THEN q_s(0)<=NOT q_s(0); END IF; END IF;
END PROCESS; END yiwei_arc;
1 X 1 1 CP 串行输入 CTRDIV16 CT=0 M1 CO 3CT=15 M2 G3 G4 C5/2,3,4+ 1,5D [1] [2] [4] [8] Q0 Q 1 Q2 Q 3 并 行 输 出
习题5.21图
若实现习题5.20的要求,可在VHDL程序中不用设定题目中没有要求的集成芯片的控制输入或输出,以及预置输入等。这样,用VHDL实现的可编程逻辑器件可以节省大量资源。
习题5.21 试用74161构成计数器/移位寄存器。
解:利用预置X信号作为计数器/移位寄存器的切换信号,当X=‘1’时执行计数操作,当X=‘0’时执行移位操作。只需将Q2接到D3上,将Q1接到D2上,将Q0接到D1上,
19
串行数据从D0输入,通过有规律地置数,实现移位,电路图如习题5.21图所示。
习题5.22 试用两片4位双向移位寄存器74194构成8位双向移位寄存器。
SRG4 SRG4 MA MA 0 0 0 0 M— M— (1) (2) MB MB 1 3 1 3 C4 C4 1→/2← 1→/2←
1 1 CT=0 CT=0 左移位 右移位 DSR 串行输出 Q4 1,4D 1,4D 串行输入 A Q0 3,4D 3,4D B 3,4D 3,4D C 3,4D 3,4D D Q7 Q3 3,4D 3,4D 右移位 DSL 左移位 2,4D 2,4D 串行输出
串行输入 CP
习题5.22图
解:将两片的复位(CT=0)、时钟CP、预置MA和预置MB端分别并接起来,将第(1)片的Q3与第(2)片的右移串行输入端DSR连起来,则第(1)片的DSR为8位双向移位寄存器的右移位串行输入端,第(2)片的Q7为右移位串行输出端。将第(2)片的Q4与第一片的左移位串行输入端DSL相连,则第(2)片的DSL为八位双向移位寄存器的左移位串行输入端,第(1)片的Q0为左移位串行输出端。连接图如习题5.22图所示。
习题5.23 试用74194构成环形、扭环形计数器。 解:74194在时钟脉冲CP的上升沿作用下,当MA=MB=1时,执行并行送数。当MA=1,MB=0时,执行右移操作。具有非自启动性能的环形计数器连接图如习题5.23(a)图所示。扭环形计数器连接图如习题5.23(b)图所示。工作之前清零,使其初始状态为0000。
≥1 1
SRG4 SRG4 MA MA 1 0 1 0 0 0 M M—3 MB 1 M—0 B1 3 C4 C4 CP 1→/2← 1→/2← CP CT=0 CT=0
DSR DSR 1,4D Q0 Q0 1,4D A A 1 3,4D 3,4D Q1 Q1 B B 0 3,4D 3,4D C C Q2 Q2 0 3,4D 3,4D D D Q3 0 Q3 3,4D 3,4D DSL DSL 2,4D 2,4D (a) (b) 习题5.23图
习题5.24 采用中规模组件设计一个计数器性序列码发生器,产生周期序列1101000101(组合电路采用8输入数据选择器)。
解:给定序列码长度为S=10,故用一片74161设计一个模10计数器,这个计数
器采用前十种状态预置法,即“0000~1001”10个状态。令其状态转换过程中每一状态的输出符合给定序列的要求,可列出态序表如习题5.24表所示。采用8选1数据选择器576。分别作出序列信号Z的卡诺图与选择器的卡诺图如习题5.24(a)、(b)图所示。将Q3、Q2、Q1接到576的地址输入端A2、A1、A0。再比较两张卡诺图得D4=D5 =D6=D2=0,D7=D3= D1=1,
20