第五章 习题答案
1. 画出与阵列编程点
解:
---
2. 画出或阵列编程点
解:
----X 1X 2X 3X 4
3. 与、或阵列均可编程,画出编程点。
解;
1
A
-B
B -F 3
2
4. 4变量LUT 编程
解:
A 0A 1A 2A 3
SOP 输出
5. 用VHDL 写出4输入与门
解: 源代码:
LIBRARY IEEE ;
USE IEEE .STD_LOGIC_1164.ALL ;
ENTITY and4 IS
PORT (a ,b ,c ,d :IN STD_LOGIC ;
x :OUT STD_LOGIC );
END and4;
ARCHITECTURE and4_arc OF and4 IS
BEGIN
x <=a AND b AND c AND d ;
END and4_arc ;
6. 用VHDL 写出4输入或门
解: 源代码:
LIBRARY IEEE ;
USE IEEE.STD_LOGIC_1164.ALL;
ENTITY or4 IS
PORT (a,b,c,d:IN STD_LOGIC;
x:OUT STD_LOGIC);
END or4;
ARCHITECTURE or4_arc OF or4 IS
BEGIN
x<=a OR b OR c OR d;
END or4_arc;
7.用VHDL写出SOP表达式
解:源代码:
LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
ENTITY sop IS
PORT (a,b,c,d,e,f:IN STD_LOGIC;
x:OUT STD_LOGIC);
END sop;
ARCHITECTURE sop_arc OF sop IS
BEGIN
x<=(a AND b) OR (c AND d) OR (e AND f);
END sop_arc;
8.用VHDL写出布尔表达式
解:源代码:
LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
ENTITY boolean IS
PORT (a,b,c:IN STD_LOGIC;
f:OUT STD_LOGIC);
END boolean;
ARCHITECTURE boolean_arc OF boolean IS
BEGIN
f<=(a OR (NOT b)OR c) AND (a OR b OR(NOT c))AND ((NOT a) OR (NOT b) OR (NOT c));
END boolean_arc;
9.用VHDL结构法写出SOP表达式
解:源代码:
――三输入与非门的逻辑描述
LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
ENTITY nand3 IS
PORT (a,b,c:IN STD_LOGIC;
x:OUT STD_LOGIC);
END nand3;
ARCHITECTURE nand3_arc OF nand3 IS
BEGIN
x<=NOT (a AND b AND c);
END nand3_arc;
――顶层结构描述文件
LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
ENTITY sop IS
PORT (in1,in2,in3,in4,in5,in6,in7,in8,in9:IN STD_LOGIC;
out4:OUT STD_LOGIC);
END sop;
ARCHITECTURE sop_arc OF sop IS
COMPONENT nand3
PORT (a,b,c:IN STD_LOGIC;
x:OUT STD_LOGIC);
END COMPONENT;
SIGNAL out1,out2,out3:STD_LOGIC;
BEGIN
u1:nand3 PORT MAP (in1,in2,in3,out1);
u2:nand3 PORT MAP (in4,in5,in6,out2);
u3:nand3 PORT MAP (in7,in8,in9,out3);
u4:nand3 PORT MAP (out1,out2,out3,out4);
END sop;
10.用VHDL数据流法写出SOP表达式
解:源代码:
LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
ENTITY sop IS
PORT (in1,in2,in3,in4,in5,in6,in7,in8,in9:IN STD_LOGIC;
out4:OUT STD_LOGIC);
END sop;
ARCHITECTURE sop_arc OF sop IS
BEGIN
out4<=(in1 AND in2 AND in3) OR (in4 AND in5 AND in6 ) OR (in7 AND in8 AND in9);
END sop_arc;
13.用VHDL设计3-8译码器
解:源代码:
LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
ENTITY decoder_3_to_8 IS
PORT(a,b,c,g1,g2a,g2b:IN STD_LOGIC;
y:OUT STD_LOGIC _VECTOR(7 downto 0));
END decoder_3_to_8;
ARCHITECTURE rt1 OF decoder_3_to_8 IS
SIGNAL indata:STD_LOGIC _VECTOR(2 downto 0);
BEGIN
indata<=c & b & a;
PROCESS(indata,g1,g2a,g2b)
BEGIN
IF(g1=′1′ AND g2a=′0′ AND g2b=′0′)THEN
CASE indata IS
WHEN "000"=>y<="11111110";
WHEN "001"=>y<="11111101";
WHEN "010"=>y<="11111011";
WHEN "011"=>y<="11110111";
WHEN "100"=>y<="11101111";
WHEN "101"=>y<="11011111";
WHEN "110"=>y<="10111111";
WHEN others=>y<="01111111";
END CASE;
ELSE
y<="11111111";
END IF;
END PROCESS;
END rt1;
14.用VHDL设计七段显示译码器
解:源代码:
LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
ENTITY segment7 IS
PORT(xin:IN STD_LOGIC _VECTOR(3 downto 0);
lt,rbi:IN STD_LOGIC;
yout:OUT STD_LOGIC _VECTOR(6 downto 0);
birbo:INOUT STD_LOGIC);
END segment7;
ARCHITECTURE seg7448 OF segment7 IS
SIGNAL sig_xin:STD_LOGIC _VECTOR(3 downto 0);
BEGIN
sig_xin<=xin;
PROCESS(sig_xin,lt,rbi,birbo)
BEGIN
IF(birbo=′0′)THEN
yout<="0000000";
ELSIF (lt=′0′)THEN
yout<="1111111";
birbo<=′1′;
ELSIF (rbi=′0′AND sig_xin="0000")THEN
yout<="0000000";
birbo<=′0′;
ELSIF (rbi=′1′ AND sig_xin="0000")THEN
yout<="1111110";
birbo<=′1′;
ELSE
birbo<=′1′;
CASE sig_xin IS
WHEN "0001"=>yout<="0110000";
WHEN "0010"=>yout<="1101101";
WHEN "0011"=>yout<="1111001";
WHEN "0100"=>yout<="0110011";
WHEN "0101"=>yout<="1011011";
WHEN "0110"=>yout<="0011111";
WHEN "0111"=>yout<="1110000";
WHEN "1000"=>yout<="1111111";
WHEN "1001"=>yout<="1110011";
WHEN others=>yout<="0100011";
END CASE;
END IF;
END PROCESS;
END seg7448;
15.用VHDL设计8/3优先编码器
解:源代码:
LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
ENTITY priorityencoder IS
PORT(din:IN STD_LOGIC _VECTOR(7 downto 0);
ei:IN STD_LOGIC;
yout:OUT STD_LOGIC _VECTOR(2 downto 0);
eo,gs:OUT STD_LOGIC);
END priorityencoder;
ARCHITECTURE cod74148 OF priorityencoder IS BEGIN
PROCESS(ei,din)
BEGIN
IF(ei=′1′)THEN
yout<="111";
eo<=′1′;
gs<=′1′;
ELSE
IF(din(7)=′0′ ) THEN
yout<="000";
eo<=′1′;
gs<=′0′;
ELSIF(din(6)=′0′ ) THEN
yout <="001";
eo<=′1′;
gs<=′0′;
ELSIF(din(5)=′0′ ) THEN
yout<="010";
eo<=′1′;
gs<=′0′;
ELSIF(din(4)=′0′ ) THEN
yout<="011";
eo<=′1′;
gs<=′0′;
ELSIF(din(3)=′0′ ) THEN
yout<="100";
eo<=′1′;
gs<=′0′;
ELSIF(din(2)=′0′ ) THEN
yout<="101";
eo<=′1′;
gs<=′0′;
ELSIF(din(1)=′0′ ) THEN
yout<="110";
eo<=′1′;
gs<=′0′;
ELSIF(din(0)=′0′ ) THEN
yout<="111";
eo<=′1′;
gs<=′0′;
ELSIF(din="11111111") THEN
yout<="111";
eo<=′0′;
gs<=′1′;
END IF;
END IF;
END PROCESS;
END cod74148;
16.用VHDL设计BCD码至二进制码转换器。
解:源代码:
library ieee;
use ieee.std_logic_1164.all;
entity bcdtobi is
port(
bcdcode : IN STD_LOGIC_VECTOR(7 DOWNTO 0);
start: in std_logic;
qbit : OUT STD_LOGIC_VECTOR(3 DOWNTO 0)
);
end;
architecture behavioral of bcdtobi is
begin
process(start)
begin
if start='0' then
case bcdcode(7 downto 0) is
when "00000000"=>qbit(3 downto 0)<="0000";
when "00000001"=>qbit(3 downto 0)<="0001";
when "00000010"=>qbit(3 downto 0)<="0010";
when "00000011"=>qbit(3 downto 0)<="0011";
when "00000100"=>qbit(3 downto 0)<="0100";
when "00000101"=>qbit(3 downto 0)<="0101";
when "00000110"=>qbit(3 downto 0)<="0110";
when "00000111"=>qbit(3 downto 0)<="0111";
when "00001000"=>qbit(3 downto 0)<="1000";
when "00001001"=>qbit(3 downto 0)<="1001";
when "00010000"=>qbit(3 downto 0)<="1010";
when "00010001"=>qbit(3 downto 0)<="1011";
when "00010010"=>qbit(3 downto 0)<="1100";
when "00010011"=>qbit(3 downto 0)<="1101";
when "00010100"=>qbit(3 downto 0)<="1110";
when "00010101"=>qbit(3 downto 0)<="1111";
when others=>qbit(3 downto 0)<="0000";
end case;
else
qbit(3 downto 0)<="0000";
end if;
end process;
end behavioral;
17.用VHDL设计4位寄存器
解:异步复位
源代码:
LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
ENTITY register_4 IS
PORT(clk,r:IN STD_LOGIC;
din:IN STD_LOGIC _VECTOR(3 downto 0);
qout:OUT STD_LOGIC _VECTOR(3 downto 0));
END register_4;
ARCHITECTURE rge_arc OF register_4 IS
SIGNAL q_temp:STD_LOGIC _VECTOR(3 downto 0);
BEGIN
PROCESS(clk,r)
BEGIN
IF(r=′1′)THEN
q_temp<="0000";
ELSIF(clk′event AND clk=′1′ ) THEN
q_temp<=din;
END IF;
qout<=q_temp;
END PROCESS;
END rge_arc;
18.用VHDL设计4位双向移位寄存器
解:s1、s0控制工作方式,dsl为左移数据输入,dsr为右移数据输入。
源代码:
LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
ENTITY shiftreg IS
PORT(clk,r,dsr,dsl:IN STD_LOGIC;
s1,s0:IN STD_LOGIC;--function select
din:IN STD_LOGIC _VECTOR(3 downto 0);--data in
qout:OUT STD_LOGIC _VECTOR(3 downto 0));--data out END shiftreg;
ARCHITECTURE ls74194 OF shiftreg IS
SIGNAL iq:STD_LOGIC _VECTOR(3 downto 0);
SIGNAL s:STD_LOGIC _VECTOR(1 downto 0);
BEGIN
s<=s1 & s0;
PROCESS(clk,r)
BEGIN
IF(r=′0′)THEN
iq<="0000";
ELSIF(clk′event AND clk=′1′ ) THEN
CASE s IS
WHEN "00"=>null;
WHEN "01"=>iq<=dsr & din(3 downto 1);--right
WHEN "10"=>iq<=din(2 downto 0)& dsl;--left
WHEN "11"=>iq<=din;--load
WHEN others=>null;
END CASE;
END IF;
qout<=iq;
END PROCESS;
END ls74194;
19.用VHDL设计8421码十进制加法计数器
解:异步清零,同步置数
源代码:
LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
USE IEEE.STD_LOGIC_ARITH.ALL;
USE IEEE.STD_LOGIC_UNSIGNED.ALL;
ENTITY count10 IS
PORT(clk,clr,load:IN STD_LOGIC;
din:IN STD_LOGIC _VECTOR(3 downto 0);
co:OUT STD_LOGIC;
qout:OUT STD_LOGIC _VECTOR(3 downto 0));END count10;
ARCHITECTURE count10_arch OF count10 IS SIGNAL iq:STD_LOGIC _VECTOR(3 downto 0);BEGIN
PROCESS(clr,clk,load)
BEGIN
IF(clr=′0′)THEN
i q<="0000";
ELSIF(clk′event AND clk=′1′ ) THEN
IF(load=′0′)THEN
iq<=din;
ELSIF(iq=9)THEN
iq<="0000";
ELSE
iq<=iq+1;
END IF;
END IF;
qout<=iq;
END PROCESS;
co<=′1′ WHEN iq="1001" ELSE
′0′;
END count10_arch;
20.用VHDL设计可逆格雷码计数器
解:源代码:
LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
ENTITY gray_count IS
PORT(clk,y:IN STD_LOGIC;
qout:OUT STD_LOGIC _VECTOR(2 downto 0));END gray_count;
ARCHITECTURE arch_gray OF gray_count IS
SIGNAL iq:STD_LOGIC _VECTOR(2 downto 0);BEGIN
PROCESS(clk)
BEGIN
IF (clk′event AND clk=′1′ ) THEN
IF(y=′1′)THEN
CASE iq IS
WHEN "000"=>iq<="001";
WHEN "001"=>iq<="011";
WHEN "011"=>iq<="010";
WHEN "010"=>iq<="110";
WHEN "110"=>iq<="111";
WHEN "111"=>iq<="101";
WHEN "101"=>iq<="100";
WHEN others=>iq<="000";
END CASE;
END IF;
IF(y=′0′)THEN
CASE iq IS
WHEN "000"=>iq<="100";
WHEN "100"=>iq<="101";
WHEN "101"=>iq<="111";
WHEN "111"=>iq<="110";
WHEN "110"=>iq<="010";
WHEN "010"=>iq<="011";
WHEN "011"=>iq<="001";
WHEN others=>iq<="000";
END CASE;
END IF;
END IF;
qout<=iq;
END PROCESS;
END arch_gray;
21. 用VHDL设计有限状态机
解:源代码:
LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
ENTITY asm IS
PORT(clk,k,reset:IN STD_LOGIC;
qout:OUT STD_LOGIC _VECTOR(1 downto 0));END asm;
ARCHITECTURE asm_arch OF asm IS
TYPE asm_st IS (s0,s1,s2,s3);
SIGNAL current_state,next_state:asm_st;
BEGIN
reg:PROCESS(clk,reset)
BEGIN
IF (reset=′1′ ) THEN
current_state<=s0;
ELSIF(clk′event AND clk=′1′ ) THEN
current_state<=next_state;
END IF;
END PROCESS;
com:PROCESS(current_state,k)
BEGIN
CASE current_state IS
WHEN s0=>qout<="00";
IF (k=′0′ ) THEN
next_state<=s1;
ELSE
next_state<=s0;
END IF;
WHEN s1=>qout<="01";
IF (k=′0′ ) THEN
next_state<=s1;
ELSE
next_state<=s2;
END IF;
WHEN s2=>qout<="10";
IF (k=′0′ ) THEN
next_state<=s3;
ELSE
next_state<=s2;
END IF;
WHEN s3=>qout<="11";
IF (k=′0′ ) THEN
next_state<=s3;
ELSE
next_state<=s0;
END IF;
WHEN others=>next_state<=s0;
END CASE;
END PROCESS;
END asm_arch;
数字逻辑第五章课后习题答案 5-1、解:(1) 列出电路的激励函数和输出函数表达式: 1111J K CP CP ==??=? 22321,1J Q K CP Q ?==??=?? 323331 ,1 J Q Q K CP Q ?==?? =?? Q 1n+1); Q 2n+1); Q 3 n+1) (2) (4) 功能描述:由状态图可知,此电路为一带自启动能力的六进制计数器。 1 2 3 4 5 6 7 8 CP Q 1 Q 2 Q 3 时间图
5-2、解:表5.29所示为最小化状态表,根据状态分配原则,无“列”相邻(行相邻在脉冲异步时序电路中不适用。),在“输出”相邻中,应给AD、AC分配相邻代码。取A为逻辑0,如下卡诺图所示,状态赋值为:A=00,B=11;C=01;D=10。于是,二进制状态表 如下,根据D触发器的激励表可画出CP2、D2、CP1、D1、Z的卡诺图, 二进制状态表 状态编码 D触发器的激励表
5-3、解: 原始状态图 5-4、解:(1)写出电路的激励函数和输出函数表达式: Y 2=x 2+x 12x 1(2)作状态流程表: (3)作时间图:
设输入状态x2x1的变化序列为00 01 11 10 00 10 11 01.初始总态为(x2x1,y2y1)=(00,00). 从本题的状态流程表推演出总响应序列为 总态响应序列表 x2 x1 y2 y1 Z 时间图 (4)电路功能:当输入状态x2x1的变化序列为01 11 10 00时,电路输出高电平1,其余情况输出低电平0.因此,该电平异步时序电路为01 11 10 00序列检测器。 5-5、解: 时间图如下
第五章 习题答案 1. 画出与阵列编程点 解: --- 2. 画出或阵列编程点 解: ----X 1X 2X 3X 4 3. 与、或阵列均可编程,画出编程点。 解;
1 A -B B -F 3 2 4. 4变量LUT 编程 解: A 0A 1A 2A 3 SOP 输出 5. 用VHDL 写出4输入与门 解: 源代码: LIBRARY IEEE ; USE IEEE .STD_LOGIC_1164.ALL ; ENTITY and4 IS PORT (a ,b ,c ,d :IN STD_LOGIC ; x :OUT STD_LOGIC ); END and4; ARCHITECTURE and4_arc OF and4 IS BEGIN x <=a AND b AND c AND d ; END and4_arc ; 6. 用VHDL 写出4输入或门 解: 源代码: LIBRARY IEEE ;
USE IEEE.STD_LOGIC_1164.ALL; ENTITY or4 IS PORT (a,b,c,d:IN STD_LOGIC; x:OUT STD_LOGIC); END or4; ARCHITECTURE or4_arc OF or4 IS BEGIN x<=a OR b OR c OR d; END or4_arc; 7.用VHDL写出SOP表达式 解:源代码: LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; ENTITY sop IS PORT (a,b,c,d,e,f:IN STD_LOGIC; x:OUT STD_LOGIC); END sop; ARCHITECTURE sop_arc OF sop IS BEGIN x<=(a AND b) OR (c AND d) OR (e AND f); END sop_arc; 8.用VHDL写出布尔表达式 解:源代码: LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; ENTITY boolean IS PORT (a,b,c:IN STD_LOGIC; f:OUT STD_LOGIC); END boolean; ARCHITECTURE boolean_arc OF boolean IS BEGIN f<=(a OR (NOT b)OR c) AND (a OR b OR(NOT c))AND ((NOT a) OR (NOT b) OR (NOT c)); END boolean_arc; 9.用VHDL结构法写出SOP表达式 解:源代码:
数字逻辑课程作业_A 交卷时间:2016-05-04 16:55:11 一、单选题 1. (4分)如图x1-275 ? A. (A) ? B. (B) ? C. (C) ? D. (D) 纠错 得分:0 知识点:第一章 收起解析 答案D 解析第一章补码 2. (4分)以下电路中常用于总线应用的有() ? A. TSL门 B.OC门 C. 漏极开路门 D.CMOS与非门纠错 得分:0 知识点:第三章 收起解析 答案A 解析第三章其他类型的TTL与非门电路
3. (4分)如果异步二进制计数器的触发器为10个,则计数状态有()种 ? A. A:20 ? B. B:200 ? C. C:1000 ? D. D:1024 纠错 得分:0 知识点:第九章 收起解析 答案D 解析第九章计数器 4. (4分)用n个触发器构成的计数器,可得到的最大计数模是() ? A. (A) n ? B. (B) 2n ? C. (C) 2n ? D. (D)2n-1 纠错 得分:4 知识点:第六章 收起解析 答案C 解析第六章触发器电路结构和工作原理 5.
? A. (A) ? B. (B) ? C. (C) ? D. (D) 纠错 得分:0 知识点:第四章 收起解析 答案C 解析第四章组合逻辑电路的分析6. (4分)如图x1-229 ? A. (A) ? B. (B) ? C. (C) ? D. (D) 纠错 得分:0 知识点:第五章 收起解析 答案D 解析第五章译码器 7.
? A. (A) ? B. (B) ? C. (C) ? D. (D) 纠错 得分:0 知识点:第十一章 收起解析 答案C 解析第十一章数字系统概述8. (4分)化简如图h-d-1-22 ? A. A ? B. B ? C. C ? D. D 纠错
第五章触发器 ---------------------------------------------------------------------------- 1 : 具有:置0、置1、保持和翻转功能的触发器是()。 A:JK触发器 B:SR触发器 C:D触发器 D:T触发器 您选择的答案: 正确答案: A 知识点:JK触发器的特性为:J=0,K=0时,Q状态为保持;J=0,K=1时,Q状态为置0;J=1,K=0时,Q状态为置1;J=1,K=1时,Q状态为翻转---------------------------------------------------------------------------- 2 : 对于JK触发器,输入J=0,K=1,CLK脉冲作用后,触发器的次态应为()。 A:0 B:1 C:Q' D:不确定 您选择的答案: 正确答案: A 知识点:JK触发器的特性为:J=1,K=1时,Q状态为翻转,即Q= Q’ ---------------------------------------------------------------------------- 3 : 有一个或非门构成的SR锁存器,欲使该锁存器保持原态即Q*=Q,则输入信号应为()。 A:S=R=0 B:S=R=1 C:S=1,R=0 D:S=0,R=1 您选择的答案: 正确答案: A 知识点:或非门构成的SR锁存器的特性为:R=1, S=0 Q*=0, Q*’=1,即锁存器被置0(0状态);R=0, S=1 Q*=1, Q*’=0,即锁存器被置1(1状态);R=S=0,Q*=Q,即锁存器保持原态;R= S=1 Q*=Q*’=0,此为不允许输入。 ---------------------------------------------------------------------------- 4 : JK触发器要实现Q*=1时,J、K端的取值为()。 A:J=0,K=1 B:J=0,K=0 C:J=1,K=1 D:J=1,K=0
习题五 1. 简述时序逻辑电路与组合逻辑电路的主要区别。 解答 组合逻辑电路:若逻辑电路在任何时刻产生的稳定输出值仅仅取决于该时刻各输入值的组合,而与过去的输入值无关,则称为组合逻辑电路。组合电路具有如下特征: ①由逻辑门电路组成,不包含任何记忆元件; ②信号是单向传输的,不存在任何反馈回路。 时序逻辑电路:若逻辑电路在任何时刻产生的稳定输出信号不仅与电路该时刻的输入信号有关,还与电路过去的输入信号有关,则称为时序逻辑电路。时序逻辑电路具有如下特征: ○1电路由组合电路和存储电路组成,具有对过去输入进行记忆的功能; ○2电路中包含反馈回路,通过反馈使电路功能与“时序”相关; ○3电路的输出由电路当时的输入和状态(过去的输入)共同决定。 2. 作出与表1所示状态表对应的状态图。 表1 状态表
解答 根据表1所示状态表可作出对应的状态图如图1所示。 图1 3. 已知状态图如图2所示,输入序列为x=11010010,设初始状态为A,求状态和输出 响应序列。 图 2 解答 状态响应序列:A A B C B B C B 输出响应序列:0 0 0 0 1 0 0 1
4. 分析图3所示逻辑电路。假定电路初始状态为“00”,说明该电路逻 辑功能 。 图 3 解答 ○1 根据电路图可写出输出函数和激励函数表达式为 x K x,J ,x K ,xy J y xy Z 111121 2===== ○2 根据输出函数、激励函数表达式和JK 触发器功能表可作出状态表如表2所示, 状态图如图4所示。 表2 图4
○3 由状态图可知,该电路为“111…”序列检测器。 5. 分析图5所示同步时序逻辑电路,说明该电路功能。 图5 逻辑电路图 解答 ○1 根据电路图可写出输出函数和激励函数表达式为 ) (D ,x y x D y y x Z 21112121 212y x y y y y y x ⊕=+=+= ○2 根据输出函数、激励函数表达式和D 触发器功能表可作出状态表如表3所示, 状态图如图6所示。 表3
第五章习题答案 1. 画出与阵列编程点 解: 2. 画出或阵列编程点 解: 3. 与、或阵列均可编程,画出编程点解; A A B B C C X i X2 X3 X4
4. 4变量LUT 编程 解: 5. 用VHDL 写出4输入与门 解: 源代码: LIBRARY IEEE ; USE IEEE.STD_LOGIC_1164.ALL ; ENTITY an d4 IS PORT (a, b , c , d : IN STD_LOGIC ; x : OUT STD_LOGIC ); END an d4; ARCHITECTURE an d4_arc OF and4 IS BEGIN x v = a AND b AND c AND d ; END an d4_arq 6. 用VHDL 写出4输入或门 解: 源代码: LIBRARY IEEE ; rr A 眞 B B c 丄 F i F 2 F 3 A 。 A i A 2 A 3 SOP 输 出
USE IEEE.STD_LOGIC_1164.ALL ; ENTITY or4 IS PORT (a,b,c,d:IN STD_LOGIC ;x:OUT STD_LOGIC );END or4; ARCHITECTURE or4_arc OF or4 IS BEGIN x v = a OR b OR c OR d; END or4_arc; 7. 用VHDL 写出SOP 表达式 解:源代码: LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL ; ENTITY sop IS PORT (a,b,c,d,e,f:IN STD_LOGIC ;x:OUT STD_LOGIC ); END sop; ARCHITECTURE sop_arc OF sop IS BEGIN x v = (a AND b) OR (c AND d) OR (e AND f); END sop_arc; 8. 用VHDL 写出布尔表达式 解:源代码: LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL ; ENTITY boolean IS PORT (a,b,c:IN STD_LOGIC ;f:OUT STD_LOGIC ); END boolean ; ARCHITECTURE boolean_arc OF boolean IS BEGIN f v= (a OR (NOT b) OR c) AND (a OR b OR (NOT c)) AND ((NOT a) OR (NOT b) OR (NOT c));END boolean_arc; 9. 用VHDL 结构法写出SOP 表达式 解:源代码:
第五章 同步时序逻辑电路的习题 一、基本知识点 1、时序逻辑电路的一般结构 特点:a 、有存储电路(记忆元件);有组合电路(特殊时可没有) b 、包含反馈电路,电路功能与“时序”相关 c 、输出不仅与输入(X )有关,而且与存储状态(Y )有关 分类:(1)Mealy 型 Z =F (X ,Q ) 输出是电路的输入和现态的函数(注意输出与输入有直接关系) (2)Moore 型 Z =F (Q ) 输出仅仅是电路现态的函数(注意输出与输入没有直接关系) 同步时序逻辑电路:各触发器共用同一时钟信号,即电路中各触发器状态的转换时刻在统一时钟信号控制下同步发生。 异步时序逻辑电路:电路没有统一的时钟信号对状态变化进行同步控制,输入信号的变化将直接引起电路状态的变化。 //本课程将较少讨论异步时序逻辑电路 2、同步时序逻辑电路的描述 注意:任一个同步时序逻辑电路的结构和功能可用3组函数表达式完整地描述。 (1)激励函数表达式:存储电路输入Y 与电路输入X 和现态Q 之间的关系 Y =F (X ,Q ) //现态Q 就是上图存储电路原始的输出y k (2)次态函数表达式:电路的次态Q n+1与激励函数Y 和现态Q 之间关系 Q n+1=F (Y ,Q ) //次态Q n+1就是上图存储电路再次触发后的输出y k n+1 (3)输出函数表达式:电路的输出Z 和输入X 和当前现态Q 的关系 Mealy 型 Z =F (X ,Q ) Moore 型 Z =F (Q ) 输入信号 输出信号 X 1 X 2 X n Z 1 Z 2 Z m y s 过去输入 现态 现在输入 } 输出 输出 所有输入 现态