eda试题及答案

  • 格式:doc
  • 大小:5.83 MB
  • 文档页数:34

一、选择题:(20分)

1. 大规模可编程器件主要有FPGA、CPLD两类,下列对CPLD结构与工作原理的描述中,正确的是:___D__

A. CPLD是基于查找表结构的可编程逻辑器件

B. CPLD即是现场可编程逻辑器件的英文简称

C. 早期的CPLD是从FPGA的结构扩展而来

D. 在Xilinx公司生产的器件中,XC9500系列属CPLD结构

2. 基于VHDL设计的仿真包括有①门级时序仿真、②行为仿真、③功能仿真和④前端功能仿真这四种,按照自顶向下的设计流程,其先后顺序应该是:_________D

A.①②③④ B.②①④③ C.④③②① D.②④③①

3. IP核在EDA技术和开发中具有十分重要的地位,IP分软IP、固IP、硬IP;下列所描述的IP核中,对于固IP的正确描述为:__________D

A.提供用VHDL等硬件描述语言描述的功能块,但不涉及实现该功能块的具体电路

B.提供设计的最总产品——模型库

C.以可执行文件的形式提交用户,完成了综合的功能块

D.都不是

4. 下面对利用原理图输入设计方法进行数字电路系统设计,哪一种说法是正确的:__________B

A.原理图输入设计方法直观便捷,很适合完成较大规模的电路系统设计

B.原理图输入设计方法一般是一种自底向上的设计方法

C.原理图输入设计方法无法对电路进行功能描述

D.原理图输入设计方法不适合进行层次化设计

5. 在VHDL语言中,下列对进程(PROCESS)语句的语句结构及语法规则的描述中,不正确的是:_______D

A.PROCESS为一无限循环语句

B.敏感信号发生更新时启动进程,执行完成后,等待下一次进程启动

C.当前进程中声明的变量不可用于其他进程

D.进程由说明语句部分、并行语句部分和敏感信号参数表三部分组成 6. 对于信号和变量的说法,哪一个是不正确的:_________A

A.信号用于作为进程中局部数据存储单元

B.变量的赋值是立即完成的

C.信号在整个结构体内的任何地方都能适用

D.变量和信号的赋值符号不一样

7. 下列状态机的状态编码,_________方式有“输出速度快、难以有效控制非法状态出现”这个特点。A

A.状态位直接输出型编码

B.一位热码编码

C.顺序编码

D.格雷编码

8. VHDL语言共支持四种常用库,其中哪种库是用户的VHDL设计现行工作库:_______D

A.IEEE库

B.VITAL库

C.STD库

D.WORK工作库

9. 下列4个VHDL标识符中正确的是:_______B

A.10#128#

B.16#E#E1

C.74HC124

D.X_16

10.下列语句中,不属于并行语句的是:_______B

A.进程语句

B.CASE语句

C.元件例化语句

D.WHEN…ELSE…语句

二、EDA名词解释(10分)

写出下列缩写的中文(或者英文)含义:

1. ASIC 专用集成电路

2. FPGA 现场可编程门阵列

3. IP 知识产权核(软件包)

4. JTAG 联合测试行动小组

5. HDL 硬件描述语言

三、VHDL程序填空:(10分)

以下程序是一个BCD码表示0~99计数器的VHDL描述,试补充完整。

library ieee;

use ieee.std_logic_1164.all;

use ieee.std_logic_unsigned.all;

entity cnt100b is

port( clk, rst, en : in std_logic;

cq : out std_logic_vector(7 downto 0); -- 计数输出

cout: out std_logic); -- 进位输出

end entity cnt100b;

architecture bhv of cnt100b is

begin

process (clk, rst, en)

variable cqi : std_logic_vector(7 downto 0);

begin

if rst = '1' then

cqi := (others => ‘0’); -- 计数器清零复位

else

if clk’event and clk = ‘1’ then -- 上升沿判断

if en = '1' then

if cqi(3 downto 0) < "1001" then -- 比较低4位

cqi := cqi + 1; -- 计数加1

else

if cqi(7 downto 4) < "1001" then -- 比较高4位

