2009/2010 学年第 学期末考试试题答案及评分标准
A卷)
得分
一、 填空题(20,每空格1分)
1、一个完整的VHDL语言程序通常包含  实体(entity  构造体(architecture
配置(configuration  包集合(package  库(library 5各部分。
2、在一个实体的端口方向说明时,输入使用in表示,那么构造体内部不能再使用的输出是用  out  表示;双向端口是用  inout  表示;构造体内部可再次使用的输出是用  buffer  表示;
3、一个构造体可以使用几个子结构,即相对比较独立的几个模块来构成。VHDL语言可以有以下3种形式的子结构描述语句:  BLOCK  语句结构;  PROCESS 语句结构和SUBPROGRAMS结构。
4VHDL的客体,或称数据对象包括了常数、  变量variable    信号signal
5、请列出三个VHDL语言的数据类型,如实数、位等。  位矢量    字符    布尔量 
6、设D0'0', D1'0', D2'1', D3'0', D0 & D1 & D2 & D3的运算结果是0010 D3 & D2 & D1 & D0的运算结果是0100
7、构造体的描述方式包括三种,分别是 寄存器传输(RTL)描述方法或称数据流   构造体的结构描述方式   构造体的行为描述方式 
decoder
得分
二、 判断对错并给出判断依据(20分,每小题5分,判断对错2分,给出正确答案3分)
1、传统的系统硬件设计方法是采用自上而下(top down)的设计方法,利用硬件描述语言(HDL)的硬件电路设计方法采用自下而上bottom up的设计方法。              ×
传统的系统硬件设计方法是采用自下而上(bottom up的设计方法,利用硬件描述语言(HDL)的硬件电路设计方法采用自上而下(top down的设计方法
2VHDL可以采用层次化的设计,一个高层的结构体中可以调用低层的实体     
3、一个VHAL程序中仅能使用一个进程(process)语句。                    ×
可以使用多个进程语句。
4VHDL语言的预算操作包括了逻辑运算符、关系运算符、乘法运算符等,它们三者的优先级是相同的。                                                                ×   
逻辑运算符<关系运算符<乘法运算
得分
三、判断题(10分)
use ieee.std_logic_1164.all;
use ieee.std_logic_arith.all;
use ieee.std_logic_unsigned.all;
以上库和程序包语句有无错误?            ,有的话请在原程序相应位置改正。 (2)
entity rom is
    port(
            addr: in std_logic_vector(0 to 3);
            ce:    in std_logic;
            data:out std_logic_vector(7 downto 0)  ;
        );
end rom;
以上port语句有无错误?            ,有的话请在原程序相应位置改正。    (4)
architecture behave of rom is
begin
process(ce,addr)                                                       
    begin
    if ce='0' then                                                          (6)

        case addr is
            when "0000"=>
                data<="10001001";
            when "0001"=>
                data<="10001010";
            when "0010"=>
                data<="10001011";
            when "0011"=>
                data<="10001100";
            when "0100"=>
                data<="10001101";
            when "0101"=>
                data<="10001110";
            when "0110"=>
                data<="10001111";
            when "0111"=>
                data<="10010000";
            when "1000"=>
                data<="10010001";
            when "1001"=>
                data<="10010010";
            when "1010"=>
                data<="10010011";
            when "1011"=>
                data<="10010100";
            when "1100"=>
                data<="10010101";
            when "1101"=>
                data<="10010110";
            when "1110"=>
                data<="10010111";
            when others=>
    |            data<="10011000";
    |    end case;                  (8)

    else
        data<="00000000";             
    end if;                                               
    end process;                      (10)
end behave;
以上architecture中有哪些错误?请在原程序相应位置改正。
得分
四、 编程题(共50分)
1、请补全以下二选一VHDL程序(本题10分)
Entity mux is
port(d0,d1,sel:in bit;
q:out   BIT    );                            (2)
end mux;
architecture connect of   MUX        is                  (4)
  signal tmp1,  TMP2      ,tmp3:bit;                      (6)
begin
  cale:
block
  begin
    tmp1<=d0 and sel;
    tmp2<=d1 and (not sel)
tmp3<= tmp1 and tmp2;
q    <=    tmp3;                            (8)
    end block cale;
  end   CONNECT        ;                        (10)
2、编写一个2输入与门的VHDL程序,请写出库、程序包、实体、构造体相关语句,将端口定义为标准逻辑型数据结构(本题10分)
LIBRARY IEEE;
    USE IEEE.STD_LOGIC_1164.ALL;        2
    ENTITY nand2 IS
          PORT (ab:IN    STD_LOGIC;    4
                    y:OUT STD_LOGIC);    6

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。