资源描述
《数字系统设计》复习参考
选择题
1. 一个项目的输入输出端口是定义在 A 。
A. 实体中 B. 结构体中 C. 任何位置 D. 进程体
2. 描述项目具有逻辑功能的是 B 。
A. 实体 B. 结构体 C. 配置 D. 进程
3. 关键字ARCHITECTURE定义的是 A 。
A. 结构体 B. 进程 C. 实体 D. 配置
4. MAXPLUSII中编译VHDL源程序时要求 C 。
A.文件名和实体可以不同B. 文件名和实体名无关 C. 文件名和实体名要相同 D. 不确定
5. 1987标准的VHDL语言对大小写是 D 。
A. 敏感的 B. 只能用小写 C. 只能用大写 D. 不敏感
6. 关于1987标准的VHDL语言中,标识符描述正确的是 A 。
A必须以英文字母开头B可以使用汉字开头C可以使用数字开D任何字符都可以
7. 关于1987标准的VHDL语言中,标识符描述正确的是 B 。
A下划线可以连用B下划线不能连用 C不能使用下划线 D可以使用任何字符
8. 符合1987VHDL标准的标识符是 A 。
A. A_2 B. A+2 C. 2A D. 22
9. 符合1987VHDL标准的标识符是 A 。
A. a_2_3 B. a_____2 C. 2_2_a D. 2a
10. 不符合1987VHDL标准的标识符是 C 。
A. a_1_in B. a_in_2 C. 2_a D. asd_1
11. 不符合1987VHDL标准的标识符是 D 。
A. a2b2 B. a1b1 C. ad12 D. %50
12. VHDL语言中变量定义的位置是 D 。
A. 实体中中任何位置 B. 实体中特定位置
C. 结构体中任何位置 D. 结构体中特定位置
13. VHDL语言中信号定义的位置是 D 。
A. 实体中任何位置 B. 实体中特定位置 C. 结构体中任何位置 D. 结构体中特定位置
14. 变量是局部量可以写在 B 。
A. 实体中 B. 进程中 C. 线粒体 D. 种子体中
15. 变量和信号的描述正确的是 A 。
A. 变量赋值号是:= B. 信号赋值号是:= C. 变量赋值号是<= D. 二者没有区别
16. 变量和信号的描述正确的是 B
A. 变量可以带出进程 B. 信号可以带出进程 C. 信号不能带出进程 D. 二者没有区别
17. 关于VHDL数据类型,正确的是 C 。
A. 数据类型不同不能进行运算 B. 数据类型相同才能进行运算
C. 数据类型相同或相符就可以运算 D. 运算与数据类型无关
18. 下面数据中属于实数的是 A 。
A. 4.2 B. 3 C. ‘1’ D. “11011”
19. 下面数据中属于位矢量的是 D 。
A. 4.2 B. 3 C. ‘1’ D. “11011”
20. 关于VHDL数据类型,正确的是 B 。
A. 用户不能定义子类型 B. 用户可以定义子类型 C. 用户可以定义任何类型的数据 D. 前面三个答案都是错误的
21. 可以不必声明而直接引用的数据类型是 C 。
A. STD_LOGIC B. STD_LOGIC_VECTOR C. BIT D. 前面三个答案都是错误的
22. STD_LOGIG_1164中定义的高阻是字符 D 。
A. X B. x C. z D. Z
23. STD_LOGIG_1164中字符H定义的是 A 。
A. 弱信号1 B. 弱信号0 C. 没有这个定义 D. 初始值
24. 使用STD_LOGIG_1164使用的数据类型时 B 。
A.可以直接调用 B.必须在库和包集合中声明 C.必须在实体中声明D.必须在结构体中声明
25. 关于转化函数正确的说法是 B 。
A. 任何数据类型都可以通过转化函数相互转化 B. 只有特定类型的数据类型可以转化
C. 任何数据类型都不能转化 D. 前面说法都是错误的
26. VHDL运算符优先级的说法正确的是 C 。
A. 逻辑运算的优先级最高 B. 关系运算的优先级最高
C. 逻辑运算的优先级最低 D. 关系运算的优先级最低
27. VHDL运算符优先级的说法正确的是 A 。
A. NOT的优先级最高B. AND和NOT属于同一个优先级 C. NOT的优先级最低D. 前面的说法都是错误的
28. VHDL运算符优先级的说法正确的是 D 。
A. 括号不能改变优先级B. 不能使用括号 C. 括号的优先级最低 D. 括号可以改变优先级
29. 如果a=1,b=0,则逻辑表达式(a AND b) OR( NOT b AND a)的值是 B 。
A. 0 B. 1 C. 2 D. 不确定
30. 关于关系运算符的说法正确的是 C 。 A不能进行关系运算 B.关系运算和数据类型无关 C关系运算数据类型要相同D.前面的说法都错误
31. 转换函数TO_BIT_VECTOR(A)的功能是 A 。
A. 将STD_LOGIC_VECTOR转换为BIT_VECTOR B. 将REAL转换为BIT_VECTOR
C. 将TIME转换为BIT_VECTOR D. 前面的说法都错误
32. VHDL中顺序语句放置位置说法正确的是 D 。
A. 可以放在进程语句中 B.可以放在子程序中 C.不能放在任意位置 D.前面的说法都正确
33. 不属于顺序语句的是 C 。
A. IF语句 B. LOOP语句 C. PROCESS语句 D. CASE语句
34. 正确给变量X赋值的语句是 B 。
A. X<=A+B; B. X:=A+b; C. X=A+B; D. 前面的都不正确
35. EDA的中文含义是 A 。
A. 电子设计自动化 B. 计算机辅助计算 C. 计算机辅助教学 D. 计算机辅助制造
36. 可编程逻辑器件的英文简称是 D 。
A. FPGA B. PLA C. PAL D. PLD
37. 现场可编程门阵列的英文简称是 A 。
A. FPGA B. PLA C. PAL D. PLD
38. 基于下面技术的PLD器件中允许编程次数最多的是 C 。
A. FLASH B. EEROM C. SRAM D. PROM
39. 在EDA中,ISP的中文含义是 B 。
A. 网络供应商 B. 在系统编程 C. 没有特定意义D. 使用编程器烧写PLD芯片
40. 在EDA中,IP的中文含义是 D 。
A. 网络供应商 B. 在系统编程 C. 没有特定意义 D. 知识产权核
41. EPF10K20TC144-4具有多少个管脚 A 。
A. 144个 B. 84个 C. 15个 D. 不确定
42. EPF10K20TC144-X器件,如果X的值越小表示 C 。
A. 器件的工作频率越小B.器件的管脚越少 C. 器件的延时越小 D. 器件的功耗越小
43. 如果a=1,b=1,则逻辑表达式(a XOR b) OR( NOT b AND a)的值是 A 。
A. 0 B. 1 C. 2 D. 不确定
44. 执行下列语句后Q的值等于 C 。
SIGNAL E: STD_LOGIC_VECTOR (2 TO 5);
SIGNAL Q: STD_LOGIC_VECTOR (9 DOWNTO 2);
E<=(2=>’1’, 4=>’0’, OTHERS=>’1’);1001
Q<=(2=>E (2), 4=>E (3), 5=>’1’, 7=>E (5), OTHERS=>E (4));00101001
A. “11011011” B. “00101101” C. “11011001” D. “00101100”
45. VHDL文本编辑中编译时出现如下的报错信息
Error: VHDL syntax error: signal declaration must have ‘;’,but found begin instead.
其错误原因是 A 。
A. 信号声明缺少分号。B. 错将设计文件存入了根目录,并将其设定成工程。
C. 设计文件的文件名与实体名不一致。D. 程序中缺少关键词。
46. VHDL文本编辑中编译时出现如下的报错信息
Error: VHDL syntax error: choice value length must match selector expression value length
其错误原因是 A 。
A. 表达式宽度不匹配。B. 错将设计文件存入了根目录,并将其设定成工程。
C. 设计文件的文件名与实体名不一致。D. 程序中缺少关键词。
51. 在一个VHDL设计中Idata是一个信号,数据类型为std_logic_vector,试指出下面那个赋值语句是错误的。 D 。
A.idata <= “00001111”;B.idata <= b”0000_1111”;C.idata <= X”AB”D. idata <= B”21”;
52. 在VHDL语言中,下列对时钟边沿检测描述中,错误的是 D 。
A.if clk’event and clk = ‘1’ thenB.if falling_edge(clk) thenC.if clk’event and clk = ‘0’ then
D.if clk’stable and not clk = ‘1’ then
53. 下面对利用原理图输入设计方法进行数字电路系统设计的描述中,那一种说法是不正确的。 C 。
A.原理图输入设计方法直观便捷,但不适合完成较大规模的电路系统设计;
B.原理图输入设计方法一般是一种自底向上的设计方法;
C.原理图输入设计方法无法对电路进行功能描述
D.原理图输入设计方法也可进行层次化设计。
54. 在一个VHDL设计中idata是一个信号,数据类型为integer,数据范围0 to 127,下面哪个赋值语句是正确的。 C 。
A.idata := 32;B.idata <= 16#A0#;C.idata <= 16#7#E1;D.idata := B#1010#;
55. 下列那个流程是正确的基于EDA软件的FPGA / CPLD设计流程: B 。
A.原理图/HDL文本输入→功能仿真→综合→适配→编程下载→硬件测试
B.原理图/HDL文本输入→适配→综合→功能仿真→编程下载→硬件测试;
C.原理图/HDL文本输入→功能仿真→综合→编程下载→→适配硬件测试;
D.原理图/HDL文本输入→功能仿真→适配→编程下载→综合→硬件测试
56. 在VHDL语言中,下列对进程(PROCESS)语句的语句结构及语法规则的描述中,正确的是 B 。
A.PROCESS为一无限循环语句;敏感信号发生更新时启动进程,执行完成后,等待下一次进程启动。B.敏感信号参数表中,应列出进程中使用的所有输入信号;C.进程由说明部分、结构体部分、和敏感信号参数表三部分组成;D.当前进程中声明的信号也可用于其他进程。
57. 对于信号和变量的说法,哪一个是不正确的: A 。
A.信号用于作为进程中局部数据存储单元 B.变量的赋值是立即完成的
C.信号在整个结构体内的任何地方都能适用 D.变量和信号的赋值符号不一样
58. VHDL语言共支持四种常用库,其中哪种库是用户的VHDL设计现行工作库: D 。
A.IEEE库 B.VITAL库C.STD库 D.WORK工作库
59. 下列语句中,不属于并行语句的是: B 。
A.进程语句 B.CASE语句C.元件例化语句 D.WHEN…ELSE…语句
60. 下面哪一条命令是MAX+PLUSII在时序仿真时执行加载节点的命令? C 。
A. file—>set project to current file B. assign—>pin/location chip
C. node—>enter node from SNF D. file—>create default symbol
61. 在EDA工具中,能将硬件描述语言转换为硬件电路的重要工具软件称为 B
A.仿真器 B.综合器 C.适配器 D.下载器
62. VHDL文本编辑中编译时出现如下的报错信息
Error: Can’t open VHDL “WORK” 其错误原因是 B 。
A错将设计文件的后缀写成.tdf,而非.vhd B.错将设计文件存入了根目录,并将其设定成工程C. 设计文件的文件名与实体名不一致。D. 程序中缺少关键词。
63. 在VHDL的CASE语句中,条件句中的“=>”不是操作符号,它只相当与 B 作用。
A. IF B. THEN C. AND D. OR
65. 下列关于信号的说法不正确的是 C 。A . 信号相当于器件内部的一个数据暂存节点。B. 信号的端口模式不必定义,它的数据既可以流进,也可以流出。
C. 在同一进程中,对一个信号多次赋值,其结果只有第一次赋值起作用。
D. 信号在整个结构体内的任何地方都能适用。
66. 下面哪一个可以用作VHDL中的合法的实体名 D 。
A. OR B. VARIABLE C. SIGNAL D. OUT1
68. 下列关于变量的说法正确的是 A 。
A. 变量是一个局部量,它只能在进程和子程序中使用。
B. 变量的赋值不是立即发生的,它需要有一个δ延时。
C. 在进程的敏感信号表中,既可以使用信号,也可以使用变量。
D. 变量赋值的一般表达式为:目标变量名<= 表达式。
69. 下列关于CASE语句的说法不正确的是 B 。
A. 条件句中的选择值或标识符所代表的值必须在表达式的取值范围内。
B. CASE语句中必须要有WHEN OTHERS=>NULL;语句。
C. CASE语句中的选择值只能出现一次,且不允许有相同的选择值的条件语句出现 。
D. CASE语句执行必须选中,且只能选中所列条件语句中的一条。
70. VHDL中,为目标变量赋值符号是 D A. =: B. = C. <= D.:=
71. 在VHDL中,可以用语句 D 表示检测clock下降沿。
A. clock’ event B. clock’ event and clock=’1’C. clock=’0’ D. clock’ event and clock=’0’
72.在VHDL的FOR_LOOP语句中的循环变量是一个临时变量,属于LOOP语句的局部量, B 事先声明。A. 必须 B. 不必 C. 其类型要 D.其属性要
73. 在VHDL中,语句”FOR I IN 0 TO 7 LOOP ”定义循环次数为 A 次。
A. 8 B. 7 C. 0 D.1
74. 在VHDL中,PROCESS结构内部是由 A 语句组成的。A. 顺序 B. 顺序和并行C. 并行 D.任何
75. 执行MAX+PLUSII的 C 命令,可以对设计的电路进行仿真。
Creat Default Symbol B.Compiler C.Simulator D.Programmer
76. 在VHDL中,PROCESS本身是 C 语句。A. 顺序 B.顺序和并行 C.并行 D.任何
78. 在元件例化语句中,用 D 符号实现名称映射,将例化元件端口声明语句中的信号与PORT MAP()中的信号名关联起来。A. = B. := C. <= D.=>
79.在VHDL中,含WAIT语句的进程PROCESS的括弧中 B 再加敏感信号,否则则是非法的。A. 可以 B.不能 C. 必须 D. 有时可以
80.在MAX+PLUSII集成环境下为图形文件产生一个元件符号的主要作用是 。
A. 综合 B. 编译 C. 仿真 D.被高层次电路设计调用
81.在MAX+PLUSII工具软件中,完成网表提取、数据库建立、逻辑综合、逻辑分割、适配、延时网表提取和编程文件汇编等操作,并检查设计文件是否正确的过程称为 B 。
A. 编辑 B. 编译 C. 综合 D. 编程
84. 综合是EDA设计流程的关键步骤,综合就是把抽象设计层次中的一种表示转化成另一种表示的过程;在下面对综合的描述中, D 是错误的。
A. 综合就是将电路的高级语言转化成低级的,可与FPGA / CPLD的基本结构相映射的网表文件;B. 为实现系统的速度、面积、性能的要求,需要对综合加以约束,称为综合约束;
C. 综合可理解为,将软件描述与给定的硬件结构用电路网表文件表示的映射过程,并且这种映射关系不是唯一的。D. 综合是纯软件的转换过程,与器件硬件结构无关;
85. 关于VHDL中的数字,请找出以下数字中数值最小的一个: C
A. 2#1111_1110# B. 8#276# C. 10#170# D. 16#E#E1
86. 以下对于进程PROCESS的说法,正确的是: C 。
A. 进程之间可以通过变量进行通信B. 进程内部由一组并行语句来描述进程功能
C. 进程语句本身是并行语句D. 一个进程可以同时描述多个时钟信号的同步时序逻辑
87. 进程中的信号赋值语句,其信号更新是 C 。
A.按顺序完成;B.比变量更快完成;C.在进程的最后完成;D.以上都不对。
88.关于VHDL中的数字,请找出以下数字中最大的一个: A 。
A.2#1111_1110#B.8#276#C. 10#170#D.16#E#E1
89.VHDL语言是一种结构化设计语言;一个设计实体(电路模块)包括实体与结构体两部分,结构体描述 B A.器件外部特性;B.器件的内部功能;C.器件的综合约束;D.器件外部特性与内部功能。
90.下列标识符中, B 是不合法的标识符。A. State0 B. 9moon C. Not_Ack_0 D. signall
91.在VHDL中,IF语句中至少应有1个条件句,条件句必须由 C 表达式构成。
A. BIT B. STD_LOGIC C. BOOLEAN D. INTEGER
92. 在VHDL中 D 不能将信息带出对它定义的当前设计单元。A. 信号 B. 常量 C. 数据 D. 变量
93.在VHDL中,为定义的信号赋初值,应该使用 C 符号。A. =: B. = C. := D. <=
94.在VHDL中,一个设计实体可以拥有一个或多个 B A. 设计实体 B. 结构体 C. 输入D. 输出
96. 在VHDL的IEEE标准库中,预定义的标准逻辑位STD_LOGIC的数据类型中是用 B 表示的。
A. 小写字母和数字 B. 大写字母数字 C. 大或小写字母和数字 D. 全部是数字
97. 执行MAX+PLUSII的 A 命令,可以为设计电路建立一个元件符号。
A. create default symbol B. simulator C. compiler D. timing analyzer
98. 在VHDL中,条件信号赋值语句WHEN_ELSE属于 C 语句。
A. 并行和顺序 B. 顺序 C. 并行 D. 不存在的
99. 在VHDL的IEEE标准库中,预定义的标准逻辑数据STD_LOGIC有 C 种逻辑值。
A. 2 B. 3 C. 9 D. 8
100.一个能为VHDL综合器接受,并能作为一个独立的设计单元的完整的VHDL程序成为 C 。A. 设计输入 B. 设计输出 C. 设计实体 D. 设计结构
二、填空题
(一) 在下面横线上填上合适的vhdl关键词,完成2选1多路选择器的设计。
library ieee;
use ieee.std_logic_1164.all;
entity mux21 is
port ( sel: in std_logic;
a,b: in std_logic;
q: out std_logic );
end mux21;
architecture bhv of mux21 is
begin
q<=a when sel=’1’ else b;
end bhv;
(二) 在下面横线上填上合适的语句,完成bcd-7段led显示译码器的设计。
library ieee ;
use ieee.std_logic_1164.all;
entity bcd_7seg is
port( bcd_led : in std_logic_vector(3 downto 0);
ledseg : out std_logic_vector(6 downto 0));
end bcd_7seg;
architecture behavior of bcd_7seg is
begin
process(bcd_led)
begin
if bcd_led="0000" then ledseg<="0111111";
elsif bcd_led="0001" then ledseg<="0000110";
elsif bcd_led="0010" then ledseg<= 1011101 ;
elsif bcd_led="0011" then ledseg<="1001111";
elsif bcd_led="0100" then ledseg<="1100110";
elsif bcd_led="0101" then ledseg<=" 1101011 ";
elsif bcd_led="0110" then ledseg<="1111101";
elsif bcd_led="0111" then ledseg<="0000111";
elsif bcd_led="1000" then ledseg<=" 1111111 ";
elsif bcd_led="1001" then ledseg<="1101111";
else ledseg<= xxxxxxx ;
end if; end process; end behavior;
(三) 在下面横线上填上合适的语句,完成数据选择器的设计。
library ieee;
use ieee.std_logic_1164.all;
entity mux16 is
port( d0, d1, d2, d3: in std_logic_vector(15 downto 0);
sel: in std_logic_vector( 1 downto 0);
y: out std_logic_vector(15 downto 0));
end;
architecture one of mux16 is
begin
with sel select
y <= d0 when "00",
d1 when "01",
d2 when "10",
d3 when “11” ;
end;
(四) 在下面横线上填上合适的语句,完成jk触发器的设计。
说明:设计一个异步复位/置位jk触发器,其真值表如下:
input
output
pset
clr
clk
j
k
q
0
1
x
x
x
1
1
0
x
x
x
0
0
0
x
x
x
不定
1
1
上升沿
0
1
0
1
1
上升沿
1
0
1
1
1
上升沿
1
1
翻转
1
1
上升沿
0
0
保持
library ieee;
use ieee.std_logic_1164.all;
entity jkff1 is
port (pset,clr,clk,j,k : in std_logic;
q : out std_logic);
end jkff1;
architecture maxpld of jkff1 is
signal temp:std_logic;
begin
process(pset,clr,clk)
begin
if (pset='0'and clr='1' ) then temp<='1';
elsif (pset='1'and clr='0' ) then temp<='0';
elsif (pset='0'and clr='0' ) then null;
if (clk'event and clk='1') then
elsif (j='0' and k='0') then temp<=temp;
elsif (j='0' and k='1') then temp<='0';
elsif (j='1' and k='0') then temp<='1';
elsif (j='1' and k='1') then temp<= not temp ;
end if; end if; end process; q<=temp; end ;
(五) 在下面横线上填上合适的语句,完成计数器的设计。
说明:设电路的控制端均为高电平有效,时钟端clk,电路的预置数据输入端为4位d,计数输出端也为4位q,带同步始能en、异步复位clr和预置控制ld的六进制减法计数器。
library ieee;
use ieee.std_logic_1164.all;
use ieee.std_logic_arith.all;
use ieee.std_logic_unsigned.all;
entity cnt6 is
port(en,clr,ld,clk:in std_logic;
d: in std_logic_vector(3 downto 0);
q:out std_logic_vector(3 downto 0));
end cnt6;
architecture beha of cnt6 is
signal qtemp:std_logic_vector(3 downto 0);
begin
process(clk,clr,ld)
begin
if clr='1' then qtemp<="0000"; --clr=1清零
elsif (clk'event and clk='1') then --判断是否上升沿
if ld='1' then qtemp<= dddd ; --判断是否置位
elsif en='1' then --判断是否允许计数
if qtemp="0000" then qtemp<= “0101” ; --等于0,计数值置5
else qtemp<= qtemp-1 ; --否则,计数值减1
end if;
end if;
end if; q<=qtemp;
end process;
end beha;
(六) 在下面横线上填上合适的语句,完成状态机的设计。
说明:设计一个双进程状态机,状态0时如果输入”10”则转为下一状态,否则输出”1001”;状态1时如果输入”11”则转为下一状态,否则输出”0101”;状态2时如果输入”01”则转为下一状态,否则输出”1100”;状态3时如果输入”00”则转为状态0,否则输出”0010”。复位时为状态0。
library ieee;
use ieee.std_logic_1164.all;
use ieee.std_logic_unsigned.all;
entity moore1 is
port (datain: in std_logic_vector(1 downto 0);
clk, rst:in std_logic;
q: out std_logic_vector(3 downto 0));
end;
architecture one of moore1 is
type st_type is (st0, st1, st2, st3); --定义4个状态
signal cst, nst: st_type; --定义两个信号(现态和次态)
signal q1:std_logic_vector(3 downto 0);
begin
reg: process(clk, rst) --主控时序进程
begin
if rst='1' then cst<= ; --异步复位为状态0
elsif clk'event and clk='1' then
cst<= ; --现态=次态
end if;
end process;
com: process(cst, datain)
begin
case cst is
when st0 => if datain="10" then nst<=st1;
else nst<=st0; q1<="1001"; end if;
when st1 => if datain="11" then nst<=st2;
else nst<=st1; q1<="0101"; end if;
when st2 => if datain="01" then nst<=st3;
else nst<=st2; q1<="1100"; end if;
when st3 => if datain="00" then nst<=st0;
展开阅读全文