资源预览内容
第1页 / 共25页
第2页 / 共25页
第3页 / 共25页
第4页 / 共25页
第5页 / 共25页
第6页 / 共25页
第7页 / 共25页
第8页 / 共25页
第9页 / 共25页
第10页 / 共25页
亲,该文档总共25页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
第六章 习题答案第六章 习题答案 1 现有 D 触发器组成的三个 n 位寄存器,需要连接起来传送数据。当控制信号 Sa有效时,执行(Ra)Rc 的操作;当控制信号 Sb有效时,执行(Rb)RC的操作。试写出连接电路的逻辑表达式,并画出逻辑电路图。 解: Rc RaRb LDC Sa Sb Rc = RaSaLDC + RbSbLDC 2 现有 D 触发器组成的四个 8 位寄存器,要求它们之间实现数据传送,试设计连接电路。 解: ABCD LDALDBLDCLDD A BUSC BUSB BUSD BUS BUS 3 ALU 的输出端一般带有一个移位器,其功能为:ALU 输出正常传送;ALU 输出左移 1 位(ALUi+1)传 送;ALU 输出右移一位(ALUi-1)传送。试设计移位器的逻辑电路。 解: 4 一个系统有 A,B 两条总线,为了接收来自任何一条总线上的数据并驱动任何一条总线,需要一个总线缓冲寄 存器。请用 D 触发器和三态门设计一个总线缓冲寄存器。 解: A B U S B B U S R A B U SR B B U S A B U S RB B U S R A B U S B B U S R ( 缓 冲 寄 存 器 ) L D R 5 试构造能完成下列程序操作的 ASM 图: (a) if X = N, then 。 (b) if XN, then , else 。 解: (c) for X from A to B, step C, do 。 解: (d) while X = Y, do 。 解: (e) if X N OR X B 01 a b c d 00 01 10 11 PSNS B A B( D ) A( D ) 转移条件 C 0 0 0 1 1 0 1 1 0 1 1 0 1 1 1 0 0 1 无条件转移 无条件转移 无条件转移 ( A B ) = 1 A B = 0 根据 NS = PSC 公式,激励方程表达式为: B ( D ) = BA + BA + BA( A B ) A ( D ) = BA + BA + BA( A B ) = A + BA ( A B ) 电路图 控 制 信 号 译 码 逻 辑 0 1 B D 0 1 A D T2 请 O T1 B AB ABA(AB)A B A (AB) LDRbLDRaCAP BBAA 控制信号表达式: L D Rb = ( 状 态 a + 状 态 c ) T2 = ( B A + B A ) T2 = A T2 L D R a = 状 态 b T2 = BAT2 C A P = 状 态 d = B A LDRbLDRaCAP A T2BAT2B A 7. 根据题 6 的条件,设计一个 MUX 型控制器。 ASM 流程图 状态转移表 BA 电路图 BA B A 控制信号表达式为: LDRB=(状态 a状态 c)T2=(BABA)T2 LDRA=状态 bT2=BAT2 CAP=状态 dBA 8. 根据题 6 的条件,设计一个定序型控制器。 ASM 流程图 状态转移表 (3)写出激励方程 NS= PSC 控制信号表达式 (4)逻辑电路图 9. 根据题 6 的条件,设计一个微程序控制器。 微程序流程图 微指令格式 定时信号 T1-打入微指令寄存器定时 T2-执行部件控制信号定时 T3-修改微地址并读出控存定时 微程序控制器电路 微程序代码 当前微地址 微指令二进制代码 微命令 判别下一微地址 0000 0100 0101 1000 100 010 100 001 0 0 0 1 0100 0101 1000 0100 10. 某控制器的状态表如下表所示,其中 X 和 Y 为输入变量,试设计 一个计数器型控制器。 ASM 流程图与编码(Q1,Q2为两个触发器) 令 状态 A=00, B=01, C=10, D=11 状态转移表 激励方程表达式 利用 NS=PSC 公式,使用 D 触发器。 Q2(D)= 2Q1Q XY + 2Q1Q XY + 2Q Q1XY + 2Q Q1XY + Q2 1Q XY + Q2 Q1XY + Q2 Q1XY = 2Q1Q X + 1Q XY + Q1X Q1(D) = 2Q1Q Y + 2Q Q1XY + Q2 1Q (X+Y) + Q2Q1Y = 2Q Y + Q2 1Q X + Q2Y 电路图 1Q2Q 2Q1Q 1Q2Q 1Q 控制信号表达式(假设为电位控制信号) F=状态 AX Y + 状态 BXY + 状态 CXY + 状态 D = 2Q1Q X Y + 2Q Q1XY + Q2 1Q XY + Q2Q1 2Q1QXY2QX 1Q Y 11. .根据题根据题 10 的条件,设计一个的条件,设计一个 MUX 型控制器型控制器 解答: 1) ASM 流程图与编码同计数器型控制器(见第 10 题答案) 2) 按 MUX 方式列出状态转移真值表 3) 画出电路图 12.根据题根据题 10 的条件,设计一个定序型控制器的条件,设计一个定序型控制器 解答: 1) ASM 流程图与计数器法相同 2) 使用 Qa、Qb、Qc、Qd 四个触发器,编码分别为 Qa=1000,Qb=0100,Qc=0010,Qd=0001 3) 状态转移真值表 4) 写出激励方程 NS= PSC 5)画出电路图 13.设计一个累加运算系统定序型控制器设计一个累加运算系统定序型控制器 解答: 1) 算法流程图 2) 状态转移真值表及激励函数表达式 NS=PSC(C=1,无条件转移) 3) 控制信号表达式 4) 电路图 14.设计一个累加运算系统设计一个累加运算系统 MUX 型控制器型控制器 解答: 1) ASM 流程图 2)状态转移真值表及激励表达式 NS=PSC 3)电路图 4)控制信号表达式 15. 图 P6.1 所示 ASM 流程图,设计计数器型控制器 解: (1)ASM 流程图与编码(Q1,Q2为两个触发器) 令 状态 a=00, b=01, c=11, d=10 状态转移表 (3)次态方程 xwQQxQQyxQQQQQ xwQQwxQQzxyQQQ n n 121212121 1212122 (4)控制信号 xyQQF 12 16根据图 P6.1 所示 ASM 流程图,设计一个 MUX 型控制器 解: (1)ASM 流程图、编码、状态转移真值表同计数器型控制器(见第 15 题答案) (2) MUXA 的输出接触发器 D2,MUXB 的输出接触发器 D1,则 xwwxMUXA MUXA xzyxzxyMUXA MUXA )3( 0)2( ) 1 ( 0)0( xwMUXB MUXB xyxyxMUXB MUXB )3( 0)2( ) 1 ( 1)0( (3)控制信号 xyQQF 12 17. 根据图 P6.1 所示 ASM 流程图,设计一个定序型控制器 解: 1)使用 Qa、Qb、Qc、Qd 四个触发器对应四个状态 a,b,c,d 2)状态转移真值表及激励方程表达式 wxQzxyQDQ xwQxQDQ yxQQDQ QwxQDQ cbd cbc bab dca )( )( )( )( (3)控制信号 xyQF b 18. 根据图 P6.1 所示 ASM 流程图,设计一个微程序控制器。 解:步骤如下 将 ASM 流程图转化为微程序流程图 确定微指令地址 确定微命令 确定微指令格式和字长 确定控制存储器容量 写出微地址转移逻辑表达式 将微指令编译成二进制代码。 19. 根据教材图 P6.7 所示通路,设计一个微程序控制器。 略 20. 设计十字路口交通灯控制器 解:交通灯控制系统结构框图 控制系统 ASM 图如下 21设计一个彩灯控制器。 解:彩灯电路框图如下 library ieee; use ieee.std_logic_1164.all; use ieee.std_logic_unsigned.all; entity light is port(clk1: in std_logic; -时钟信号 light: buffer std_logic_vector(11 downto 0); -输出 end light; architecture behv of light is constant len: integer:=11; signal banner: std_logic:=0; -定义信号banner为两种节拍转换信号; signal clk,clk2: std_logic; -信号 CLK,CLK2 作为辅助时 钟 begin clk=(clk1 and banner) or (clk2 and not banner); process(clk1) begin if clk1event and clk1=1 then -CLK1 二分频得 CLK2 clk2=not clk2; end if; end process; process(clk) - variable flag: bit_vector(3 downto 0):=“0000“; begin if clkevent and clk=1 then if flag=“0000“ then light=1 -顺序向右循环移位 if light(1)=1 then -依次点亮 flag:=“0001“; end if; elsif flag=“0001“ then 依次熄灭 light=light(len-1 downto 0) if light(10)=0 then flag:=“0010“; end if; elsif flag=“0010“ then light= light(len-1 downto 0) -顺序向左循环移位 if light(10)=1 then -依次点亮 flag:=“0011“; end if; elsif flag=“0011“ then 依次熄灭 light= 0 if light(1)=0 then flag:=“0100“; end if; elsif flag=“0100“ then light(len downto 6)=light(len-1 downto 6) -从中间向两边点 light(len-6 downto 0)=1 if light(1)=1 then flag:=“0101“; end if; elsif flag=“0101“ then light(len downto 6)=0 -从两边向中间熄 light(len-6 downto 0)=light(len-7 downto 0) if light(2)=0
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号