《EDA技术及应用》朱正伟-三,四,五章部分课后题答案
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第三章
3-5设计一个4选1多路选择器,当选择输入信号分别取“00”、“01”、“10”和“11”时,输出信号分别与一路输入信号相连。
LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
ENTITY MAX4_1 IS
PORT(A,B,C,D,S1,S2 : IN STD_LOGIC;
Y : OUT STD_LOGIC);
END ENTITY MAX4_1;
ARCHITECTURE HF1 OF MAX4_1 IS
SIGNAL SS : STD_LOGIC_VECTOR (0 TO 1);
BEGIN
SS<=S2&S1;
PROCESS(SS)
BEGIN
CASE SS IS
WHEN "00" => Y<=A;
WHEN "01" => Y<=B;
WHEN "10" => Y<=C;
WHEN "11" => Y<=D;
WHEN OTHERS => NULL;
END CASE;
END PROCESS;
END HF1;
3-6设计一个7人表决电路,参加表决者7人,同意为1,不同意为0,同意者过半则表决通过,绿指示灯亮;表决不通过则红指示灯亮。设计思路:根据7人表决电路设计要求,7人中至少有4个通过才可以表决通过,故可以在程序中设置一个变量TEMP,使其在表决电路中遇1则加1,遇0则加0(设计中1表示通过,0表示不通过)。当TEMP>=4时,表示表决通过,当TEMP<4时表决不通过。
LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
USE IEEE.STD_LOGIC_UNSIGNED.ALL;
ENTITY VOTE7 IS
PORT (MEN:IN STD_LOGIC_VECTOR(6 DOWNTO 0);
OUTPUT: OUT BIT);
END VOTE7;
ARCHITECTURE BEHA VE OF VOTE7 IS
BEGIN
PROCESS(MEN)
V ARIABLE TEMP: INTEGER RANGE 0 TO 7;
BEGIN
TEMP:=0;
FOR I IN 0 TO 6 LOOP
IF(MEN(I)='1')THEN
TEMP:=TEMP+1;
ELSE
TEMP:=TEMP;
END IF;
END LOOP;
CASE TEMP IS
WHEN 0 TO 3 =>OUTPUT<='0';
WHEN 4 TO 7 =>OUTPUT<='1';
END CASE ;
END PROCESS;
END BEHA VE;
第四章
4-6试写出4选1多路选择器VHDL描述。选择控制信号为S1和S0,输入信号为A,B,C,D,输出信号为Y。
LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
ENTITY MUX41A IS
PORT (A,B,C,D,S0,S1:IN STD_LOGIC; --输入信号
Y:OUT STD_LOGIC); --输出信号
END ENTITY MUX41A;
ARCHITECTURE ONE OF MUX41A IS
SIGNAL S:STD_LOGIC_VECTOR(1 DOWNTO 0);
BEGIN
S<=S0&S1; --并置操作,获得二维矢量数据类型
PROCESS(S0,S1,A,B,C,D) --敏感信号
BEGIN
CASE S IS
WHEN"00"=> Y<=A;
WHEN"01"=> Y<=B;
WHEN"10"=> Y<=C;
WHEN"11"=> Y<=D;
WHEN OTHERS=>NULL; --其它情况为空值
END CASE; --CASE语句结束
END PROCESS; --PROCESS进程语句结束
END ARCHITECTURE ONE;
4-7使给出1位全减器的VHDL描述,要求:首先设计1位半减器,然后用例化语句将它们连接起来。设X为被减数,Y为减数,SUB_IN是借位输入,DIFF是输出差,SUB_OUT是借位输出。
(1.1):实现1位半减器H_SUBER(DIFF=X-Y;S_OUT=1,X LIBRARY IEEE; --半减器描述(1):布尔方程描述方法 USE IEEE.STD_LOGIC_1164.ALL; ENTITY H_SUBER IS PORT( X,Y: IN STD_LOGIC; DIFF,S_OUT: OUT STD_LOGIC); END ENTITY H_SUBER; ARCHITECTURE HS1 OF H_SUBER IS BEGIN DIFF <= X XOR (NOT Y); S_OUT <= (NOT X) AND Y; END ARCHITECTURE HS1; --解(1.2):采用例化实现图4-20的1位全减器 LIBRARY IEEE; --1位二进制全减器顺层设计描述 USE IEEE.STD_LOGIC_1164.ALL; ENTITY F_SUBER IS PORT(XIN,YIN,SUB_IN: IN STD_LOGIC; SUB_OUT,DIFF_OUT: OUT STD_LOGIC); END ENTITY F_SUBER; ARCHITECTURE FS1 OF F_SUBER IS COMPONENT H_SUBER --调用半减器声明语句 PORT(X, Y: IN STD_LOGIC; DIFF,S_OUT: OUT STD_LOGIC); END COMPONENT; SIGNAL A,B,C: STD_LOGIC; --定义1个信号作为内部的连接线。 BEGIN U1:H_SUBER PORT MAP(X=>XIN,Y=>YIN, DIFF=>A, S_OUT=>B); U2:H_SUBER PORT MAP(X=>A, Y=>SUB_IN, DIFF=>DIFF_OUT,S_OUT=>C); SUB_OUT <= C OR B; END ARCHITECTURE FS1; 二进制全加器,元件声明与元件例化(COMPONENT,PORT MAP) //或门 LIBRARY IEEE; ; USE IEEE.STD_LOGIC_1164.ALL; ENTITY OR2A IS PORT(A,B : IN STD_LOGIC; C : OUT STD_LOGIC); END OR2A; ARCHITECTURE ART1 OF OR2A IS BEGIN C<=A OR B; END ART1; //半加器; LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; ENTITY H_ADDER IS PORT(A,B : IN STD_LOGIC; CO,SO: OUT STD_LOGIC); END H_ADDER;