EDA技术及应用试卷C含答案.doc
EDA技术与应用 试卷C一、 填空题(每题2分,共0分)1、 在VHDL中最常用的库是( )标准库,最常用的数据包是( )数据包。2、 VHDL的实体声明部分指定了设计单元的( ),它是设计实体对外的一个通信界面,是外界可以看到的部分。3、 在VHDL的端口声明语句中,端口方向包括( )、( )、( )和( )。4、 在用VHDL语言设计电路时,一般要求文件名与( )名一致,后缀是( )。5、 在VHDL中,标准逻辑位数据有( )种逻辑值。二、 选择题(每题2分,共10分)1、 在VHDL的端口声明语句中,用( )声明端口为输出方向。A、 IN B、OUT C、INOUT D、BUFFER2、 在VHDL中,( )不能将信息带出对它定义的当前设计单元。A、信号 B、常量 C、 数据 D、变量 3、 在VHDL中,( )的数据传输不是立即发生的,目标信号 的赋值需要一定的延时时间。A、 信号 B、常量 C、数据 D、变量 4、 在VHDL中,为目标变量赋值的符号是( )。 A=: B、= C、:= D、<= 5、 在下列标识符中,( )是VHDL合法的标识符。 A、4h_adde B、h_adde_ C、 h_adder D、_h_adde三、程序分析(每题10分,共40分)要求:(1) 将标有下划线语句补充完整(3分)(2) 解释后带*的语句(3分)(3) 说明该程序逻辑功能(4分)1、程序1LIBRARY ieee;USE ieee.std_logic_1164.ALL; entity is *port (a :in std_logic_vector(3 downto 0); sel: ; d:out std_logic);end xuan2;architecture a of xuan2 isbeginprocess(sel)begincase is * when "00" =>d<=a(0); * when "01" =>d<=a(1); when "10" =>d<=a(2); when others =>d<=a(3);end case;end process;end a; 2、程序2 Library ieee; Use ieee.std_logic_1164.all; Entity multi3 is Port(a,b:in std_logic_vector(2 downto 0); y: ); end ; architecture a of multi3 is signal temp1:std_logic_vector(2 downto 0); signal temp2:std_logic_vector(3 downto 0); signal temp3:std_logic_vector(4 downto 0); * begin temp1<=a when b(0)=1 else “000”; * temp2<=(a&0) when b(1)=1 else “0000”; temp3<=(a&“00”) when b(2)=1 else “00000”; y<=temp1+temp2+(0&temp3); *end a;3、程序3library ieee;Use ieee.std_logic_1164.all;Entity sevenbcd is Port(s:in integer range 0 to 9; * G,f,e,d,c,b,a:out std_logic);End sevenbcd;Architecture a of sevenbcd isSignal y: ;Begin Process(s) * Case s is When 0 =>y<="0111111" * When 1 =>y<="0000110" When 2 => ; When 3 =>y<="1001111" When 4 =>y<="1100110" When 5 =>y<="1101101" When 6 =>y<="1111101" When 7 =>y<="0000111" When 8 =>y<="1111111" When 9 =>y<="1101111" When others =>y<="0000000" End case; End process; a<=y(0); b<=y(1); c<=y(2); d<=y(3); e<=y(4); f<=y(5); g<=y(6);End a;4、程序4LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY jk4 IS PORT(J, K:IN STD_LOGIC; clk: ; prn, clr: IN STD_LOGIC; q,qb:OUT STD_LOGIC);END jk4;ARCHITECTURE a OF jk4 IS qtmp, qbtmp: ; BEGIN PROCESS(clk, prn, clr, j, k) BEGIN IF prn=0 THEN qtmp<=1; qbtmp<=0; * ELSIF clkevent AND clk=1tHEN IF clr=0 THEN qtmp<=0; qbtmp<=1; ELSIF j=0 AND k=0 THEN NULL; ELSIF j=0 AND k=1 THEN qtmp<=0; qbtmp<=1; ELSIF j=1 AND k=0 THEN qtmp<=1; qbtmp<=0; ELSE qtmp<=NOT qtmp; qbtmp<=NOT qbtmp; * END IF; END IF;q<=qtmp; qb<=qbtmp; * END PROCESS; END a;四、设计一个比较器,用于实现两个4位二进制数的比较,真值表如下:(20分) 输入信号 输出信号A3.0B3.0F1F2F3 A>B100 A=B010 A<B001五、简答题(20分)1、VHDL语言结构体的描述方式有哪几种? 试述各自的特点。2、什么是并行语句?什么是顺序语句? 两者有何区别? EDA技术与应用 试卷C答案三、 填空题(共0分,每题2分)1、 在VHDL中最常用的库是(IEEE)标准库,最常用的数据包是(STD_logic_1164)数据包。2、 VHDL的实体声明部分指定了设计单元的(输入出端口),它是设计实体对外的一个通信界面,是外界可以看到的部分。3、 在VHDL的端口声明语句中,端口方向包括(输入)、(输出)、(双向)和(缓冲)。4、 在用VHDL语言设计电路时,一般要求文件名与( 实体)名一致,后缀是(VHD)。5、 在VHDL中,标准逻辑位数据有( 九)种逻辑值。四、 选择题(每题2分,共10分)1、 在VHDL的端口声明语句中,用(B)声明端口为输出方向。A、 IN B、OUT C、INOUT D、BUFFER2、 在VHDL中,(D)不能将信息带出对它定义的当前设计单元。A、信号 B、常量 C、 数据 D、变量 3、在VHDL中,(A)的数据传输不是立即发生的,目标信号的赋 值需要一定的延时时间。B、 信号 B、常量 C、数据 D、变量 4、在VHDL中,为目标变量赋值的符号是(C)。 A=: B、= C、:= D、<= 5、在下列标识符中,(C)是VHDL合法的标识符。 A、4h_adde B、h_adde_ C、 h_adder D、_h_adde三、程序分析(每题10分,共40分)要求:(4) 将标有下划线语句补充完整(3分)(5) 解释后带*的语句(3分)(6) 说明该程序逻辑功能(4分)1、程序1LIBRARY ieee;USE ieee.std_logic_1164.ALL; entity xuan2 is *port (a :in std_logic_vector(3 downto 0); sel:in std_logic_vector(1 downto 0); d:out std_logic);end xuan2;architecture a of xuan2 isbeginprocess(sel)begincase sel is * when "00" =>d<=a(0); * when "01" =>d<=a(1); when "10" =>d<=a(2); when others =>d<=a(3);end case;end process;end a; 2、程序2 Library ieee; Use ieee.std_logic_1164.all; Use ieee.std_logic_unsigned.all; Entity multi3 is Port(a,b:in std_logic_vector(2 downto 0); y:out std_logic_vector (5 downto 0); end multi3; architecture a of multi3 is signal temp1:std_logic_vector(2 downto 0); signal temp2:std_logic_vector(3 downto 0); signal temp3:std_logic_vector(4 downto 0); * begin temp1<=a when b(0)=1 else “000”; * temp2<=(a&0) when b(1)=1 else “0000”; temp3<=(a&“00”) when b(2)=1 else “00000”; y<=temp1+temp2+(0&temp3); *end a;3、程序3library ieee;Use ieee.std_logic_1164.all;Entity sevenbcd is Port(s:in integer range 0 to 9; * G,f,e,d,c,b,a:out std_logic);End sevenbcd;Architecture a of sevenbcd isSignal y:std_logic_vector(6 downto 0);Begin Process(s) * Begin Case s is When 0 =>y<="0111111" * When 1 =>y<="0000110" When 2 =>y<="1011011" When 3 =>y<="1001111" When 4 =>y<="1100110" When 5 =>y<="1101101" When 6 =>y<="1111101" When 7 =>y<="0000111" When 8 =>y<="1111111" When 9 =>y<="1101111" When others =>y<="0000000" End case; End process; a<=y(0); b<=y(1); c<=y(2); d<=y(3); e<=y(4); f<=y(5); g<=y(6);End a;4、程序4LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY jk4 IS PORT(J, K:IN STD_LOGIC; clk:IN STD_LOGIC; prn, clr: IN STD_LOGIC; q,qb:OUT STD_LOGIC);END jk4;ARCHITECTURE a OF jk4 IS SIGNAL qtmp, qbtmp: STD_LOGIC; BEGIN PROCESS(clk, prn, clr, j, k) BEGIN IF prn=0 THEN qtmp<=1; qbtmp<=0; * ELSIF clkevent AND clk=1tHEN IF clr=0 THEN qtmp<=0; qbtmp<=1; ELSIF j=0 AND k=0 THEN NULL; ELSIF j=0 AND k=1 THEN qtmp<=0; qbtmp<=1; ELSIF j=1 AND k=0 THEN qtmp<=1; qbtmp<=0; ELSE qtmp<=NOT qtmp; qbtmp<=NOT qbtmp; * END IF; END IF;q<=qtmp; qb<=qbtmp; * END PROCESS; END a;四、设计一个比较器,用于实现两个4位二进制数的比较,真值表如下:(20分) 输入信号 输出信号A3.0B3.0F1F2F3 A>B100 A=B010 A<B001五、简答题(20分)1、VHDL语言结构体的描述方式有哪几种? 试述各自的特点。2、什么是并行语句?什么是顺序语句? 两者有何区别?