FPGA习题集及参考答案讲解.docx
《FPGA习题集及参考答案讲解.docx》由会员分享,可在线阅读,更多相关《FPGA习题集及参考答案讲解.docx(38页珍藏版)》请在冰点文库上搜索。
FPGA习题集及参考答案讲解
习题集及参考答案
一、填空题
1.一般把EDA技术的发展分为()个阶段。
2.FPGA/CPLD有如下设计步骤:
①原理图/HDL文本输入、②适配、③功能仿真、④综合、⑤编程下载、⑥硬件测试,正确的设计顺序是①()⑤⑥。
3.在EDA工具中,能完成在目标系统器件上布局布线的软件称为()。
4.设计输入完成之后,应立即对文件进行()。
5.基于硬件描述语言的数字系统设计目前最常用的设计方法称为()设计法。
6.将硬件描述语言转化为硬件电路的过程称为()。
7.IP核在EDA技术和开发中具有十分重要的地位,以HDL方式提供的IP被称为()IP。
8.SOC系统又称为()系统。
SOPC系统又称为()系统。
9.将硬核和固核作为()IP核,而软核作为()IP核。
10.IP核在EDA技术和开发中具有十分重要的地位,以HDL方式提供的IP被称为()。
11.HDL综合器就是逻辑综合的过程,把可综合的VHDL/VerilogHDL转化成硬件电路时,包含了三个过程,分别是()、()、()。
12.EDA软件工具大致可以由五个模块构成,分别是设计输入编辑器、()、()、()和()。
13.按仿真电路描述级别的不同,HDL仿真器分为()仿真、()仿真、()仿真和门级仿真。
14.系统仿真分为()、()和()。
15.()仿真是对设计输入的规范检测,这种仿真通过只能表示编译通过,说明设计满足一定的语法规范,但不能保证设计功能满足期望。
16.()仿真是对综合后的网表进行的仿真,它验证设计模块的基本逻辑功能,但不带有布局布线后产生的时序信息,是理想情况下的验证。
17.()仿真是布局布线后进行的后仿真,仿真时考虑了布线延时,和芯片实际的工作情况更加接近。
18.目前Xilinx公司生产的FPGA主要采用了()配置存储器结构。
19.描述测试信号的变化和测试工程的模块叫做()。
20.现代电子系统设计领域中的EDA采用()的设计方法。
21.有限状态机可分为()状态机和()状态机两类。
22.VerilogHDL中的端口类型有三类:
()、()、输入/输出端口。
23.VerilogHDL常用两大数据类型:
()、()。
24.FPGA/CPLD设计流程为:
原理图/HDL文本输入→()→综合→适配→()→编程下载→硬件测试。
25.()是描述数据在寄存器之间流动和处理的过程。
26.连续赋值常用于数据流行为建模,常以()为关键词。
27.VerilogHDL有两种过程赋值方式:
()和()。
28.`timescale1ns/100ps中1ns代表(),100ps代表()。
29.未来的集成电路技术的发展趋势,把整上系统集成在一个芯片上去,这种芯片被称为()。
30.从互连结构上可将PLD分为确定型和统计型两类。
确定型结构的代表是(),统计型结构代表是()。
31.CPLD是由()的结构演变而来的。
32.FPGA的核心部分是(),由内部逻辑块矩阵和周围I/O接口模块组成。
33.把基于电可擦除存储单元的EEPROM或Flash技术的的在系统下载称为(),这个过程就是把编程数据写入E2CMOS单元阵列的过程。
34.根据配置数据线数,器件配置可分为并行配置和串行配置两类。
串行配置以()为单位将配置数据载人可编程器件:
而并行配置一般以()为单位向可编程器件载入配置数据。
35.FPGA的配置模式有从动串行模式、从动并行模式、主动串行模式、主动并行模式、以及()模式。
36.可编程逻辑器件的配置方式分为()和()两类。
37.VerilogHDL是在()年正式推出的。
38.在verilogHDL的always块本身是()语句。
39.VerilogHDL中的always语句中的语句是()语句。
40.VerilogHDL提供了标准的系统任务,用于常用的操作。
如显示、文件输入/输出等,系统函数前都有一个标志符()加以确认。
41.VerilogHDL很好地支持了“自顶向下”的设计理念,即,复杂任务分解成的小模块完成后,可以通过()的方式,将系统组装起来。
42.VerilogHDL模块分为两种类型:
一种是()模块,即,描述某种电路系统结构,功能,以综合或者提供仿真模型为设计目的;另一种是()模块,即,为功能模块的测试提供信号源激励、输出数据监测。
43.Verilog语言中,标识符可以是任意一组字母、数字、()符号和下划线符号的组合。
44.state,State,这两个标识符是()同。
45.assignc=a>ba:
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,,,,.,,
三、选择题
1.任VerilogHDL的端口声明语句中,用()关键字声明端口为双向端口
A:
inoutB:
INOUTC:
BUFFERD:
buffer
2.用VerilogHDL的assign语句建模的方法一般称为()方法。
A:
连续赋值B:
并行赋值C:
串行赋值D:
函数赋值
3.IP核在EDA技术和开发中具有十分重要的地位,IP是指()。
A:
知识产权B:
互联网协议C:
网络地址D:
都不是
4.在verilogHDL的always块本身是()语句
A:
顺序B:
并行C:
顺序或并行D:
串行
5.)
6.大规模可编程器件主要有FPGA、CPLD两类,下列对FPGA结构与工作原理的描述中,正确的是()。
A:
FPGA是基于乘积项结构的可编程逻辑器件;
B:
FPGA是全称为复杂可编程逻辑器件;
C:
基于SRAM的FPGA器件,在每次上电后必须进行一次配置;
D:
在Altera公司生产的器件中,MAX7000系列属FPGA结构。
7.下列EDA软件中,哪一个不具有逻辑综合功能:
()。
A:
ISEB:
ModelSimC:
QuartusIID:
Synplify
8.下列标识符中,()是不合法的标识符。
A:
State0B:
9moonC:
Not_Ack_0D:
signal@
9.关于VerilogHDL中的数字,请找出以下数字中最大的一个:
()。
A:
8′b1111_1110B:
3′o276C:
3′d170D:
2′h3E
10.大规模可编程器件主要有FPGA、CPLD两类,下列对CPLD结构与工作原理的描述中,正确的是()。
A:
CPLD是基于查找表结构的可编程逻辑器件;
B:
CPLD即是现场可编程逻辑器件的英文简称;
C:
早期的CPLD是从GAL的结构扩展而来;
D:
在Xilinx公司生产的器件中,XC9500系列属CPLD结构;
11.IP核在EDA技术和开发中具有十分重要的地位;提供用VHDL等硬件描述语言描述的功能块,但不涉及实现该功能块的具体电路的IP核为()。
A:
瘦IPB:
固IPC:
胖IPD:
都不是
12.不完整的IF语句,其综合结果可实现()。
A:
时序逻辑电路B:
组合逻辑电路C:
双向电路D:
三态控制电路
13.CPLD的可编程是主要基于什么结构()。
A:
查找表(LUT)C:
PAL可编程B:
ROM可编程D:
与或阵列可编程
14.IP核在EDA技术和开发中具有十分重要的地位,以HDL方式提供的IP被称为:
()
A:
硬IPB:
固IPC:
软IPD:
都不是;
15.设a=4′b1010,b=4′b0001,c=4′b1xz0则下列式子的值为1的是()
A:
a>bB:
a<=cC:
13-a13–(a>b)
16.设a=2,b=0,则下列式子中等于X的是()。
A:
a&&bB:
a||bC:
!
aD:
x&&a
17.FPGA可编程逻辑基于的可编程结构基于()。
A:
LUT结构B:
乘积项结构C:
PLDD:
都不对
18.CPLD可编程逻辑基于的可编程结构基于()。
A:
LUT结构B:
乘积项结构C:
PLDD:
都不对
19.下列运算符优先级最高的是()。
A:
!
B:
+C:
&D:
{}
20.设a=1′b1,b=3′b101,c=4′b1010则X={a,b,c}的值的等于()
21.将设计的系统按照EDA开发软件要求的某种形式表示出来,并送入计算机的过程,称为()。
A:
设计的输入B:
设计的输出C:
仿真D:
综合
22.一般把EDA技术的发展分为()个阶段。
A:
2B:
3C:
4D:
5
23.设计输入完成之后,应立即对文件进行()。
A:
编译B:
编辑C:
功能仿真D:
时序仿真
24.VHDL是在()年正式推出的。
A:
1983B:
1985C:
1987D:
1989
25.VerilogHDL是在()年正式推出的。
A:
1983B:
1985C:
1987D:
1989
26.基于硬件描述语言的数字系统设计目前最常用的设计方法称为()设计法。
A:
自底向上B:
自顶向下C:
积木式D:
顶层
27.在EDA工具中,能将硬件描述语言转化为硬件电路的重要工具软件为()。
A:
仿真器B:
综合器C:
适配器D:
下载器
28.在EDA工具中,能完成在目标系统器件上布局布线的软件称为()。
A:
仿真器B:
综合器C:
适配器D:
下载器
29.逻辑器件()属于非用户定制电路。
A:
逻辑门B:
PROMC:
PLAD:
GAL
30.可编程逻辑器件PLD属于()电路。
A:
半用户定制B:
全用户定制C:
自动生成D:
非用户定制
31.不属于PLD基本结构部分的是()。
A:
与门阵列B:
输入缓存C:
与非门阵列 D:
或门阵列
32.任VerilogHDL的标识符使用字母的规则是()。
A:
大小写相同B:
大小写不同C:
只允许大写D:
只允许小写
33.操作符是VerilogHDL预定义的函数命名,操作符是由()字符组成的。
A:
1B:
2C:
3D:
1~3
34.在VerilogHDL模块中,task语句类似高级语言中的()。
A:
函数B:
常数C:
变量D:
子程序
35.在VerilogHDL模块中,函数调用时返回一个用于()的值。
A:
表达式B:
输出C:
输入D:
程序包
36.VerilogHDL中的always语句中的语句是()语句。
A:
串行B:
顺序C:
并行D:
顺序或并行
37.嵌套的if语句,其综合结果可实现()。
A:
条件相与的逻辑B:
条件相或的逻辑C:
条件相异或的逻辑D:
三态控制电路
38.嵌套的使用if语句,其综合结果可实现()。
A:
带优先级且条件相与的逻辑电路B:
双向控制电路
C:
三态控制电路D:
条件相异或的逻辑电路
39.下列哪个FPGA/CPLD设计流程是正确的()。
A:
原理图/HDL文本输入->功能仿真->综合->适配->编程下载->硬件测试
B:
原理图/HDL文本输入->适配->综合->功能仿真->编程下载->硬件测试
C:
原理图/HDL文本输入->功能仿真->综合->编程下载->适配->硬件测试
D:
原理图/HDL文本输入->适配->功能仿真->综合->编程下载->硬件测试
四、简答题
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)
3′d7:
out=8′b01111111;
endcase
空(4)
空(5)
2.下面程序4位计数器的VerilogHDL描述,试补充完整。
空
(1)count4(out,reset,clk)
output[3:
0]out;
空
(2)reset,clk;
reg[3:
0]out;
空(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
q<=空(4);
空(5)
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;B=0;SEL=1;end
#10$空(4);
end
空(5)
5.clock1是周期为20的时钟,clock_pshift是clock1相移,试补充完整。
空
(1)Gen_clock1(clock_pshift,clock1);
outputclock_pshift,clock1;
regclock1;
wireclock_pshift;
空
(2)T=20;
parameterpshift=2;
空(3)
clock1=0;
always
#(T/2)clock1=~clock1;
空(4)#PSHIFTclock_pshift=clock1;
空(5)
6.下面程序描述了8位移位寄存器,试补充完整。
空
(1)shifter(空
(2),clr,dout);
inputdin,clk,clr;
output空(3)dout;
reg[7:
0]dout;
always@(posedgeclk)
begin
if(空(4))dout<=8'b0;
else
begin
dout<=dout<<1;
dout[0]<=din;
end
空(5)
endmodule
7.下面程序描述了一个数据选择器MUX,试补充完整。
空
(1)mux(data_in1,data_in2,sel,data_out);
inputdata_in1,data_in2;
input[1:
0]sel;
outputdata_out;
always@(空
(2))
begin
case(空(3))
2′b00:
data_out<=data_in1^data_in2;
2′b01:
data_out<=data_in1|data_in2;
2′b10:
data_out<=data_in1~^data_in2;
2′b11:
data_out<=~data_in1;
空(4):
data_out<=2′bxx;
endcase
end
空(5)
8.下面程序描述了一个返回两个数中的最大值的函数。
试补充完整。
空
(1)[3:
0]max;
空
(2)[3:
0]a,b;
begin
if(空(3))
max=a;
else
max=b;
空(4)
空(5)
六、程序改错
1.下面的中有5处错误,试找出错误并修改正确。
第1行moduledivide2(clk,clk_o,reset)
第2行inputclk,reset;
第3行output clk_o;第4行wirein;第5行wireout;第6行always(posedgeclkorposedgereset)第7行if(reset)第8行 out<=0;第9行 else第10行out<=in;第11行 assignin<=~out;第12行assignclk_o=out;
2.下面的中有5处错误,试找出错误并修改正确。
第1行moduledff8(reset,d,q);第2行input clk;第3行input reset;第4行input[7:
0] d;第5行outputq;第6行reg[7:
0]q;第7行initial@(posedgeclk)第8行 if(reset)第9行 q<=0;第10行else第11行 q<=d;第12行endmodule;
3.下面的中有5处错误,试找出错误并修改正确。
第1行moduledecode4_7(decodeout,indec)
第2行output[6:
0]decodeout;
第3行input[3:
0]indec;
第4行reg[6:
0]decodeout;
第5行always@(indec)
第6行begin
第7行case
第8行4′d1:
decodeout=7′b1111110;
第9行4′d1:
decodeout=7′b0110000;
第10行4′d2:
decodeout=7′b1101101;
第11行4′d3:
decodeout=7′b1111001;
第12行4′d4:
decodeout=7′b0110011;
第13行4′d5:
decodeout=7′b1011011;
第14行4′d6:
decodeout=7′b1011111;
第15行4′d7:
decodeout=7′b1110000;
第16行4′d8:
decodeout=7′b1111111;
第17行4′d9:
decodeout=7′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;
第3行input[3:
0]a,b;
第4行output[4:
0]c;
第5行reg[4:
0]c;
第6行taskmy_and;
第7行input[3:
0]a,b;
第7行output[4:
0]out;
第8行intergeri;
第9行for(i=3;i>=0;i=i-1)
第10行out[i]=a[i]&b[i];
第11行end
第12行always@(codeoraorb)
第13行begin
第14行case(code)
第15行2’b00:
my_hand(a,b,c);
第16行2’b01:
c=a|b;
第17行2’b10:
c=a-b;
第18行2’b11:
c=a+b;
第19行end
第20行endmodule;
6.下面的中有5处错误,试找出错误并修改正确。
第1行modulemux4_1(out,in0,in1,in2,in3,sel);
第2行inputout;
第3行inputin0,in1,in2,in3;
第4行inputsel;
第5行regout;
第6行always@()
第7行case(sel)
第8行2'b01:
out=in0;
第9行2'b01:
out=in1;
第10行2'b10:
out=in2;
第11行2'b11:
out=in3;
第12行default:
out=2'bx;
第13行endmo