cqi := cqi + 16;

else

cqi := (others => '0');

end if;

cqi (3 downto 0) := “0000”; -- 低4位清零

end if;

end if;

end if;

end if;

if cqi = “10011001” then -- 判断进位输出

cout <= '1';

else

cout <= '0';

end if;

cq <= cqi;

end process;

end architecture bhv; 四、VHDL程序改错:(10分)

仔细阅读下列程序,回答问题

LIBRARY IEEE; -- 1

USE IEEE.STD_LOGIC_1164.ALL; -- 2

ENTITY MOORE1 IS -- 3

PORT ( DATAIN : IN STD_LOGIC_VECTOR(1 DOWNTO 0); -- 4

CLK, RST: IN STD_LOGIC; -- 5

Q : OUT STD_LOGIC_VECTOR(3 DOWNTO 0) ); -- 6

END MOORE1; -- 7

ARCHITECTURE BEHAV OF MOORE1 IS -- 8

SIGNAL ST_TYPE IS (ST0, ST1, ST2, ST3, ST4); -- 9

SIGNAL C_ST : ST_TYPE; -- 10

BEGIN -- 11

PROCESS (CLK, RST) -- 12

BEGIN -- 13

IF RST = '1' THEN C_ST <= ST0; Q <= "0000"; -- 14

ELSIF CLK'EVENT AND CLK = '1' THEN -- 15

CASE C_ST IS -- 16

WHEN ST0 => IF DATAIN = "10" THEN C_ST <= ST1; -- 17

ELSE C_ST <= ST0; -- 18

END IF; Q <= "1001"; -- 19

WHEN ST1 => IF DATAIN = "11" THEN C_ST <= ST2; -- 20

ELSE C_ST <= ST1; -- 21

END IF; Q <= "0101"; -- 22

WHEN ST2 => IF DATAIN = "01" THEN C_ST <= ST3; -- 23

ELSE C_ST <= ST0; -- 24

END IF; Q <= "1100"; -- 25

WHEN ST3 => IF DATAIN = "00" THEN C_ST <= ST4; -- 26

ELSE C_ST <= ST2; -- 27

END IF; Q <= "0010"; -- 28

WHEN ST4 => IF DATAIN = "11" THEN C_ST <= ST0; -- 29

ELSE C_ST <= ST3; -- 30

END IF; Q <= "1001"; -- 31

END CASE; -- 32

END IF; -- 33

END PROCESS; -- 34

END BEHAV; -- 35

1.在程序中存在两处错误,试指出,并说明理由:

在Quartus II中编译时,其中一个提示的错误为:

Error (Line 9): VHDL syntax error at MOORE1.vhd(9) near text "IS"; expecting ":", or ","

第9行,状态机数据类型声明错误,关键字应为TYPE

第32行,case语句缺少when others处理异常状态情况

2.修改相应行的程序(如果是缺少语句请指出大致的行数):

错误1 行号: 9 程序改为:SIGNAL 改为 TYPE

错误2 行号: 32 程序改为:之前添加一句 when others => c_st <= st0;

五、阅读下列VHDL程序,画出相应RTL图:(10分)

LIBRARY IEEE;

USE IEEE.STD_LOGIC_1164.ALL;

ENTITY TRIS IS

PORT ( CONTROL : IN STD_LOGIC;

INN : IN STD_LOGIC;

Q : INOUT STD_LOGIC;

Y : OUT STD_LOGIC );

END TRIS;

ARCHITECTURE ONE OF TRIS IS

BEGIN

PROCESS (CONTROL, INN, Q)

BEGIN

IF (CONTROL = '0') THEN

Y <= Q;

Q <= 'Z';

ELSE

Q <= INN;

Y <= 'Z';

END IF;

END PROCESS;

END ONE;

六、写VHDL程序:(20分)

1. 试描述一个带进位输入、输出的8位全加器

端口:A、B为加数,CIN为进位输入,S为加和,COUT为进位输出

LIBRARY IEEE;

USE IEEE.STD_LOGIC_1164.ALL;

ENTITY ADDER8 IS