发布时间 : 星期日 文章EDA技术实用教程(第四版)习题答案更新完毕开始阅读ebe07e9752ea551811a68792
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 MAP(CLK=>CLK,D=>D,Q=>Q,ENA=>EN,PRE=>'0',CLR=>RST); Q1<=(NOT D_EN) OR RST; END ARCHITECTURE one;
PORT
图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); END ENTITY t3_12_f;
ARCHITECTURE one OF t3_12_f 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;
COMPONENT mux21a --调用D触发器声明语句 PORT(a,b : IN STD_LOGIC; s : IN STD_LOGIC; y : OUT STD_LOGIC); END COMPONENT;
SIGNAL DD,DDD: STD_LOGIC; --定义1个信号作为内部的连接线。 BEGIN
u1: mux21a PORT MAP(D,'0',RST,DD); DDD<=D XOR DD;
u2: DFF_PRE_CLR_ENA PORT MAP(CLK,DDD,DOUT,'1','0','0'); u3: DFF_PRE_CLR_ENA PORT MAP(CLK,DD,Q,'1','0','0'); END ARCHITECTURE one;
4 习 题
4-1 归纳利用Quartus II进行VHDL文本输入设计的流程:从文件输入一直到SignalTap II测试。P95~P115
4-2 由图4-35和图4-36,详细说明工程设计CNT10的硬件工作情况。P114~P115
4-3 如何为设计中的SignalTap II加入独立采样时钟?试给出完整的程序和对它的实测结果。P115
4-4 参考QuartusII的Help,详细说明Assignments菜单中Settings对话框的功能。 (1)说明其中的Timing Requirements&Qptions的功能、他用方法和检测途经。 (2)说明其中的Compilation Process的功能和使用方法。
(3)说明Analysis&Synthesis Setting的功能和使用方法,以及其中的Synthesis Netlist
Optimization的功能和使用方法。
(4)说明FitterSettings中的DesignAssistant和Simulator功能,举例说明它们的使用方法。 4-6 用74148(8-3线八进位优先编码器)和与非门实现8421BCD优先编码器,用3(5)片74139(2线-4线译码器)组成一个5-24(4-16)线译码器。
4-7 用74283(4位二进制全加器)加法器和逻辑门设计实现一位8421BCD码加法器电路,输入输出均是BCD码,CI为低位的进位信号,CO为高位的进位信号,输入为两个1位十进制数A,输出用S表示。