主任。输出F为事件“通过”成立。投票人投同意 票为逻辑1,不同意为逻辑0。输出通过为逻辑1, 不通过为逻辑0。
2)列真值表和写逻辑表达式
在真值表中,列出输入变量A、B、C和D的 所有(全)组态,根据题意列出输出变量,如真值 表如习题表3.4所示。依据真值表写出逻辑表达式 F?ABD?ABC?ACD。
习题表3.4习题3.4真值表 A B C D 0 0 0 0 0 0 0 1 0 0 1 0 0 0 1 1 0 1 0 0 0 1 0 1 0 1 1 0 0 1 1 1 1 0 0 0 1 0 0 1 1 0 1 0 1 0 1 1 1 1 0 0 1 1 0 1 D A C D A C C A D B A & & & ≥1 1 1 1 0 1 1 1 1 F F 0 0 0 0 0 0 0 0 0 0 0 1 0 1 1 1 3)画出电路图如答题图3.4所示。
D A C B A C B A D
& & & ≥1 F & 答题图3.3 习题3.3电路图
答题图3.4 习题3.4电路图
习题3.5 试分析题图3.4电路中,当A、B、C、D其中一个信号改变状态时,是否存在竞争—冒险现象?如果存在竞争—冒险现象,会发生在其他变量为何种取值的情况下?是哪种冒险?如何克服?
解:判断电路是否存在冒险有两种方法,一是 分析输出逻辑函数表达式。若在一定条件下函数式 能化简为:F?AA或F?A?A的形式,则说明当
B A 1 & 1 & ≥1 & F 变量A在1、0之间变化时可能引起电路竞争冒险。 第二种方法是分析电路输出函数的卡诺图。若在卡 诺图中出现两圈相切,而某一变量跨越相切处是在 0、1之间变换,则这一变量取值突变时可能引起 电路逻辑冒险。本例题将用逻辑表达式判断电路是否 有冒险并消除冒险。
由题图3.4知电路的输出函数为:
C D 1 1 & 题图3.4 习题3.5图
5
F?ACD?ABC?BC?CD
由逻辑函数表达式知,题图3.4所示电路有冒险。并且冒险可能在下列三种情况下发生: (1)当A=0,B=1,D=1时,F?C?C,C有“0”冒险。 (2)当B=0,C=1,D=1时,F?A?A,A有“0”冒险。 (3)当A=0,B=0,C=1时,F?D?D,D有“0”冒险。 在输出的或门输入端增加一低选通脉冲的方法消除冒险。
习题3.6 试分析题图3.6电路中,哪个信号改变状态时,存在竞争—冒险现象?在哪种取值的情况下,发生哪种冒险?如何克服?
A 1 &
解:写出题图3.6的输出逻辑函数表达式 F?(AD?B)(AC?D)
当D= C=1,B=0时,F?A?A。由逻辑函 数表达式知,题图3.6所示电路有冒险。并且A 有“1”冒险。可在输出的与门增加一高选通脉 冲的方法消除冒险。
时有2个信号变化,会产生逻辑冒险吗?如何克服?
解:当输入信号ABCD从0101到1111时变化, AC同时由0变到1,两个状态输出都是1。但变化 时,AC很可能不是同时变化,有可能A先变,也 有可能C先变。如果C先变,则ABCD的路经为
11 0 1 0 1 1 0 1 CD AB 00 01 11 10 1 1 00 0 1 D & C B 1 ≥1 ≥1 & F 题图3.6 习题3.6图
习题3.7 如题图3.8所示的一组合逻辑函数,当输入信号ABCD从0101到1111变化时,即同
00 1 01 0 0101→0111→1111,结果都是1,不会产生冒险。 如果A先变,则ABCD的路经为0101→1101→1111, 结果是1→0→1,将会产生冒险。克服冒险的方法: 路径可选0101→0111→1111,但有时不好加以控制, 可选择加选通脉冲的方法解决。
习题3.8 用VHDL设计8线-3线优先编码器。
解:VHDL实体有8个输入input(0)~input(7)代表输入信号0~7,3位由低位到高位排列的二进制信息输出。
进程语句中用的是if顺序语句,首先判断input(7)是否为低,若为低,执行接下来的语
题图3.8 习题3.7卡诺图
10 0 6
句,将结果送到输出,然后退出进程。否则继续判别下面的if语句,执行程序。 用VHDL语言描述优先编码器的程序如下。 LIBRARY IEEE;
USE IEEE.std_logic_1164.all; ENTITY priorityencoder IS
PORT (input:IN STD_LOGIC_VECTURE(7 DOWNTO 0); y:OUT STD_LOGIC_VECTURE (2 DOWNTO 0); END priorityencoder;
ARCHITECTURE rtl Of priorityencoder IS BEGIN
PROCESS(input)
IF(input(7)='0') THEN
y<= ''000'';
ELSIF (input(6)='0' ) THEN
y<='001';
ELSIF(input(5)='0' ) THEN
y<='010';
ELSIF (input(4)='0' ) THEN
y<='011';
ELSIF (input(3)='0' ) THEN
y<='100';
ELSIF (input(2)='0' ) THEN
y<='101';
ELSIF (input(1)='0' )then
y<='110'; ELSE
y<='111';
END IF; END PROCESS;
END rtl;
习题3.9 3线-8线译码器74138及门电路组成的组合逻辑电路如题图3.10所示。其中,输入信号A7-A0为地址线。试写出译码器各位输出所实现的地址。
74LS138 F0
A0 A0 F0 F1 A1 A1 F 1 解:译码器的使能端有效时S3?S2?0,S1?1, 译码器译码。由题图3.10电路可知,译码器译码,
则地址线A3-A7的状态应为A6=A7= 0,A3=A4
A4 A2 A2 S1 S2 F 2 F 3 F 4 F 5 F 6 F2 F3 F4 F5 F6
A & A 5 3F7 S3 F 7 A=A5= 1。若F0?0,则A2A1A0=000,即 7A7A6A5A4A3A2A1A0=00111000=38H同理得F1?F7分 别为39H,3AH,3BH,3CH,3DH,3EH,3FH。 题图3.10 习题3.9电路图
习题3.10 试分析题图3.12所示电路, 列出输入输出真值表,说明电路的逻辑功能。74283为4位超前进位全加器。
A6 ≥1 7
习题表3.10 真值表
X4 X3 X2 X1 0 0 0 0 0 0 0 1 0 0 1 0 0 0 1 1 0 1 0 0 0 1 0 1 0 1 1 0 0 1 1 1 1 0 0 0 1 0 0 1 1 0 1 0 1 0 1 1 1 1 0 0 1 1 0 1 1 1 1 0 1 1 1 1 D10 D8 D4 D2 D1 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 1 1 0 0 1 0 0 0 0 1 0 1 0 0 1 1 0 0 0 1 1 1 0 1 0 0 0 0 1 0 0 1 1 0 0 0 0 1 0 0 0 1 1 0 0 1 0 1 0 0 1 1 1 0 1 0 0 1 0 1 0 1 X1 A0 74283 A1 S0 A2 S1 A3 S2 B0 S3 B1 CO B2 B3 CI D1
X3 X4
X2 & ≥1 0 D2 D4 D8 D10
0 0 0 题图3.12 习题3.10电路
解:从真值表入手分析此电路。写出真值表后,如习题表3.10所示,直接观察规律。可以看出从0到15共16个数字被转成了相应的以10、8、4、2、1为权值的5位BCD码,逻辑功能也可以说是加6校正电路。
习题3.11 请用74283实现一个可控余3码至 A0 74283 A0 A1 A1 8421BCD码和8421BCD码至余3码转换电路。
S0 A2 A2 当X=0时实现余3码至8421BCD码,X=1时 S1 A3 A3 S2 0 B0 =1 实现8421BCD码至余3码。 S3 1 B1 1 解:1)8421BCD码至余3码转换实际上 CO B2 0 B3 是加3,设A为被加数,B为3,X为控制信号。 1 X CI 输入进位位应接0,但控制信号X为1时是加法,
所以必须取反。 题图3.13 习题3.11电路
2)余3码至8421BCD码实际上是减3, 设A为被加数,B取反,然后加输入进位位“1”。 但控制信号X为0时是减法,所以也必须取反。
3)将X取反控制异或门作为B=3或B的反码。连接电路如题图3.13所示。
习题3.12 题图3.14电路是一片4位比较器7485、一片显示译码器7447、一片4位全加器74283构成的逻辑功能电路,试分析该电路的逻辑功能。
解:1)加法电路中,X为控制信号,A为被加数,B为加数,X控制A、B完成加法和减法运算。控制信号X为0时作加法运算,X为1时是减法,B取反,然后加X得负数的补码。
2)加法器74283的输出作为比较器7485的输入,并和比较器的另一个输入信号7比较。如果大于等于7,则比较器7485输出信号FA
3)显示译码器7447是BCD-七段译码器,输出低电平有效,可以直接驱动七段共阳数码管。接上限流电阻限制通过发光二极管的电流,让发光管正常发光。
8