当前位置:文档之家› 数字逻辑 白中英 第六版 答案

数字逻辑 白中英 第六版 答案

第六章习题答案1现有D触发器组成的三个n位寄存器,需要连接起来传送数据。

当控制信号S a有效时,执行(Ra)→Rc的操作;当控制信号S b有效时,执行(R b)→R C的操作。

试写出连接电路的逻辑表达式,并画出逻辑电路图。

解:Rc = Ra·Sa·LDC + Rb·Sb·LDC2 现有D触发器组成的四个8位寄存器,要求它们之间实现数据传送,试设计连接电路。

解:BUS3 ALU的输出端一般带有一个移位器,其功能为:①ALU输出正常传送;②ALU输出左移1位(ALU i+1)传送;③ALU输出右移一位(ALU i-1)传送。

试设计移位器的逻辑电路。

解:4 一个系统有A,B两条总线,为了接收来自任何一条总线上的数据并驱动任何一条总线,需要一个总线缓冲寄存器。

请用D触发器和三态门设计一个总线缓冲寄存器。

解:5 试构造能完成下列程序操作的ASM图:(a)if X = N, then … 。

(b)if X≠N, then …, else …。

解:(c)for X from A to B, step C, do… 。

解:(d)while X = Y, do …。

解:(e)if X > N OR X < O, then …, else …。

解:6 有一个数字比较系统,它能对两个8位二进制进行比较。

其操作过程如下:先将两个8位二进制数存入寄存器A和B, 然后进行比较,最后将大数移入寄存器A中。

要求:⑴画出此系统方框图,并构造ASM流程图。

⑵设计一个计数器型控制器。

解:(1)②状态转移真值表PS NSB A B( D ) A( D )转移条件 C0 00 11 0 1 10 11 01 11 00 1无条件转移无条件转移无条件转移( A > B ) = 1A >B = 0根据 NS = PS·C 公式,激励方程表达式为:B ( D ) = BA + BA + BA·( A > B )A ( D ) = BA + BA + BA·( A >B ) = A + BA ·( A > B )③电路图④ 控制信号表达式:7. 根据题6的条件,设计一个MUX 型控制器。

① ASM 流程图LDR b LDR a CAPLDR b = ( 状态 a + 状态 c ) T 2 = ( BA + BA ) T 2 = AT 2LDRa = 状态 b ·T 2 = BAT 2CAP = 状态 d = BALDR b LDR a CAPB 2② 状态转移表③ 电路图④ 控制信号表达式为:LDR B =(状态a +状态c)·T 2=(+B )·T 2LDR A =状态b·T 2=A·T 2 CAP=状态d =BA8. 根据题6的条件,设计一个定序型控制器。

① ASM 流程图十进制编码PS NSBA B(D)A(D)转移条件C0 (00)1 (01)2 (10)3 (11)001101010111010101CB =0 ,C A =1C B =1, C A =0C B =1, C A =1C B =(A>B), C A =0 BA >C A =CB =0, LDR ALDR BCAPT 清B A A B②状态转移表(3)写出激励方程NS=Σ PS·C控制信号表达式(4)逻辑电路图9.根据题6的条件,设计一个微程序控制器。

①微程序流程图②微指令格式③定时信号T1-----打入微指令寄存器定时 T2-----执行部件控制信号定时 T3-----修改微地址并读出控存定时 ④ 微程序控制器电路⑤ 微程序代码10. 某控制器的状态表如下表所示,其中X 和Y 为输入变量,试设计一个计数器型控制器。

① ASM 流程图与编码(Q 1,Q 2为两个触发器) 令 状态A=00, B=01, C=10, D=11当前微地址微指令二进制代码微命令判别下一微地址000001000101100010001010000100010100010110000100PS NS输出FXY=00 01 10 11XY=00 01 10 11A B C DA B C D A A C D A B B D ABCD0001000101111001② 状态转移表③ 激励方程表达式利用NS=∑PS·C 公式,使用D 触发器。

