《EDA技术实用教程第四版》习题答案. 联系客服

发布时间 : 星期二 文章《EDA技术实用教程第四版》习题答案.更新完毕开始阅读84ae4f70657d27284b73f242336c1eb91a37332c

ARCHITECTURE sxdl OF t3_12_a IS ----时序电路sxdl SIGNAL Q : STD_LOGIC; BEGIN

PROCESS(CLK0) BEGIN

IF CLK0'EVENT AND CLK0='1' THEN --检测时钟上升沿 Q <= NOT(Q OR CL); END IF;

END PROCESS; OUT1 <= NOT Q;

END ARCHITECTURE sxdl;

图3-20 RTL图(b)

--解:实现图3-20(b)RTL图的VHDL程序t3_12_b.vhd LIBRARY IEEE;

USE IEEE.STD_LOGIC_1164.ALL; ENTITY t3_12_b IS

PORT (A,B,C,D: IN STD_LOGIC; Y: OUT STD_LOGIC); END ENTITY t3_12_b;

ARCHITECTURE sxdl OF t3_12_b IS ----时序电路sxdl SIGNAL AB,CD,ABCD : STD_LOGIC; BEGIN

PROCESS(A,B,C,D,AB,CD,ABCD) BEGIN

AB<=A AND B; CD<=C OR D;

ABCD<=AB XOR CD;

CASE AB IS --类似于真值表的case语句 WHEN '0' => Y <= A;

WHEN '1' => Y <= ABCD; WHEN OTHERS =>NULL ; END CASE; END PROCESS;

END ARCHITECTURE sxdl;

图3-20 RTL图(c)

--解1:实现图3-20(c) RTL图的VHDL程序mux21a.vhd底层设计描述。 -- 用(WHEN_ELSE)实现2选1多路选择器程序(mux21a.vhd)。 LIBRARY IEEE;

USE IEEE.STD_LOGIC_1164.ALL; ENTITY mux21a IS

PORT(a,b : IN STD_LOGIC; s : IN STD_LOGIC; y : OUT STD_LOGIC); END ENTITY mux21a;

ARCHITECTURE one OF mux21a IS BEGIN

y<=a WHEN s='0' ELSE b; END ARCHITECTURE one;

--解2:实现图3-20(c)RTL图的VHDL程序DFF6.vhd底层设计描述。 -- 电平触发D型触发器程序(DFF6.vhd) LIBRARY IEEE;

USE IEEE.STD_LOGIC_1164.ALL; ENTITY DFF6 IS

PORT(CLK: IN STD_LOGIC; D: IN STD_LOGIC; Q:OUT STD_LOGIC); END;

ARCHITECTURE bhv OF DFF6 IS BEGIN

PROCESS(CLK,D) BEGIN

IF CLK='1'

THEN Q<=D; END IF; END PROCESS; END bhv;

--解3:实现图3-20(c)RTL图的VHDL程序t3_12_c.vhd顶层设计描述。 LIBRARY IEEE;

USE IEEE.STD_LOGIC_1164.ALL; ENTITY t3_12_c IS

PORT(D1,D2,CLK : IN STD_LOGIC; Q : OUT STD_LOGIC);

END ENTITY t3_12_c;

ARCHITECTURE one OF t3_12_c IS

COMPONENT mux21a --调用2选1多路选择器声明语句 PORT(a,b : IN STD_LOGIC; s : IN STD_LOGIC; y : OUT STD_LOGIC); END COMPONENT;

COMPONENT DFF6 --调用电平型D触发器声明语句 PORT(CLK: IN STD_LOGIC; D: IN STD_LOGIC; Q:OUT STD_LOGIC); END COMPONENT;

SIGNAL DD: STD_LOGIC; --定义1个信号作为内部的连接线。 BEGIN

u1: mux21a PORT MAP(CLK,D2,D1,DD); u2: DFF6 PORT MAP(CLK,DD,Q); END ARCHITECTURE one;

图3-20 RTL图(d)

--解1:实现图3-20(d)RTL图的VHDL程序DFF_PRE.vhd底层设计描述 -- 带预置、清零和输出使能的D触发器程序(DFF_PRE.vhd)。 LIBRARY IEEE;

USE IEEE.STD_LOGIC_1164.ALL; ENTITY DFF_PRE_CLR_ENA IS PORT(CLK : IN STD_LOGIC; D : IN STD_LOGIC; Q :OUT STD_LOGIC; ENA : IN STD_LOGIC; PRE : IN STD_LOGIC; CLR : IN STD_LOGIC); END;

ARCHITECTURE bhv OF DFF_PRE_CLR_ENA IS

SIGNAL Q1:STD_LOGIC; --类似于在芯片内部定义一个数据的暂存节点 BEGIN

PROCESS(CLK,D,Q1,ENA,PRE,CLR) BEGIN

IF CLR='1' THEN Q1<='0'; ELSIF PRE='1' THEN Q1<='1';

ELSIF CLK'EVENT AND CLK='1' AND ENA='1' THEN Q1<=D;

END IF;

--IF EN='1' THEN Q<=Q1; --将内部的暂存数据向端口输出 --END IF;

Q<=Q1; --将内部的暂存数据向端口输出 END PROCESS; END bhv;

--解2:实现图3-20(d)RTL图的VHDL程序t3_12_d.vhd顶层设计描述 LIBRARY IEEE;

USE IEEE.STD_LOGIC_1164.ALL; ENTITY t3_12_d IS

PORT(SET,D,CLK,EN,RESET : IN STD_LOGIC; Q : OUT STD_LOGIC); END ENTITY t3_12_d;

ARCHITECTURE one OF t3_12_d IS

COMPONENT DFF_PRE_CLR_ENA --调用D触发器声明语句 PORT(CLK : IN STD_LOGIC; D : IN STD_LOGIC; Q :OUT STD_LOGIC; ENA : IN STD_LOGIC; PRE : IN STD_LOGIC; CLR : IN STD_LOGIC); END COMPONENT;

SIGNAL SS: STD_LOGIC; --定义1个信号作为内部的连接线。 BEGIN

SS<=SET AND (NOT RESET);

u1: DFF_PRE_CLR_ENA PORT MAP(CLK,D,Q,EN,SS,RESET); END ARCHITECTURE one;

图3-20 RTL图(e)

--解1:实现图3-20(e)RTL图的VHDL程序DFF_PRE_CLR.vhd底层设计描述 -- 带预置、清零和输出使能的D触发器程序(DFF_PRE_CLR.vhd) LIBRARY IEEE;

USE IEEE.STD_LOGIC_1164.ALL; ENTITY DFF_PRE_CLR_ENA IS PORT(CLK : IN STD_LOGIC; D : IN STD_LOGIC; Q :OUT STD_LOGIC;