EDA技术实用教程课后答案 - 潘松-黄继业

发布时间 : 星期三 文章EDA技术实用教程课后答案 - 潘松-黄继业更新完毕开始阅读

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; 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(e)RTL图的VHDL程序t3_12_d.vhd顶层设计描述 LIBRARY IEEE;

USE IEEE.STD_LOGIC_1164.ALL; ENTITY t3_12_e IS

PORT(D,EN,CLK,RST : IN STD_LOGIC; Q1,Q : OUT STD_LOGIC); END ENTITY t3_12_e;

ARCHITECTURE one OF t3_12_e 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 D_EN: STD_LOGIC; --定义1个信号作为内部的连接线。 BEGIN

D_EN<=D AND EN;

u1: DFF_PRE_CLR_ENA PORT MAP(CLK=>CLK,D=>D,Q=>Q,ENA=>EN,PRE=>'0',CLR=>RST); Q1<=(NOT D_EN) OR RST; END ARCHITECTURE one;

图3-20 RTL图(f)

--解1:实现图3-20(f)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(f)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; 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;

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

USE IEEE.STD_LOGIC_1164.ALL; ENTITY t3_12_f IS

PORT(RST,D,CLK : IN STD_LOGIC; Q,DOUT : OUT STD_LOGIC);

联系合同范文客服:xxxxx#qq.com(#替换为@)