Q 2(D)=·X + ·XY + Q 1·X + Q 1·XY + Q 2·XY + Q 2 Q 1·X + Q 2 Q 1·XY= ·X + ·XY + Q 1·XQ 1(D) = ·Y + Q 1·XY + Q 2(X+Y) + Q 2Q 1·Y = ·Y + Q 2·X + Q 2·Y ④ 电路图PS NS 转移条件Q 2Q 1Q 2Q 10 0 0 11 01 10 00 0 0 01 01 10 0 0 10 11 10 0 0 11 01 10 11 01 1xy xyxy xyxy xyxy xy xy xyxy xy xy xyxy xy2Q 1Q Y 2Q 1Q 2Q Y 2Q 1Q Y 2Q 1Q 1Q 2Q 1Q 2Q 1Q 2Q 1Q⑤ 控制信号表达式(假设为电位控制信号)F=状态A·+ 状态B·Y + 状态C·X + 状态D =·+ Q 1·Y + Q 2·X + Q 2Q 111. .根据题10的条件,设计一个MUX 型控制器 解答:1) ASM 流程图与编码同计数器型控制器(见第10题答案) 2) 按MUX 方式列出状态转移真值表3) 画出电路图清X Y X Y 2Q 1Q X Y 2Q X 1Q Y F12.根据题10的条件,设计一个定序型控制器解答:1)ASM流程图与计数器法相同2)使用Qa、Qb、Qc、Qd四个触发器,编码分别为Qa=1000,Qb=0100,Qc=0010,Qd=00013)状态转移真值表4)写出激励方程NS=Σ PS·C5)画出电路图13.设计一个累加运算系统定序型控制器解答:1)算法流程图2)状态转移真值表及激励函数表达式NS=∑PS·C(C=1,无条件转移)3)控制信号表达式4)电路图14.设计一个累加运算系统MUX型控制器解答:1)ASM流程图2)状态转移真值表及激励表达式NS=∑PS·C3)电路图4)控制信号表达式15. 图P6.1所示ASM 流程图,设计计数器型控制器 解:(1)ASM 流程图与编码(Q 1,Q 2为两个触发器) 令 状态a=00, b=01, c=11, d=10 ② 状态转移表(3)次态方程(4)控制信号16.根据图P6.1所示ASM 流程图,设计一个MUX 型控制器 解:(1)ASM 流程图、编码、状态转移真值表同计数器型控制器(见第15题答案)(2) MUXA 的输出接触发器D 2,MUXB 的输出接触发器D 1,则(3)控制信号17. 根据图P6.1所示ASM 流程图,设计一个定序型控制器解: 1)使用Qa 、Qb 、Qc 、Qd 四个触发器对应四个状态a ,b ,c ,d2)状态转移真值表及激励方程表达式PS NS转移条件Q 2Q 1Q 2Q 10 1 0 00 1 1 01 10 0 1 01 10 00 11 11 0xy xyzx x Åw xwxwxw Q Q x Q Q y x Q Q Q Q Q xwQ Q w x Q Q z xy Q Q Q n n 1212121211212122+++=++=xy F 12=xww x MUXA MUXA x z y x z xy MUXA MUXA +==+=+==)3(0)2()1(0)0(xw MUXB MUXB x y x y x MUXB MUXB ==+=+==)3(0)2()1(1)0(xy Q Q F 12=(3)控制信号18. 根据图P6.1所示ASM 流程图,设计一个微程序控制器。

解:步骤如下● 将ASM 流程图转化为微程序流程图 ● 确定微指令地址 ● 确定微命令● 确定微指令格式和字长 ● 确定控制存储器容量● 写出微地址转移逻辑表达式 ● 将微指令编译成二进制代码。

19. 根据教材图P6.7所示通路,设计一个微程序控制器。

略20. 设计十字路口交通灯控制器 解:交通灯控制系统结构框图PS NS 转移条件Q a Q d 1 0 0 0xy xyzx x Åw xwxwQ b Q c Q a Q d Q b Q c 0 1 0 00 1 0 00 1 0 00 0 0 1 0 0 1 00 0 1 01 0 0 00 0 0 1 0 0 1 0 0 0 0 11 0 0 0Q xy Q D Q xwQ x Q D Q x Q Q D Q Qw x Q D Q cbdcbcbabdca+=+=+=+Å=)()()()(xy Q F b=控制系统ASM图如下21.设计一个彩灯控制器。

解:彩灯电路框图如下library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity light isport(clk1: in std_logic; ---时钟信号light: buffer std_logic_vector(11 downto 0)); --输出end light;architecture behv of light isconstant len: integer:=11;signal banner: std_logic:='0'; ----定义信号banner为两种节拍转换信号;signal clk,clk2: std_logic; ----信号CLK,CLK2作为辅助时钟beginclk<=(clk1 and banner) or (clk2 and not banner);process(clk1)beginif clk1'event and clk1='1' then ---CLK1二分频得CLK2 clk2<=not clk2;end if;end process;process(clk) ----variable flag: bit_vector(3 downto 0):="0000";beginif clk'event and clk='1' thenif flag="0000" thenlight<='1' & light(len downto 1); ----顺序向右循环移位if light(1)='1' then ----依次点亮flag:="0001";end if;elsif flag="0001" then ———依次熄灭light<=light(len-1 downto 0) & '0';if light(10)='0' thenflag:="0010";end if;elsif flag="0010" thenlight<= light(len-1 downto 0) & '1'; ----顺序向左循环移位if light(10)='1' then ----依次点亮flag:="0011";end if;elsif flag="0011" then ———依次熄灭light<= '0' & light(len downto 1);if light(1)='0' thenflag:="0100";end if;elsif flag="0100" thenlight(len downto 6)<=light(len-1 downto 6)&'1'; ---从中间向两边点light(len-6 downto 0)<='1'&light(len-6 downto 1);if light(1)='1' thenflag:="0101";end if;elsif flag="0101" thenlight(len downto 6)<='0'&light(len downto 7); ----从两边向中间熄light(len-6 downto 0)<=light(len-7 downto 0)&'0';if light(2)='0' thenflag:="0110";end if;elsif flag="0110" thenlight(len downto 6)<='1'&light(len downto 7); ----奇偶位循环点亮light(len-6 downto 0)<='1'&light(len-6 downto 1);if light(1)='1' thenflag:="0111";end if;elsif flag="0111" thenlight<="000000000000";flag:="1000";elsif flag="1000" then ----从新开始banner<=not banner; ---banner信号转换,实现第二种节拍flag:="0000";end if;end if;end process;end behv;关闭。

相关主题