1
1.一个项目的输入输出端口是定义在 A 。
A. 实体中 B. 结构体中 C. 任何位置 D. 进程体 2. 描述项目具有逻辑功能的是 B 。 A. 实体 B. 结构体 C. 配置 D. 进程
3.关于1987标准的VHDL语言中,标识符描述正确的是 B 。
A. 下划线可以连用 B. 下划线不能连用 C. 不能使用下划线 D. 可以使用任何字符 4.VHDL语言中变量定义的位置是 D ;VHDL语言中信号定义的位置是 D 。 A. 实体中中任何位置 B. 实体中特定位置 C. 结构体中任何位置 D. 结构体中特定位置 5.变量和信号的描述正确的是 A 。
A. 变量赋值号是:= B. 信号赋值号是:= C. 变量赋值号是<= D. 二者没有区别 6. 变量和信号的描述正确的是 B 。
A. 变量可以带出进程 B. 信号可以带出进程 C. 信号不能带出进程 D. 二者没有区别 6. 关于VHDL数据类型,正确的是 D 。 A. 数据类型不同不能进行运算 B. 数据类型相同才能进行运算 C. 数据类型相同或相符就可以运算 D. 运算与数据类型无关 7. 关于VHDL数据类型,正确的是 B 。 A. 用户不能定义子类型 B. 用户可以定义子类型 C. 用户可以定义任何类型的数据 D. 前面三个答案都是错误的 8. 可以不必声明而直接引用的数据类型是 C 。
A. STD_LOGIC B. STD_LOGIC_VECTOR C. BIT D. 前面三个答案都是错误的 9. 使用STD_LOGIG_1164使用的数据类型时 B 。
A.可以直接调用 B.必须在库和包集合中声明 C.必须在实体中声明 D. 必须在结构体中声明 10. VHDL运算符优先级的说法正确的是 C 。
A. 逻辑运算的优先级最高 B. 关系运算的优先级最高 C. 逻辑运算的优先级最低 D. 关系运算的优先级最低 11. VHDL中顺序语句放置位置说法正确的是 D 。
A.可以放在进程语句中 B. 可以放在子程序中 C. 不能放在任意位置 D. 前面的说法都正确 12. 不属于顺序语句的是 B 。 A. IF语句 B. LOOP语句 C. PROCESS语句 D. CASE语句 13. 现场可编程门阵列的英文简称是 A 。 A. FPGA B. PLA C. PAL D. PLD
14.可编程逻辑器件的英文简称是 D 。 A. FPGA B. PLA C. PAL D. PLD
15. 在EDA中,IP的中文含义是 D 。
A. 网络供应商 B. 在系统编程 C. 没有特定意义 D. 知识产权核
16.如果a=1,b=1,则逻辑表达式(a XOR b) OR( NOT b AND a)的值是 A 。 A. 0 B. 1 C. 2 D. 不确定 17. 执行下列语句后Q的值等于 B 。 ……
SIGNAL E: STD_LOGIC_VECTOR (2 TO 5);
SIGNAL Q: STD_LOGIC_VECTOR (9 DOWNTO 2); ……
E<=(2=>’1’, 4=>’0’, OTHERS=>’1’);
Q<=(2=>E (2), 4=>E (3), 5=>’1’, 7=>E (5), OTHERS=>E (4)); ……
A. “11011011” B. “00101101” C. “11011001” D. “00101100” 18. 在VHDL语言中,下列对时钟边沿检测描述中,错误的是 D 。 A.if clk’event and clk = ‘1’ then B.if falling_edge(clk) then
C.if clk’event and clk = ‘0’ then D.if clk’stable and not clk = ‘1’ then
2
19. 下面对利用原理图输入设计方法进行数字电路系统设计的描述中,那一种说法是不正确的。 。 A.原理图输入设计方法直观便捷,但不适合完成较大规模的电路系统设计; B.原理图输入设计方法一般是一种自底向上的设计方法; C.原理图输入设计方法无法对电路进行功能描述; D.原理图输入设计方法也可进行层次化设计。
20. 下列那个流程是正确的基于EDA软件的FPGA / CPLD设计流程: A 。 A.原理图/HDL文本输入→功能仿真→综合→适配→编程下载→硬件测试 B.原理图/HDL文本输入→适配→综合→功能仿真→编程下载→硬件测试; C.原理图/HDL文本输入→功能仿真→综合→编程下载→→适配硬件测试; D.原理图/HDL文本输入→功能仿真→适配→编程下载→综合→硬件测试
21. 在VHDL语言中,下列对进程(PROCESS)语句的语句结构及语法规则的描述中,正确的是 。 A.PROCESS为一无限循环语句;敏感信号发生更新时启动进程,执行完成后,等待下一次进程启动。 B.敏感信号参数表中,应列出进程中使用的所有输入信号;
C.进程由说明部分、结构体部分、和敏感信号参数表三部分组成; D.当前进程中声明的信号也可用于其他进程。
22. 对于信号和变量的说法,哪一个是不正确的: A 。 A.信号用于作为进程中局部数据存储单元 B.变量的赋值是立即完成的
C.信号在整个结构体内的任何地方都能适用 D.变量和信号的赋值符号不一样
23. VHDL语言共支持四种常用库,其中哪种库是用户的VHDL设计现行工作库: 。 A.IEEE库 B.VITAL库 C.STD库 D.WORK工作库 24. 下列语句中,不属于并行语句的是: B 。 A.进程语句 B.CASE语句 C.元件例化语句 D.WHEN…ELSE…语句
25. 在VHDL的CASE语句中,条件句中的“=>”不是操作符号,它只相当与 B 作用。 A. IF B. THEN C. AND D. OR
26.下列关于信号的说法不正确的是 C 。A . 信号相当于器件内部的一个数据暂存节点。 B. 信号的端口模式不必定义,它的数据既可以流进,也可以流出。
C. 在同一进程中,对一个信号多次赋值,其结果只有第一次赋值起作用。 D. 信号在整个结构体内的任何地方都能适用。
27. 下面哪一个可以用作VHDL中的合法的实体名 D 。 A. OR B. VARIABLE C. SIGNAL D. OUT1 28.下列关于变量的说法正确的是 A 。
A. 变量是一个局部量,它只能在进程和子程序中使用。 B. 变量的赋值不是立即发生的,它需要有一个δ延时。
C. 在进程的敏感信号表中,既可以使用信号,也可以使用变量。 D. 变量赋值的一般表达式为:目标变量名<= 表达式。 29. 下列关于CASE语句的说法不正确的是 B 。
A. 条件句中的选择值或标识符所代表的值必须在表达式的取值范围内。 B. CASE语句中必须要有WHEN OTHERS=>NULL;语句。
C. CASE语句中的选择值只能出现一次,且不允许有相同的选择值的条件语句出现 。 D. CASE语句执行必须选中,且只能选中所列条件语句中的一条。 30. 在VHDL中,可以用语句 D 表示检测clock下降沿。
A. clock’ event B. clock’ event and clock=’1’ C. clock=’0’ D. clock’ event and clock=’0’ 31. 在VHDL的FOR_LOOP语句中的循环变量是一个临时变量,属于LOOP语句的局部量, B 事先声明。 A. 必须 B. 不必 C. 其类型要 D.其属性要 32. 在VHDL中,语句”FOR I IN 0 TO 7 LOOP ”定义循环次数为 A 次。 A. 8 B. 7 C. 0 D.1 33. 在VHDL中,PROCESS结构内部是由 B 语句组成的。 A. 顺序 B. 顺序和并行 C. 并行 D.任何
34. 在元件例化语句中,用 D 符号实现名称映射,将例化元件端口声明语句中的信号与PORT MAP()中的信
3
号名关联起来。 A. = B. := C. <= D.=>
35.在VHDL中,含WAIT语句的进程PROCESS的括弧中 B 再加敏感信号,否则则是非法的。 A. 可以 B.不能 C. 必须 D. 有时可以
36. 综合是EDA设计流程的关键步骤,综合就是把抽象设计层次中的一种表示转化成另一种表示的过程;在下面对综合的描述中, D 是错误的。
A. 综合就是将电路的高级语言转化成低级的,可与FPGA / CPLD的基本结构相映射的网表文件; B. 为实现系统的速度、面积、性能的要求,需要对综合加以约束,称为综合约束;
C. 综合可理解为,将软件描述与给定的硬件结构用电路网表文件表示的映射过程,并且这种映射关系不是唯一的。 D. 综合是纯软件的转换过程,与器件硬件结构无关;
37.关于VHDL中的数字,请找出以下数字中数值最小的一个: A. 2#1111_1110# B. 8#276# C. 10#170# D. 16#E#E1 38. 以下对于进程PROCESS的说法,正确的是: C 。
A. 进程之间可以通过变量进行通信 B. 进程内部由一组并行语句来描述进程功能 C. 进程语句本身是并行语句 D.一个进程可以同时描述多个时钟信号的同步时序逻辑 39. 进程中的信号赋值语句,其信号更新是 C 。 A.按顺序完成; B.比变量更快完成; C.在进程的最后完成; D.以上都不对。
40. 下列标识符中, B 是不合法的标识符。 A. State0 B. 9moon C. Not_Ack_0 D. signal 41. 在VHDL中,IF语句中至少应有1个条件句,条件句必须由 表达式构成。 A. BIT B. STD_LOGIC C. BOOLEAN D. INTEGER
42. 在VHDL中,一个设计实体可以拥有一个或多个 D A. 设计实体 B. 结构体 C. 输入 D. 输出
43. 在VHDL的IEEE标准库中,预定义的标准逻辑位STD_LOGIC的数据类型中是用 表示的。 A. 小写字母和数字 B. 大写字母数字 C.大或小写字母和数字 D. 全部是数字 44. 在VHDL中,条件信号赋值语句WHEN_ELSE属于 语句。 A. 并行和顺序 B. 顺序 C. 并行 D. 不存在的
45. 在VHDL的IEEE标准库中,预定义的标准逻辑数据STD_LOGIC有 C 种逻辑值。 A. 2 B. 3 C. 9 D. 8 46.在EDA工具中,能完成在目标系统器件上布局布线软件称为(C ) A.仿真器 B.综合器 C.适配器 D.下载器
47.大规模可编程器件主要有FPGA、CPLD两类,其中CPLD通过___A__实现其逻辑功能。P42 A. 可编程乘积项逻辑 B. 查找表(LUT) C. 输入缓冲 D. 输出缓冲 48. VHDL常用的库是(A )
A. IEEE B.STD C. WORK D. PACKAGE
49. 下面既是并行语句又是串行语句的是( C )
A.变量赋值 B.信号赋值 C.PROCESS语句 D.WHEN…ELSE语句 50. 不完整的IF语句,其综合结果可实现__A__。 A. 时序逻辑电路 B. 组合逻辑电路 C. 双向电路 D. 三态控制电路
51. 状态机编码方式中,其中__A__占用触发器较多,但其简单的编码方式可减少状态译码组合逻辑资源,且易于控制非法状态。 A. 一位热码编码 B. 顺序编码 C. 状态位直接输出型编码 D. 格雷码编码
52. 大规模可编程器件主要有FPGA、CPLD两类,下列对FPGA结构与工作原理的描述中,正确的是__C__。 A. FPGA全称为复杂可编程逻辑器件;
B. FPGA是基于乘积项结构的可编程逻辑器件;
4
C. 基于SRAM的FPGA器件,在每次上电后必须进行一次配置; D. 在Altera公司生产的器件中,MAX7000系列属FPGA结构。
53. 下面对利用原理图输入设计方法进行数字电路系统设计,哪一种说法是正确的: B A.原理图输入设计方法直观便捷,很适合完成较大规模的电路系统设计 B.原理图输入设计方法一般是一种自底向上的设计方法 C.原理图输入设计方法无法对电路进行功能描述 D.原理图输入设计方法不适合进行层次化设计
54. 在VHDL语言中,下列对进程(PROCESS)语句的语句结构及语法规则的描述中,不正确的是:___ D __ A.PROCESS为一无限循环语句
B.敏感信号发生更新时启动进程,执行完成后,等待下一次进程启动 C.当前进程中声明的变量不可用于其他进程
D.进程由说明语句部分、并行语句部分和敏感信号参数表三部分组成
二、填空题
EDA设计流程包括 设计输入、设计实现、实际设计检验和 下载编程四个步骤。
EDA设计输入主要包括图形输入、HDL文本输入和状态机输入。
VHDL的数据对象包括变量、常量和信号,它们是用来存放各种类型数据的容器。
VHDL源程序的文件名应与实体名相同,否则无法通过编译。
下列是EDA技术应用时涉及的步骤:
A. 原理图/HDL文本输入; B. 适配; C. 时序仿真; D. 编程下载; E. 硬件测试; F. 综合 请选择合适的项构成基于EDA软件的FPGA / CPLD设计流程: A → ___F___ → ___B__ → ____C___ → D → ___E____
三、简答
1、信号与变量的区别
信号赋值语句在进程外作为并行语句,并发执行,与语句所处的位置无关。变量赋值语句在进程内或子程序内作为顺序语句,按顺序执行,与语句所处的位置有关。信号赋值符号为 <=,变量赋值符号位 := 。信号赋值符号用于信号赋值动作,不立即生效,变量赋值符号用于变量赋值动作,立即生效。
【变量赋值语句与信号赋值语句的区别:变量具有局部特征,它的有效性只局限于所定义的一个进程中,或一个子程序中,它是一个局部的、暂时性数据对象,对于它的赋值是立即发生的。信号具有全局特征,它不但可以作为一个设计实体内部各单元之间数据传送的载体,而且可通过信号与其他的实体进行通信,信号的赋值不是立即发生的,它发生在一个进程结束时。】 【简述信号和变量的区别?
5
答:
赋值符号 功能 作用范围 行为 信号 <= 电路的内部连接 全局,进程和进程之间的通信 延迟一定时间后才赋值 变量 := 内部数据交换 进程的内部 立即赋值 】
2. WHEN ELSE条件信号赋值语句 和 IF_ELSE顺序语句的异同
* WHEN ELSE条件信号赋值语句中无标点,只有最后有分号;必须成对出现;是并行语句,必须放在结构体中。 * IF_ELSE顺序语句中有分号;是顺序语句,必须放在进程中
3. 在VHDL的端口声明语句中,端口方向包括 in 、out 、buffer 、inout、linkage 。“BUFFER”为缓冲端口,与OUT类似,只是缓冲端口允许实体内部使用该端口信号,它可以用于输出,也可以用于端口信号的反馈。当一个结构体用“BUFFER”说明输出端口时,与其连接的另一个结构体的端口也要用BUFFER说明。以“LINKAGE”定义的端口不指定方向,无论哪个方向的信号都可以连接。
4.函数和过程有什么区别?
子程序有两种类型,即过程(PROCEDURE)和函数(FUNCTION)。它们的区别在于:过程的调用可以通过其界面获得多个返回值,而函数只能返回一个值;在函数入口中,所有参数都是输入参数,而过程有输入参数、输出参数和双向参数;过程一般被看作一种语句结构,而函数通常是表达式的一部分;过程可以单独存在,而函数通常作为语句的一部分调用。
5.什么是元件例化及其作用
元件例化就是引入一种连接关系,将预先设计好的设计实体定义为一个元件,然后利用特定的语句将此元件与当前的设计实体中指定的端口相连接,从而为当前设计实体引进一个新的低一级的设计层次。
元件例化语句作用:把已经设计好的设计实体称为一个元件或一个模块,它可以被高层次的设计引用.是使VHDL设计构成自上而下层次设计的重要途径.
四、读程序题/改错题
下面程序是1位十进制计数器的VHDL描述,试补充完整。 LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL; USE IEEE.STD_LOGIC_UNSIGNED.ALL; ENTITY CNT10 IS
PORT ( CLK : IN STD_LOGIC ;
Q : OUT STD_LOGIC_VECTOR(3 DOWNTO 0)) ; END CNT10;
ARCHITECTURE bhv OF CNT10 IS
SIGNAL Q1 : STD_LOGIC_VECTOR(3 DOWNTO 0); BEGIN
PROCESS (CLK) BEGIN
IF CLK'EVENT AND CLK = '1' THEN -- 边沿检测 IF Q1 > 10 THEN
Q1 <= (OTHERS => '0'); -- 置零