FPGA经典笔试题+答案汇编Word文件下载.docx
《FPGA经典笔试题+答案汇编Word文件下载.docx》由会员分享,可在线阅读,更多相关《FPGA经典笔试题+答案汇编Word文件下载.docx(14页珍藏版)》请在冰点文库上搜索。
在VHDL语言中,可以存在多个不同的库,但是库与库之间是独立的,不能互相嵌套。
它可由用户生成或由ASIC芯片制造商提供,以便于在设计中为大家所共享。
常用库:
(1)IEEE库
IEEE库主要包括std_logic_1164、numeric_bit、numeric_std等程序包,还有一些程序包非IEEE标准,但并入IEEE库,如std_logic_arich、std_logic_unsigned、std_logic_signed。
使用IEEE程序包,必须声明。
(2)std库
包含standardtextio程序包。
Std库符合IEEE标准,应用中不必声明。
(3)work库
用户的VHDL设计先行工作库。
(4)vital库
包含时序程序包vital_timing和vital_primitives。
设计开发过程通常不用
每个设计实体都必须有各自完整的库说明语句和use语句。
Use语句的使用将使说明的程序包对本设计实体部分全部开放,即是可视的。
11VHDL的数据对象包括常量(constant)、
变量(varuable)
和
信号(signal),它们是用来存放各种类型数据的容器。
12在VHDL的端口声明语句中,端口方向包括in
、out
、buffer
、inout、linkage
“BUFFER”为缓冲端口,与OUT类似,只是缓冲端口允许实体内部使用该端口信号,它可以用于输出,也可以用于端口信号的反馈。
当一个结构体用“BUFFER”说明输出端口时,与其连接的另一个结构体的端口也要用BUFFER说明。
以“LINKAGE”定义的端口不指定方向,无论哪个方向的信号都可以连接。
13VHDL的PROCESS(进程)语句是由顺序语句
组成的,但其本身却是并行语句
。
14VHDL的子程序有
过程(PROCEDURE)
函数(FUNCTION)
两种类型,具有可重载性特点。
15图形文件的扩展名是.bdf;
矢量波形文件的扩展名是.vwf;
使用VHDL语言,文本设计文件的扩展名是.vhd;
自建元件图形符号文件的扩展名.bsf;
资源分配说明文件扩展名.qsf,用文本打开它可以修改引脚编号;
逻辑综合会生成.edf文件;
双击.qpf文件可启动QuartusII并打开已有工程。
16图形编辑中模块间的连线有三种形式:
节点线、总线和管道线
17Quartus编译器编译FPGA工程最终生产两种不同用途的文件,它们分别是.sof和.pof。
sof是SRAMObjectFile,下载到FPGA中,断电丢失。
pof是ProgrammerObjectFile,下载到配置芯片中,上电重新配置FPGA
18FPGA过程中的仿真有三种:
行为仿真、逻辑仿真、时序仿真。
19IP核在EDA技术和开发中占有很重要的地位,提供VHDL硬件描述语言功能块,但不涉及实现该功能模块的具体电路的IP核为软件IP。
二名词解释,写出下列缩写的中文(或者英文)含义:
1.FPGAField-ProgrammableGateArray现场可编程门阵列
2VHDL--Very-High-SpeedIntegratedCircuitHardwareDescriptionLanguage)甚高速集成电路硬件描述语言
3
HDLHardwareDescriptionLanguage硬件描述语言
4EDAElectronicDesignAutomation电子设计自动化
5CPLDComplexProgrammableLogicDevice复杂可编程逻辑器件
6PLDProgrammableLogicDevice可编程逻辑器件
7
GAL,genericarraylogic通用阵列逻辑
8.
LABLogicArrayBlock逻辑阵列块
9.CLBConfigurableLogicBlock可配置逻辑模块
10EABEmbeddedArrayBlock嵌入式阵列块
11SOPCSystem-on-a-Programmable-Chip可编程片上系统
12.LUTLook-UpTable查找表
13.
JTAGJointTestActionGroup联合测试行为组织
14.
IPIntellectualProperty知识产权
15ASICApplicationSpecificIntegratedCircuits专用集成电路
16ISPInSystemProgrammable在系统可编程
17ICRInCircuitRe-config在电路可重构
18RTLRegisterTransferLevel寄存器传输级
选择:
1.基于VHDL设计的仿真包括有①门级时序仿真、②行为仿真、③功能仿真和④前端功能仿真这四种,按照自顶向下的设计流程,其先后顺序应该是:
______D___
A.①②③④B.②①④③C.④③②①D.②④③①
2.执行QuartusII的B命令,可以检查设计电路错误。
ACreateDefaultSymbolBCompiler----编译
CSimulator----时序仿真DTimingAnalyzer---时序分析
3.在设计输入完成后,应立即对设计文件进行(
C
)。
A编辑
B编译
C功能仿真
D时序仿真
4.在VHDL中用(
)来把特定的结构体关联一个确定的实体,为一个大型系统的设计提供管理和进行工程组织。
A输入
B输出
C综合
D配置
5电子系统设计优化,主要考虑提高资源利用率减少功耗(即面积优化),以及提高运行速度(即速度优化),下列方法A不属于面积优化。
A流水线设计B资源共享C逻辑优化D串行化
6不完整地IF语句,其综合结果可实现
A时序逻辑电路B组合逻辑电路C双向电路D三态控制电路
7.
下面对利用原理图输入设计方法进行数字电路系统设计,那一种说法是不正确的______。
A.
原理图输入设计方法直观便捷,但不适合完成较大规模的电路系统设计;
B.原理图输入设计方法一般是一种自底向上的设计方法;
C.原理图输入设计方法无法对电路进行功能描述;
D.
原理图输入设计方法也可进行层次化设计。
8.在VHDL语言中,下列对进程(PROCESS)语句的语句结构及语法规则的描述中,不正确的是___C____。
A.PROCESS为一无限循环语句;
敏感信号发生更新时启动进程,执行完成后,等待下一次进程启动。
B.敏感信号参数表中,不一定要列出进程中使用的所有输入信号;
C.
进程由说明部分、结构体部分、和敏感信号三部分组成;
当前进程中声明的变量不可用于其他进程
9IP核在EDA技术和开发中占有很重要的地位,提供VHDL硬件描述语言功能块,但不涉及实现该功能模块的具体电路的IP核为C
A硬件IPB固件IPC软件IPD都不是
10综合是EDA设计的关键步骤,下面对综合的描述中错误的是
A综合就是把抽象设计中的一种表示转换成另一种表示的过程。
B综合就是将电路的高级语言转换成低级的,可与FPGA/CPLD相映射的功能网表文件。
C为实现系统的速度、面积、性能的要求,需要对综合加以约束,称为综合约束。
D综合可理解为一种映射过程,并且这种映射关系是唯一的,即综合结果是唯一的。
11大规模可编程器件主要有CPLD和FPGA两类,下面对FPGA结构与工作原理描述中,正确的是C
AFPGA全称为复杂可编程逻辑器件
BFPGA是基于乘积项结构的可编程逻辑器件。
C基于SRAM的FPGA器件,每次上电后必须进行一次配置。
D在Altera公司生产的器件中,MAX7000系列属于FPGA结构
12大规模可编程器件主要有CPLD和FPGA两类,其中CPLD通过A实现其逻辑功能。
A可编程乘积项逻辑;
B查找表(LUT)C输入缓冲D输出缓冲
13进程中的信号赋值语句,其信号更新是C
A按顺序完成B比变量更快完成C在进程最后完成D都不对
14VHDL语言是一种结构化的语言,一个设计实体(电路模块)包括实体说明与结构体两部分,结构体描述B
A器件的外部特性B器件的内部功能
C器件的综合约束D器件外部特性与内部功能
15关于VHDL的数字,请找出以下数字中最大的一个
A2#1111_1110#B8#276#C10#170#D16#E#E1
判断下列标识符书写是否合法
Architecture\architecture\add2-1add2_1
2_0092,0092.009e32.009E3
VHDL语言的短标识符遵循以下命名规则:
*短标识符必须以英文字母开头;
*短标识符由26个字母(A~Z,a~z)、数字(0~9)和下划线“_”字符组成;
*下划线“_”的前后都必须有英文字母或者数字;
*短标识符不区分大小写;
如:
EDA、Eda、eda均为相同的命名。
VHDL语言的扩展标识符遵循以下命名规则:
*扩展标识符用反斜杠来分隔;
\adde\,\begin-add\等。
*扩展标识符允许包含图形符号及空格等;
\counter&
adder\,\entity%end\
*扩展标识符的两个反斜杠之间可以用保留字;
\entity\,\architecture\等。
*扩展标识符的两个反斜杠之间可以用数字开头;
\ladder\,\44counter\等。
*扩展标识符中允许多个下划线相连;
\adder.es__counter\等。
*同名的扩展标识符和短标识符不表示同一名称;
\adder\和adder不相同。
*扩展标识符区分大小写字母;
\EDA\和\eda\不相同。
*扩展标识符中如果含有一个反斜杠,可以两个反斜杠来代替;
\adder\\counter\表示的扩展标识符名称为adder\countera
十进制数的定义格式为:
整数[.整数][指数]
其中整数可表示为"
数字_数字"
,指数可表示为"
E+(或-)整数"
,但只有十进制的实数才允许指数为负值。
在相邻的数字之间插入下划线,对数值并无影响,而且允许在数字之前冠以若干个零,但是不允许在数字中存在空格或其它字符。
以基表示的数,格式:
基#基于基的整数[.基于基的整数]#指数
基是一个整数,其最小值是2,最大值是16。
基于基的整数可表示为“扩展数字_扩展数字”,其中扩展数字为数字(或字母,如十六进制中的A、B、C、D、E、F,且大小写字母所表达的意义相同),插入下划线不会影响其数值大小。
2#111111_11# 等效于(2#11111111#),表示十进制数255
8#0037等效于(8#377#),表示十进制数2553×
82+7×
8+7
016#0Ff# 等效于(16#FF#),表示十进制数255=16×
15+15
16#8F#E1 表示十进制数2288,即143×
16=(16×
8+15)×
16
2#1.1111_01#e8 表示十进制数500=(1+2-1+2-2+2-3+2-4+2-6)×
28
16#0.E#E0 表示十进制数0.875=(16×
0+14×
16-1)×
160
位串用于表示位矢量,格式为:
基数说明符“数字字符串”
其中的基数说明符包括B、O和X,
B表示二进制数,O表示八进制数,X表示十六进制数。
B“10101111”,O“375”,X“89AC”,
数位字符串实际是位矢量,只有2,8,16进制,默认为B,
用于对一维位矢量的赋值,8每数占3位,16每数占4位
逻辑运算符的左边和右边以及代入的信号的数据类型必须是相同的,否则编译时会给出出错警告。
当一个语句中存在两个以上的逻辑表达式时,在VHDL语言中,左右没有优先级差别。
X<
=(aANDb)ORc;
若去掉式中的括号,则从语法上来说是错误的。
不过,如果一个逻辑表达式中只有一种逻辑运算符,那么改变运算的顺序不会导致逻辑的改变,此时括号就可以省略掉。
例如:
a<
=bORcORdORe;
a<
=bANDcANDdANDe--对应的逻辑表达式为a=b·
c·
d·
e
=bORcORdORe --对应的逻辑表达式为a=b+c+d+e
=(bORc)AND(dORe)--对应的逻辑表达式为a=(b+c)·
(d+e)
在进行关系运算时,左右两边的操作数的类型必须相同,但是位长度不一定相同。
在利用关系运算符对位矢量数据进行比较时,比较过程是从最左边的位开始,自左至右按位进行比较的。
在位长不同的情况下,只能按自左至右的比较结果作为关系运算的结果。
关系运算符中的小于等于运算符“<
=”与信号赋值时的符号“<
=”是相同的。
在阅读程序时,应按照上下文关系来判断此符号到底是关系运算符还是代入符。
移位运算:
SLL是将位向量左移,右边移空位补零;
SLA是将位向量左移,右边第一位的数值保持原值不变;
SRL是将位向量右移,左边移空位补零;
SRA是将位向量右移,左边第一位的数值保持原值不变。
ROR和ROL是自循环移位方式。
A<
="
1001"
;
B<
=ASLL1;
逻辑左移B=0010
C<
=ASRL1;
逻辑右移C=0100
D<
=ASLA1;
算术左移D=0011
E<
=ASRA1;
算术右移E=1100
F<
=AROL1;
循环左移F=0011
G<
=AROR1;
循环右移G=1100
VHDL的数据对象有三种类型:
常量(constant)、
和信号(signal)它们是用来存放各种类型数据的容器。
*常量。
全局量CONSTANT常量名:
数据类型:
=表达式;
CONSTANTDELAY:
TIME:
=50ns;
Constantfbt:
std_logic_vector:
=“010110”;
*变量。
局部量,在进程说明、过程说明和函数调用说明中使用。
变量说明语句的一般格式为:
VARIABLE变量名:
数据类型约束条件:
VARIABLEnum:
INTEGERRANGE0TO127:
=20;
变量赋值语句的格式:
[变量名]:
=[表达式];
对变量的赋值是立即生效的
*信号。
全局量
信号说明语句的格式:
SIGNAL信号名:
SINGNALgnd:
BIT:
='
0'
信号赋值语句的格式:
[信号名]<
=[表达式][AFTER[时间表达式]];
D1<
=D2AFTER15ns;
信号与变量的区别:
信号赋值语句在进程外作为并行语句,并发执行,与语句所处的位置无关。
变赋值语句在进程内或子程序内作为顺序语句,按顺序执行,与语句所处的位置有关。
信号赋值符号为<
=,变量赋值符号位:
=。
信号赋值符号用于信号赋值动作,不立即生效,变量赋值符号用于变量赋值动作,立即生效。
已知start为STD_LOGIC类型信号,sum是INTEGER类型信号,判断下列程序段
PROCESS(start)
BEGIN
stagen.舞台;
阶段;
时期FORIin1to9LOOP
Sum:
=sum+i
ENDLOOP;
END PROCESS;
sum是信号,赋值应该用<
=
so…that…如此……以致于……VHDL数据类型——枚举类型
IEEE1164标准中预定义了一个枚举类型typestd_logicis(‘U’‘X’‘0’‘1’‘Z’‘W’‘L’‘H’‘-’)注意这里的大小写。
quantityn.量;
数量如:
已知AB均为std_logic类型的信号,请判断下面的程序片段
A<
=‘0’;
=‘x’;
不定态符号应该由小写‘x’改为大写‘X’
treatvt.&
vi.治疗;
对待;
款待
根据VHDL源程序,画出所设计的电路原理图。
给定原理图写程序
(1)LIBRARYIEEE;
△heartilyadv.尽情地;
热心地;
痛快地USEIEEE.STD_LOGIC_1164.ALL’
△Midlands英格兰中部地区(英)ENTITYHADIS
△hikevi.&
n.远足;
徒步旅行PORT(a:
INSTD_LOGIC;
pickout挑出;
辨别出b:
trendn.趋势;
倾向;
走向c:
OUTSTD_LOGIC;
d:
);
ENDENTITYHAD;
ARCHITECTUREfh1OFHADIS
humanrace人类BEGIN
c<
=aNANDb;
d<
=(aORb)AND(aNANDb);
ENDARCHITECTUREfh1;
(2)
LIBRARYIEEE;
USEIEEE.STD_LOGIC_1164.ALL;
ENTITY
comp4IS
PORT(a,b:
INSTD_LOGIC_VECTOR(3downto0);
y:
OUTSTD_LOGIC);
ENDcomp4;
ARCHITECTUREstructuralOFcomp4IS
COMPONENTxnor2
PORT(in1,in2:
out:
ENDCOMPONENT;
COMPONENTand4
PORT(in1,in2,in3,in4:
SIGNALs:
STD_LOGIC(0TO3);
BEGIN
u0:
xnor2PORTMAP(a(0),b(0),s(0));
u1:
xnor2PORTMAP(a
(1),b
(1),s
(1));
u2:
xnor2PORTMAP(a
(2),b
(2),s
(2));
u3:
xnor2PORTMAP(a(3),b(3),s(3));
u4:
and4PORTMAP(s(0),s
(1),s
(2),s(3),y);
ENDstructural;