FPGA习题集和参考答案解析Word下载.docx
《FPGA习题集和参考答案解析Word下载.docx》由会员分享,可在线阅读,更多相关《FPGA习题集和参考答案解析Word下载.docx(33页珍藏版)》请在冰豆网上搜索。
39.VerilogHDL中的always语句中的语句是()语句。
40.VerilogHDL提供了标准的系统任务,用于常用的操作。
如显示、文件输入/输出等,系统函数前都有一个标志符()加以确认。
41.VerilogHDL很好地支持了“自顶向下”的设计理念,即,复杂任务分解成的小模块完成后,可以通过()的方式,将系统组装起来。
42.VerilogHDL模块分为两种类型:
一种是()模块,即,描述某种电路系统结构,功能,以综合或者提供仿真模型为设计目的;
另一种是()模块,即,为功能模块的测试提供信号源激励、输出数据监测。
43.Verilog语言中,标识符可以是任意一组字母、数字、()符号和下划线符号的组合。
44.state,State,这两个标识符是()同。
45.assignc=a>
b?
a:
b中,若a=3,b=2,则c=();
若a=2,b=3,则c=()。
46.在VerilogHDL的逻辑运算中,设A=4´
b1010,则表达式~A的结果为()
47.在VerilogHDL的逻辑运算中,设a=2,b=0,则a&
&
b结果为(),a||b结果为()。
48.在VerilogHDL的逻辑运算中,设a=4´
b1010,a>
>
1结果是()。
二、EDA名词解释
1.ASIC,2.CPLD,3.FPGA,4.IC,5.LUT.6.PCB.7.RTL,8.FSM,9.GAL,10.ISP,11.JATG,12.PBD,13.BBD
三、选择题
1.任VerilogHDL的端口声明语句中,用()关键字声明端口为双向端口
A:
inoutB:
INOUTC:
BUFFERD:
buffer
2.用VerilogHDL的assign语句建模的方法一般称为()方法。
连续赋值B:
并行赋值C:
串行赋值D:
函数赋值
3.IP核在EDA技术和开发中具有十分重要的地位,IP是指()。
知识产权B:
互联网协议C:
网络地址D:
都不是
4.在verilogHDL的always块本身是()语句
顺序B:
并行C:
顺序或并行D:
串行
5.在VerilogHDL的逻辑运算中,设A=8'
b11010001,B=8'
b00011001,则表达式“A&
B”的结果为()
8'
b00010001B:
b11011001C:
b11001000D:
b00110111
6.大规模可编程器件主要有FPGA、CPLD两类,下列对FPGA结构与工作原理的描述中,正确的是()。
FPGA是基于乘积项结构的可编程逻辑器件;
B:
FPGA是全称为复杂可编程逻辑器件;
C:
基于SRAM的FPGA器件,在每次上电后必须进行一次配置;
D:
在Altera公司生产的器件中,MAX7000系列属FPGA结构。
7.下列EDA软件中,哪一个不具有逻辑综合功能:
()。
ISEB:
ModelSimC:
QuartusIID:
Synplify
8.下列标识符中,()是不合法的标识符。
State0B:
9moonC:
Not_Ack_0D:
signal@
9.关于VerilogHDL中的数字,请找出以下数字中最大的一个:
8´
b1111_1110B:
3´
o276C:
d170D:
2´
h3E
10.大规模可编程器件主要有FPGA、CPLD两类,下列对CPLD结构与工作原理的描述中,正确的是()。
CPLD是基于查找表结构的可编程逻辑器件;
CPLD即是现场可编程逻辑器件的英文简称;
早期的CPLD是从GAL的结构扩展而来;
在Xilinx公司生产的器件中,XC9500系列属CPLD结构;
11.IP核在EDA技术和开发中具有十分重要的地位;
提供用VHDL等硬件描述语言描述的功能块,但不涉及实现该功能块的具体电路的IP核为()。
A:
瘦IPB:
固IPC:
胖IPD:
12.不完整的IF语句,其综合结果可实现()。
时序逻辑电路B:
组合逻辑电路C:
双向电路D:
三态控制电路
13.CPLD的可编程是主要基于什么结构()。
查找表(LUT)C:
PAL可编程B:
ROM可编程D:
与或阵列可编程
14.IP核在EDA技术和开发中具有十分重要的地位,以HDL方式提供的IP被称为:
硬IPB:
固IPC:
软IPD:
都不是;
15.设a=4´
b1010,b=4´
b0001,c=4´
b1xz0则下列式子的值为1的是()
a>
bB:
a<
=cC:
13-a<
bd:
13–(a>
b)
16.设a=2,b=0,则下列式子中等于X的是()。
a&
a||bC:
!
aD:
x&
a
17.FPGA可编程逻辑基于的可编程结构基于()。
LUT结构B:
乘积项结构C:
PLDD:
都不对
18.CPLD可编程逻辑基于的可编程结构基于()。
PLDD:
19.下列运算符优先级最高的是()。
!
B:
+C:
D:
{}
20.设a=1´
b1,b=3´
b101,c=4´
b1010则X={a,b,c}的值的等于()
7´
b1101100B:
8´
b10101011C:
b11010101D:
b11011010
21.将设计的系统按照EDA开发软件要求的某种形式表示出来,并送入计算机的过程,称为()。
设计的输入B:
设计的输出C:
仿真D:
综合
22.一般把EDA技术的发展分为()个阶段。
2B:
3C:
4D:
5
23.设计输入完成之后,应立即对文件进行()。
编译B:
编辑C:
功能仿真D:
时序仿真
24.VHDL是在()年正式推出的。
1983B:
1985C:
1987D:
1989
25.VerilogHDL是在()年正式推出的。
26.基于硬件描述语言的数字系统设计目前最常用的设计方法称为()设计法。
自底向上B:
自顶向下C:
积木式D:
顶层
27.在EDA工具中,能将硬件描述语言转化为硬件电路的重要工具软件为()。
仿真器B:
综合器C:
适配器D:
下载器
28.在EDA工具中,能完成在目标系统器件上布局布线的软件称为()。
29.逻辑器件()属于非用户定制电路。
逻辑门B:
PROMC:
PLAD:
GAL
30.可编程逻辑器件PLD属于()电路。
半用户定制B:
全用户定制C:
自动生成D:
非用户定制
31.不属于PLD基本结构部分的是()。
与门阵列B:
输入缓存C:
与非门阵列 D:
或门阵列
32.任VerilogHDL的标识符使用字母的规则是()。
大小写相同B:
大小写不同C:
只允许大写D:
只允许小写
33.操作符是VerilogHDL预定义的函数命名,操作符是由()字符组成的。
1B:
2C:
3D:
1~3
34.在VerilogHDL模块中,task语句类似高级语言中的()。
函数B:
常数C:
变量D:
子程序
35.在VerilogHDL模块中,函数调用时返回一个用于()的值。
表达式B:
输出C:
输入D:
程序包
36.VerilogHDL中的always语句中的语句是()语句。
串行B:
顺序C:
并行D:
顺序或并行
37.嵌套的if语句,其综合结果可实现()。
条件相与的逻辑B:
条件相或的逻辑C:
条件相异或的逻辑D:
三态控制电路
38.嵌套的使用if语句,其综合结果可实现()。
带优先级且条件相与的逻辑电路B:
双向控制电路
三态控制电路D:
条件相异或的逻辑电路
39.下列哪个FPGA/CPLD设计流程是正确的()。
原理图/HDL文本输入->
功能仿真->
综合->
适配->
编程下载->
硬件测试
C:
四、简答题
1.简述EDA技术的发展历程?
2.什么是EDA技术?
3.在EDA技术中,什么是自顶向下的设计方法?
4.自顶向下的设计方法有什么重要意义?
5.简要说明目前现代数字系统的发展趋势是什么?
6.简述现代数字系统设计流程。
7.简述原理图设计法设计流程。
8.简述原理图设计法设计方法的优缺点。
9.什么是综合?
综合的步骤是什么?
10.什么是基于平台的设计?
现有平台分为哪几个类型?
11.目前,目前数字专用集成电路的设计主要采用三种方式?
各有什么特点?
12.什么是SOC技术含义是什么?
什么是SOPC?
13.SOPC技术含义是什么?
SOPC技术和SOC技术的区别是什么?
14.SOPC技术是指什么?
SOPC的技术优势是什么?
15.简要说明一下功能仿真和时序仿真的异同。
设计过程中如果只做功能仿真,不做时序仿真,设计的正确性是否能得到保证?
16.综合完成的主要工作是什么?
实现(Implement)完成的主要工作是什么?
17.主要的HDL语言是哪两种?
VerilogHDL语言的特点是什么?
18.简述阻塞赋值与非阻塞赋值的不同。
19.简述过程赋值和连续赋值的区别。
20.什么叫做IP核?
IP在设计中的作用是什么?
21.什么是IP软核,它的特点是什么?
22.根据有效形式将IP分为哪几类?
根据功能方面的划分分为哪两类?
23.比较基于查找表的FPGA和CPLD系统结构和性能上有何不同?
24.什么是数据流级建模?
什么是行为级建模?
25.timescale指令的作用是什么。
26.采用HDL完成设计后,必须应用测试程序(testbench)对设计的正确性进行验证。
测
27.什么是FPGA,CPLD?
他们分别是基于什么结构的可编程逻辑结构?
28.CPLD是基于什么结构的可编程逻辑器件?
其基本结构由哪几部分组成。
29.FPGA是于什么结构的可编程逻辑器件?
30.PLD器件按照编程方式不同,可以分为哪几类?
31.解释编程与配置这两个概念。
32.说明FPGA配置有哪些模式,主动配置和从动配置的主要区别是什么?
33.为什么在FPGA构成的数字系统中要配备一个PROM或E2PROM?
五、程序补充完整
1.下面程序是一个3-8译码器的VerilogHDL描述,试补充完整。
空
(1)decoder_38(out,in)
output[7:
0]out;
input[2:
0]in;
reg[7:
0]out
空
(2)@(in)
begin
空(3)(in)
d0:
out=8´
b11111110;
d1:
b11111101;
d2:
b11111011;
d3:
b11110111;
d4:
b11101111;
d5:
b11011111;
d6:
b10111111;
d7:
b01111111;
endcase
空(4)
空(5)
2.下面程序4位计数器的VerilogHDL描述,试补充完整。
空
(1)count4(out,reset,clk)
output[3:
空
(2)reset,clk;
reg[3:
空(3)@(posedgeclk)
空(4)
if(reset)out<
=0;
elseout<
=out+1;
end
空(5)
3.下面程序描述一个时钟上升沿触发、同步复位的D触发器,试补充完整。
空
(1)dflop(d,reset,clk,q);
inputd,clk;
inputreset;
空
(2)q;
regq;
空(3)(posedgeclk)
if(reset)
q<
=0;
else
=空(4);
4.用下面测试平台对mux21u1二选一选择器进行测试,试补充完整。
空
(1)1ns/100ps
Module空
(2);
regA,B;
regSEL;
wireC;
mux21u1(.a(A),.b(B),.sel(SEL),.c(C));
空(3)
begin
A=0;
B=0;
SEL=0;
#10beginA=1;
B=0;
SEL=0;
end
#10beginA=0;
SEL=1;
#10$空(4);
end
5.clock1是周期为20的时钟,clock_pshift是clock1相移,试补充完整。
空
(1)Gen_clock1(clock_pshift,clock1);
outputclock_pshift,clock1;
regclock1;
wireclock_pshift;
空
(2)T=20;
parameterpshift=2;
clock1=0;
always
#(T/2)clock1=~clock1;
空(4)#PSHIFTclock_pshift=clock1;
6.下面程序描述了8位移位寄存器,试补充完整。
空
(1)shifter(空
(2),clr,dout);
inputdin,clk,clr;
output空(3)dout;
0]dout;
always@(posedgeclk)
if(空(4))dout<
=8'
b0;
else
dout<
=dout<
<
1;
dout[0]<
=din;
endmodule
7.下面程序描述了一个数据选择器MUX,试补充完整。
空
(1)mux(data_in1,data_in2,sel,data_out);
inputdata_in1,data_in2;
input[1:
0]sel;
outputdata_out;
always@(空
(2))
case(空(3))
2′b00:
data_out<
=data_in1^data_in2;
2′b01:
=data_in1|data_in2;
2′b10:
=data_in1~^data_in2;
2′b11:
=~data_in1;
空(4):
=2′bxx;
8.下面程序描述了一个返回两个数中的最大值的函数。
试补充完整。
空
(1)[3:
0]max;
空
(2)[3:
0]a,b;
if(空(3))
max=a;
max=b;
空(4)
六、程序改错
1.下面的中有5处错误,试找出错误并修改正确。
第1行moduledivide2(clk,clk_o,reset)
第2行input
clk,reset;
第3行output
clk_o;
第4行wirein;
第5行wireout;
第6行always(posedgeclkorposedgereset)
第7行if(reset)
第8行
out<
第9行
第10行out<
=in;
第11行
assignin<
=~out;
第12行assignclk_o=out;
2.下面的中有5处错误,试找出错误并修改正确。
第1行moduledff8(reset,d,q);
clk;
第3行input
reset;
第4行input[7:
0]
d;
第5行outputq;
第6行reg[7:
0]q;
第7行initial@(posedgeclk)
第10行else
=d;
第12行endmodule;
3.下面的中有5处错误,试找出错误并修改正确。
第1行moduledecode4_7(decodeout,indec)
第2行output[6:
0]decodeout;
第3行input[3:
0]indec;
第4行reg[6:
第5行always@(indec)
第6行begin
第7行case
第8行4´
decodeout=7´
b1111110;
第9行4´
b0110000;
第10行4´
b1101101;
第11行4´
b1111001;
第12行4´
b0110011;
第13行4´
b1011011;
第14行4´
b1011111;
第15行4´
b1110000;
第16行4´
d8:
b1111111;
第17行4´
d9:
b1111011;
第18行endcase
第19行end
4.下面的中有5处错误,试找出错误并修改正确。
第1行timescale10ns/1ns
第2行modulewave2;
第3行regwave;
第4行cycle=5;
第5行always
第6行fork
第7行wave=0;
第8行#(cycle)wave=1;
第9行#(2*cycle)wave=0;
第10行#(3*cycle)wave=1;
第11行#(4*cycle)wave=0;
第12行#(5*cycle)$finish;
第13行endmodule;
5.下面的中有5处错误,试找出错误并修改正确。
第1行modulealutast(code,a,b,c)
第2行input[1:
0]code;
0]a,b;
第4行output[4:
0]c;
第5行reg[4:
0]c;
第6行taskmy_and;
第7行input[3:
第7行output[4:
0]out;
第8行intergeri;
第9行f