EDA技术及应用试卷D含答案.doc
EDA技术与应用 试卷D一、填空题(每题2分,共0分)1、 赋值语句中,为变量赋值的符号是( ),为信号赋值的符号是( )。2、 在VHDL中,BIT数据类型有( )种 逻辑值。3、 VHDL的标示符名必须以( ),后跟若干字母、数字或单个下划线组成,但最后不能为( )。4、 VHDL程序设计中常用的库有( )库、STD库、WORK库。5、 用VHDL语言描述时钟脉冲CLK的上升沿时可写为( )。二、 选择题(每题2分,共10分)1、 VHDL常用的库是( )标准库。 A、IEEE B、STD C、WORK D、PACKAGE2、 VHDL的实体声明部分用来指定设计单元的( )。 A、 输入端口 B、输出端口 C、引脚 D、以上均可3、 在VHDL的端口声明语句中,用( )声明端口为输入方向。 A、IN B、OUT C、INOUT D、BUFFER4、 一个设计实体可以拥有一个或多个( )。 A、 设计实体 B、结构体 C、库 D 实体名5、 在VHDL中,定义信号名时,可以用( )符号为信号赋初值。 A=: B、= C、:= D、<=三、程序分析(每题10分,共40分)要求:(1) 将标有下划线语句补充完整(3分)(2) 解释后带*的语句(3分)(3) 说明该程序逻辑功能(4分) 1、程序1 LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; * ENTITY encoder IS PORT(d:IN ; y:OUT STD_LOGIC_VECTOR(2 DOWNTO 0); * END encoder; ARCHITECTURE beh OF encoder IS BEGIN IF d(7)=0 THEN y<=”000”; * ELSIF d(6)=0 THEN y<=”001”; ELSIF d(5)=0 THEN y<=”010”; ELSIF d(4)=0 THEN y<=”011”; ELSIF d(3)=0 THEN y<=”100”; ELSIF d(2)=0 THEN y<=”101”; ELSIF d(1)=0 THEN y<=”110”; ELSIF d(0)=0 THEN y<=”111”; END IF; End process; END beh;2、程序2LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY ISPORT( d,clk,clrn,prn,ena:in std_logic; q: );END d4;ARCHITECTURE a OF d4 IS PROCESS(clk,prn,clrn,ena,d) BEGIN IF prn=0THEN q<=1; * ELSIF clrn=0 THEN q<=0; * ELSIF clkevent AND clk=1 THEN * IF ena=1 then q<=d; END IF; END IF; END PROCESS;END a;3、程序3 Library ieee; Use ieee.std_logic_1164.all; Use ieee.std_logic_unsigned.all; Entity subadd is Port(c:in std_logic; A,b:in std_logic_vector(3 downto 0); S:out std_logic_vector(3 downto 0); Co:out std_logic); ; Architecture a of subadd is Signal a1,a2,a3:std_logic_vector(4 downto 0); Begin Process Begin A1<=0&a; * A2<=0&b; If c=1 then A3<=a1+a2; * Else A3<=a1-a2; * End if; ; ; End process;End a;4、程序4 LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; ENTITY mux41 IS PORT(s1,s2: IN STD_LOGIC; * a,b,c,d: IN STD_LOGIC; z: OUT STD_LOGIC;); END ENTITY mux41; ARCHITECTURE activ OF mux41 IS SIGNAL s: ; BEGIN ; PROCESS(s,a,b,c,d) BEGIN CASE s IS WHEN “00”=>z<=a; WHEN “01”=>z<=b; WHEN “10”=>z<=c; WHEN “11”=>z<=d; WHEN OTHERS =>z<=X; * ; END PROCESS; * END activ;四、用完整的VHDL源程序设计一个二输入同或门,相关的标识自定。(20分)五、简答题(20分)1、一个最简单的VHDL语言由哪几部分组成?简述各部分的主要功能。2、简述信号和变量的区别。EDA技术与应用 试卷D答案一、填空题(每题2分,共0分)5、 赋值语句中,为变量赋值的符号是( :=),为信号赋值的符号是(<=)。6、 在VHDL中,BIT数据类型有(两)种 逻辑值。7、 VHDL的标示符名必须以(字母开头),后跟若干字母、数字或单个下划线组成,但最后不能为(下划线)。8、 VHDL程序设计中常用的库有( IEEE)库、STD库、WORK库。9、 用VHDL语言描述时钟脉冲CLK的上升沿时可写为( )。三、 选择题(每题2分,共10分)1、 VHDL常用的库是( A )标准库。 A、IEEE B、STD C、WORK D、PACKAGE2、 VHDL的实体声明部分用来指定设计单元的(D) A、 输入端口 B、输出端口 C、引脚 D、以上均可3、 在VHDL的端口声明语句中,用(A)声明端口为输入方向。 A、IN B、OUT C、INOUT D、BUFFER4、 一个设计实体可以拥有一个或多个(B) A、 设计实体 B、结构体 C、库 D 实体名5、 在VHDL中,定义信号名时,可以用(C)符号为信号赋初值。 A=: B、= C、:= D、<=三、程序分析(每题10分,共40分)要求:(4) 将标有下划线语句补充完整(3分)(5) 解释后带*的语句(3分)(6) 说明该程序逻辑功能(4分) 1、程序1 LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; * ENTITY encoder IS PORT(d:IN STD_LOGIC_VECTOR(7 DOWNTO 0); y:OUT STD_LOGIC_VECTOR(2 DOWNTO 0); * END encoder; ARCHITECTURE beh OF encoder IS BEGIN Process(d)begin IF d(7)=0 THEN y<=”000”; * ELSIF d(6)=0 THEN y<=”001”; ELSIF d(5)=0 THEN y<=”010”; ELSIF d(4)=0 THEN y<=”011”; ELSIF d(3)=0 THEN y<=”100”; ELSIF d(2)=0 THEN y<=”101”; ELSIF d(1)=0 THEN y<=”110”; ELSIF d(0)=0 THEN y<=”111”; END IF; End process; END beh;2、程序2LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY d4 ISPORT( d,clk,clrn,prn,ena:in std_logic; q: out STD_LOGIC );END d4;ARCHITECTURE a OF d4 ISBEGINPROCESS(clk,prn,clrn,ena,d) BEGIN IF prn=0THEN q<=1; * ELSIF clrn=0 THEN q<=0; * ELSIF clkevent AND clk=1 THEN * IF ena=1 then q<=d; END IF; END IF; END PROCESS;END a;3、程序3Library ieee; Use ieee.std_logic_1164.all; Use ieee.std_logic_unsigned.all; Entity subadd is Port(c:in std_logic; A,b:in std_logic_vector(3 downto 0); S:out std_logic_vector(3 downto 0); Co:out std_logic); End subadd; Architecture a of subadd is Signal a1,a2,a3:std_logic_vector(4 downto 0); Begin Process Begin A1<=0&a; * A2<=0&b; If c=1 then A3<=a1+a2; * Else A3<=a1-a2; * End if; S<=a3(3 downto 0); Co<=a3(4); End process;End a;4、程序4 LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; ENTITY mux41 IS PORT(s1,s2: IN STD_LOGIC; * a,b,c,d: IN STD_LOGIC; z: OUT STD_LOGIC;); END ENTITY mux41; ARCHITECTURE activ OF mux41 IS SIGNAL s: STD_LOGIC_VECTOR(1 DOWNTO 0); BEGIN s<=s1 & s2; PROCESS(s,a,b,c,d) BEGIN CASE s IS WHEN “00”=>z<=a; WHEN “01”=>z<=b; WHEN “10”=>z<=c; WHEN “11”=>z<=d; WHEN OTHERS =>z<=X; * END CASE; END PROCESS; * END activ;四、用完整的VHDL源程序设计一个二输入同或门,相关的标识自定。(20分)五、简答题(20分)1、一个最简单的VHDL语言由哪几部分组成?简述各部分的主要功能。2、简述信号和变量的区别。