一、 填空题
1. EDA的中文含义是 。
2. ASIC(Application Specific Integrated Circuits)的中文直译为 。
3. MAX plus II集成环境下设计输入有多种表达方式,采用原理图输入方式时,文件后缀为 ;采用VHDL语言文本输入方式时,应选择文件后缀为 。
4. VHDL程序设计中最常用的库是IEEE标准库,最常用的程序包是 程序包。
5、构成一个完整的VHDL语言程序的五个基本部分是 , ,库,程序包, 。 7. 传统的电子设计方法通常是________,EDA技术采用的设计方法是________。
8.目前常用的可编程逻辑器件以CPLD和FPGA为主,其中________是基于查找表结构的可编程逻辑器件。 9.一个VHDL设计实体最基本的结构包括________和__________;VHDL程序中的注释用______表示。 10. VHDL程序中时钟CLK的下降沿表示为________________________________。
11.VHDL程序的元件例化语句中,元件端口名与实例连接端口名的关联方式有 位置映射 和 名称映射 两种方式。 12.在VHDL语法规则中,变量是一个局部量,只能在______和________中使用;变量______(能/不能)将信息带出对它做出定义的当前结构。
13.进程既可以通过______信号的变化来启动,也可以由满足条件的______语句来激活。
14.信号a1的定义为SIGNAL a1 : STD_LOGIC_VECTOR( 4 DOWNTO 0 ),则执行语句a1 <= ( 1=>’1’, 3=>’1’, OTHERS=>’0’ )后,a1的值为________。 二、 单项选择题
1.下列标识符中, 是不合法的标识符。
A. ST0
B. 9mux C. Not_0
D. signall
6. CPLD结构特点是逻辑单元主体为与或阵列,FPGA结构特点是逻辑单元主体为 。
2.在下列标识符中, 是VHDL合法的标识符。
A、4h_adde; B、h_adde_; C、h_adder; D、_h_adde
3.在一个VHDL设计中idata是一个信号,数据类型为integer,数据范围0 to 127,下面哪个赋值语句是正确的 。
A. idata := 32; B. idata <= 16#A0#; C. idata <= 16#7#E1; D. idata := B#1010#;
4.在VHDL语言中,下列对进程(PROCESS)语句的语句结构及语法规则的描述中,正确的是__ __。
A. PROCESS为一无限循环语句;敏感信号发生更新时启动进程,执行完成后,等待下一次进程启动。 B. 敏感信号参数表中,应列出进程中使用的所有输入信号; C. 进程由说明部分、结构体部分、和敏感信号参数表三部分组成; D. 当前进程中声明的信号也可用于其他进程。
5.VHDL语言是一种结构化设计语言;一个设计实体(电路模块)包括实体与结构体两部分,结构体描述____ _ ___。
A. 器件外部特性; B. 器件的综合约束; C. 器件外部特性与内部功能; D. 器件的内部功能。
1
6.对于信号和变量的说法,哪一个是不正确的:__ _ __ 。
A.变量的赋值是立即完成的 B.信号用于作为进程中局部数据存储单元
C.变量和信号的赋值符号不一样 D.信号在整个结构体内的任何地方都能适用 7.CASE语句是 。
A. 顺序语句 B. 并行语句 C. 其它
8.基于EDA软件的FPGA / CPLD设计流程,以下流程中哪个是正确的: 。
A. 原理图/HDL文本输入→时序仿真→适配、综合→编程下载→功能仿真→硬件测试 B. 原理图/HDL文本输入→功能仿真→时序仿真→综合、适配→编程下载→硬件测试 C. 原理图/HDL文本输入→功能仿真→综合、适配→时序仿真→编程下载→硬件测试 D. 原理图/HDL文本输入→综合、适配→时序仿真→编程下载→功能仿真→硬件测试 9.VHDL语言共支持四种常用库,其中哪种库是用户的VHDL设计现行工作库: 。
A.IEEE库 B.VITAL库 C.STD库 D.WORK工作库
10. 在VHDL的IEEE标准库中,预定义的标准逻辑位数据STD_LOGIC有 种逻辑值。
A.2 B.3 C.8 D.9
11. 大规模可编程器件主要有 FPGA、CPLD 两类,其中 CPLD 通过___ __实现其逻辑功能;FPGA通过查找表实现。
A. 乘积项 B. 查找表 C. 输入缓冲 D. 输出缓冲
12. 如果a=1,b=0,则逻辑表达式(a AND b)OR(NOT b AND a)的值是 。 A. 0 B. 1 C. 2 D. 不确定 13. 下面既是并行语句又是串行语句的是 。
A.变量赋值 B.信号赋值 C.PROCESS语句 D.WHEN?ELSE语句 14. 转换函数TO_BITVECTOR(A)的功能是 。
A. 将 STDLOGIC_VECTOR 转换为 BIT_VECTOR B. 将 REAL 转换为 BIT_VECTOR C. 将 TIME 转换为 BIT_VECTOR D. 前面的说法都错误
15. 过程的定义中,若只定义in模式而未定义目标参量类型,则默认为 。
A.变量 B.信号 C.常量 D.其他 16. 在下列位置中,不可以定义子程序的是 。
A. 程序包 B. 结构体 C. 进程 D. 实体
17. 在 VHDL 中用 来把特定的结构体关联一个确定的实体,为一个大型系统的设计提供管理和进行工程组织。 A 输入 B 输出 C 综合 D 配置 18. 可以不必声明而直接引用的数据类型是 。
A. STD_LOGIC B. STD_LOGIC_VECTOR C. BIT D.前面三个答案都是错误的 19. 在VHDL中,IF语句中至少应有1个条件句,条件句必须由 表达式构成。
A. BIT B. STD_LOGIC C. BOOLEAN D. INTEGER 20. Quartus II中编译VHDL源程序时要求 。
文件名和实体可不同名 B.文件名和实体名无关 C. 文件名和实体名要相同 D. 不确定
2
A.21.现场可编程门阵列的英文简称是______。( )
A FPGA
B PLA
C PAL
D PLD
22.在EDA工具中,能将硬件描述语言转换为硬件电路的工具软件称为___。( )
A 仿真器
B 综合器
C 适配器
D 下载器
23.在VHDL中,PROCESS结构内部是由______语句组成的。( )
A 并行
B 顺序
C 顺序和并行
D 任何
24.下面数据中属于位矢量的是______。( )
A 4.2
B 3
C ‘1’
D “11011”
25.下面哪一个可以用作VHDL中的合法的实体名______。( )
A OR
B VARIABLE
C SIGNAL
D OUT1
27.下列关于CASE语句的说法不正确的是______。( )
A 条件句中的选择值或标识符所代表的值必须在表达式的取值范围内。 B CASE语句中必须要有WHEN OTHERS=>NULL;语句。
C CASE语句中的选择值只能出现一次,且不允许有相同的选择值的条件语句出现 。 D CASE语句执行必须选中,且只能选中所列条件语句中的一条。 27.进程中的信号赋值语句,其信号更新是______。( )
A 立即完成 三、程序填空
1. Library ; ieee.std_logic_1164.all; use ieee.std_logic_unsigned.all; entity counter is
port(clk,clr,ld: std_logic;
d:in std_logic_vector(2 downto 0); q:out std_logic_vector(2 downto 0)); end entity ;
architecture of counter is signal m:std_logic_vector(2 downto 0); begin
process(clk,clr,ld) begin
__________ CNT10 IS
3
B 在进程的最后完成 C 按顺序完成
D 都不对
if clr='1' then m<= ; else if and clk='1' then
if ld= then m<=d;
else m<= ; end if; end if; end if; q<=m;
end ;
end architecture behav;
2. 以下程序是一个0~9计数器的VHDL描述,试补充完整。 LIBRARY IEEE;
USE _______________________________; USE IEEE.STD_LOGIC_UNSIGNED.ALL;
PORT (CLK, RST, EN : IN STD_LOGIC;
CQ : OUT STD_LOGIC_VECTOR(3DOWNTO 0);
COUT : OUT STD_LOGIC );
END CNT10;
________________ behav OF CNT10 IS BEGIN
PROCESS( CLK, RST, EN )
__________ CQI : STD_LOGIC_VECTOR( 3 DOWNTO 0 ); qa<=count_4(0); qb<=count_4(1); qc<=count_4(2); qd<=count_4(3);
process(clk,clr, ) begin
if( )then BEGIN
IF RST =‘1’ THEN _______________________;
--计数器清零复位
ELSIF ________________________ THEN
--检测时钟上升沿
IF EN ='1' THEN --检测是否允许计数(同步
使能)
IF CQI <9 THEN ________________;
--允许计数,检测计数值小于9则计数值加1 ELSE ________________________;
--大于9,计数值清零
END IF; END IF; END IF;
IF CQI =9 THEN _____________;
--计数大于9,输出进位信号
ELSE COUT <= '0'; END IF;
________________; --将计数值向端口输出 END PROCESS; END behav;
3. 程序功能是一个具有使能端、异步清功能的十二进制计数器,试补充完整。
library ieee;
use ieee.std_logic_1164.all; use ieee. .all; entity count12en is
port(clk,clr,en:in std_logic; qa,qb,qc,qd:out std_logic); end count12en;
architecture rtl of count12en is
count_4:std_logic_vector(3 downto 0); begin
count_4<=\
elsif(clk'event and clk='1') then if(en='1') then
if(count_4=\ count_4<=\ else
count_4<=count_4+1; end if; end if; end if; end process; end rtl; 四、程序分析 LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL; ENTITY s_mach_counter IS
PORT ( CLK,RST : IN STD_LOGIC; C: OUT STD_LOGIC;
Q : OUT STD_LOGIC_VECTOR(1 DOWNTO 0)); END s_mach_counter;
ARCHITECTURE behav OF s_mach_counter IS TYPE ST_TYPE IS (ST0, ST1, ST2, ST3); SIGNAL C_ST : ST_TYPE ; BEGIN PROCESS(CLK,RST) BEGIN
IF RST ='1' THEN C_ST <= ST0 ; Q<= \; C<= '0' ; ELSIF CLK'EVENT AND CLK='1' THEN CASE C_ST IS
4
WHEN ST0 => C_ST <= ST1 ; Q <= \;C<= '0' ; 2,编写能实现8分频的VHDL程序。
WHEN ST1 => C_ST <= ST2 ;Q <= \;C<= '0' ; WHEN ST2 => C_ST <= ST3 ; Q <= \;C<= '0' ; WHEN ST3 => C_ST <= ST0 ; Q <= \;C<= '1' ; WHEN OTHERS => C_ST <= ST0; END CASE; END IF; END PROCESS; END behav;
1. 判断该状态机类型,并说明理由。(3分)
2、根据程序画出程序所描述状态机的状态转移图 (4分)
3、试分析程序所描述电路的逻辑功能 (3分) 五、程序设计
1、设计4选1数据选择器,用VHDL写出源程序。其中:D3—D0是数据输入端, S1和S0是控制输入端,Y是数据输出端。当S1、S0=“00”时,D0数据被选中,输出Y=D0;当S1、S0=“01”时,D1数据被选中,输出Y=D1,以此类推。
5
6