最新FPGA题及答案.docx
《最新FPGA题及答案.docx》由会员分享,可在线阅读,更多相关《最新FPGA题及答案.docx(13页珍藏版)》请在冰豆网上搜索。
最新FPGA题及答案
一、填空题
1、本课程的讲授目标:
了解一种新技术EDA;掌握一种设计工具(器件:
AlteraFPGA软件:
QuartusII);掌握一种语言VerilogHDL。
2、使用QuartusII进行逻辑设计,常用的设计思想的输入方式有:
原理图、HDL等。
3、高级语言C程序经过软件程序编译器形成cpu指令/数据代码流;VerilogHDL程序经过综合器形成电路网表文件
4、CPLD是在PAL,GAL等类型器件的基础上发展起来的与或阵列型PLD器件,大多数FPGA采用了查找表结构,其物理结构是静态存储器SRAM.。
5、JTAG边界扫描技术用于对高密度、引脚密集的器件和系统进行测试,如:
CPU,DSP,ARM,PLD等。
同时,JTAG接口也被赋予了更多的功能:
编程下载、在线逻辑分析。
6、使用VerilogHDL进行逻辑设计,变量的值有4种状态:
0、1、x、z;
7、定义逻辑功能的几种基本方法:
用assign持续赋值语句定义、用always过程块定义、调用元件(元件例化)。
8、整数按如下方式书写:
+/-'即+/-<位宽>'<进制><数字>size为对应二进制数的宽度;base为进制;value是基于进制的数字序列。
进制有如下4种表示形式:
二进制(b或B)、十进制(d或D或缺省)、十六进制(h或H)、八进制(o或O)
9、定义reg型标量型变量:
regqout;//变量名qout
10、定义wire型向量:
wire[7:
0]databus;//databus的宽度是8位
11、在状态机设计中使用一位热码定义5种状态,并定义状态变量:
parameters0=5’b00001,s1=5’b00010,s2=5’b00100,s3=5’b01000,s4=5’b10000;
reg[4:
0]state,next_state;
12、在状态机设计中使用顺序码定义5种状态,并定义状态变量:
parameters0=3’b000,s1=3’b001,s2=3’b010,s3=3’b011,s4=3’b100;
reg[2:
0]state,next_state;
一、选择题(多选)
1、成为IEEE标准的HDL有(CD)
A、ABEL-HDLB、AHDLC、VHDLD、VerilogHDL
2、QuartusII是(A)公司的(D)开发工具。
A、AlteraB、XilinxC、LatticeD、集成E、专用F、第三方
3、ModelSim是Mentor公司的出色的(C)软件,它属于编译型(C)器,速度快,功能强。
A、综合
B、编译
C、仿真、
D、布局布线
E、编程配置
4、使用Altera公司的QuartusII和FPGA器件能够进行(BEF)设计。
A、模拟电路设计
B、数字电路设计
C、PCB设计
D、高速电路设计
E、DSP设计
F、SOPC设计
5、使用VerilogHDL进行逻辑设计,端口类型有(ABC)
A、inputB、outputC、inoutD、buffer
6、使用VerilogHDL进行逻辑设计,可综合的变量类型有(ABF)
A、reg
B、wire
C、buffer
D、string
E、double
F、integer
7、a=5`b11001;b=5`b10101;下面那个是正确的(ABCD)
A、~a=5’b00110;
B、a&b=5`b10001;
C、a|b=5`b11101;
8、下面那些语句可以被综合成电路(BCDE)F、while
A、initialB、alwaysC、assignD、`defineE、for
二、判断题
1、VHDL和VerilogHDL是一种HDL的两种名称(×)
2VerilogHDL是IEEE标准(√)
3、相同的电路逻辑即可使用原理图方法输入也可使用HDL语言输入(√)
4、VerilogHDL语言编写的程序都是可以被综合的,都能形成网表电路。
(×)
5、VerilogHDL语言即可用来做可综合的功能模块设计,又可以编写仿真文件实现对模块的测试。
(√)
6、“?
”是高阻Z的另一种表述符号。
(√)7COUNT与count是相同的标识符名称。
(×)
8、Verilog语言内部已经使用的词称为关键字或保留字,这些保留字用户不能作为变量或节点名字使用。
关键字都是大写的。
(×)9、下面3中连接符的使用能实现相同的功能(√)
A、{3{a,b}};B、{{a,b},{a,b},{a,b}};C、{a,b,a,b,a,b}
10initial语句可以被综合器综合成电路。
(×)
三、编程题
①6、用for语句描述七人投票表决器
modulevoter7(pass,vote);
outputpass;
input[6:
0]vote;
reg[2:
0]sum;integeri;regpass;
always@(vote)
beginsum=0;
for(i=0;i<=6;i=i+1)//for语句
if(vote[i])sum=sum+1;
if(sum[2])pass=1;//超过4人赞成,则通过
elsepass=0;
Endendmodule
②8、4选1数据选择器
modulemux4_1(out,in0,in1,in2,in3,sel);
outputout;
inputin0,in1,in2,in3;
input[1:
0]sel;regout;
always@(in0orin1orin2orin3orsel)
//敏感信号列表
case(sel)
2'b00:
out=in0;
2'b01:
out=in1;
2'b10:
out=in2;
2'b11:
out=in3;
default:
out=x;
endcase
endmodule
③13、带同步清0/同步置1(低电平有效)的D触发器
moduledff_syn(q,qn,d,clk,set,reset);
inputd,clk,set,reset;outputregq,qn;
always@(posedgeclk)
begin
if(~reset)beginq<=1'b0;qn<=1'b1;end
//同步清0,低电平有效
elseif(~set)beginq<=1'b1;qn<=1'b0;end
//同步置1,低电平有效
elsebeginq<=d;qn<=~d;end
end
endmodule
④14、带异步清0/异步置1(低电平有效)的D触发器
moduledff_asyn(q,qn,d,clk,set,reset);
inputd,clk,set,reset;outputregq,qn;
always@(posedgeclkornegedgesetornegedgereset)
begin
if(~reset)beginq<=1'b0;qn<=1'b1;end
//异步清0,低电平有效
elseif(~set)beginq<=1'b1;qn<=1'b0;end
//异步置1,低电平有效
elsebeginq<=d;qn<=~d;end
end
endmodule
⑤18、分频器设计(偶数等占空比分频;1:
15占空比分频)
A、
modulediv6(clk,rst,clk6);
inputrst,clk;
outputclk6;
regclk6;
reg[1:
0]cnt;
always@(posedgeclkorposedgerst)
begin
if(rst==1’b1)
cnt<=2’b00;
elseif(cnt==2)begin
cnt<=2’b00;
clk6<=~clk6;
end
elsecnt<=cnt+1;
end
endmodule
B、
modulediv1_15(clk,rst,clk16);
inputrst,clk;
outputclk16;
regclk16;
reg[3:
0]cnt;
always@(posedgeclkorposedgerst)
begin
if(rst==1’b1)
cnt<=4’b0000;
elsecnt<=cnt+1;
end
always@(posedgeclkorposedgerst)
begin
if(rst==1’b1)
clk16<=1’b0;
elseif(clk16==15)
clk16<=1’b1;
elseclk16<=1’b0;
end
endmodule
⑥19、画出状态转移图,并采用有限状态机设计一个彩灯控制器,要求控制8个LED灯实现如下的演示花型:
从两边往中间逐个亮;全灭;从中间往两头逐个亮;全灭;循环执行上述过程
LIBRARYIEEE;
USEIEEE.STD_LOGIC_1164.ALL;
USEIEEE.STD_LOGIC_Arith.ALL;
USEIEEE.STD_LOGIC_Unsigned.ALL;
ENTITYsfwyIS
PORT(clk:
INSTD_LOGIC;
led:
OUTSTD_LOGIC_VECTOR(7DOWNTO0));
end;
ARCHITECTUREoneOFsfwyIS
signalled_r:
std_logic_vector(8DOWNTO0);
signaltmp:
std_logic_vector(25downto0);
signalq:
std_logic;
begin
process(clk)
begin
ifclk'eventandclk='1'thentmp<=tmp+1;
endif;
endprocess;
q<=tmp(25);
led<=led_r(7DOWNTO0);
process(q)
begin
ifq'eventandq='1'then
led_r<=led_r(7DOWNTO0)&'0';
ifled_r="000000000"THEN--循环完毕吗?
led_r<="111111111";--是,则重新赋初值
endif;
endif;
endprocess;
endone;
⑦20、画出状态转移图,并采用有限状态机设计一个“1001”串行数据检测器。
其输入、输出如下所示:
输入x:
000101010010011101001110101
输出z:
000000000010010000001000000
初始状态设为s0,此时检测数据序列为“0000”,当再检测到一个0时,仍为s0,当检测到1时,进入下一个状态s1,此时序列为“0001”;当在状态s1检测到0时,进入到状态s2,此时序列为“0010”,当检测到1时,仍为s1;当在状态s2检测到0时,进入到状态s3,此时序列为“0100”,当检测到1时,进入s1;当在状态s3检测到0时,进入s0,当检测到1时,进入状态s4,此时序列为“1001”,结果输出为1;当在s4检测到0时,进入状态s2,当检测到1时,进入状态s1实验代码:
modulesjjcq10_3(x,z,clk,reset,state);
inputx,clk,reset;
outputz;
output[2:
0]state;
reg[2:
0]state;
regz;
parameters0='d0,s1='d1,s2='d2,s3='d3,s4='d4;
always@(posedgeclk)
begin
if(reset)beginstate<=s0;z<=0;end
else
casex(state)
s0:
begin
if(x==0)beginstate<=s0;z<=0;end
else beginstate<=s1;z<=0;end
end
s1:
begin
if(x==0)beginstate<=s2;z<=0;end
else beginstate<=s1;z<=0;end
end
s2:
begin
if(x==0)beginstate<=s3;z<=0;end
else beginstate<=s1;z<=0;end
end
s3:
begin
if(x==0)beginstate<=s0;z<=0;end
else beginstate<=s4;z<=1;end
end
s4:
begin
if(x==0)beginstate<=s2;z<=0;end
else beginstate<=s1;z<=0;end
end
default:
state<=s0;
endcase
end
endmodule
三、简答题
1、什么是IP复用技术,IP核对EDA技术的应用和发展有什么意义?
答案:
IP复用是指对系统中的某些模块直接使用自己的IP来实现,不用设计所有模块;IP核具有规范的接口协议,良好的可移植性与可测试性,为系统开发提供了可靠的保证
2、基于FPGA/CPLD的数字系统设计流程包括哪些步骤?
答案:
设计输入。
综合。
布局布线。
仿真和编程下载
3、功能仿真与时序仿真有什么区别?
答案:
不考虑信号时延等因素的仿真称为功能仿真;时序仿真又称为后仿真,是在选择具体器件并完成布局布线后进行的包含延时的仿真。
4、wire型和reg型变量有什么本质区别?
答案:
Wire是常用的net型数据变量,net型数据数据相当于硬件电路中的各种物理连接;reg型变量属于variable型变量,必须放在过程语句中,通过过程赋值语句赋值。
5、说说JTAG接口都有哪些功能。
答案:
JTAG边界扫描技术用于对高密度、引脚密集的器件和系统进行测试,如:
CPU,DSP,ARM,PLD等。
同时,JTAG接口也被赋予了更多的功能:
编程下载、在线逻辑分析。
6、CPLD和FPGA在结构上有什么明显的区别,各有何特点?
答案:
CPLD是宏单元结构,是一种可编程逻辑器件,它可以在制造完成后由用户根据自己的需要定义其逻辑功能。
FPGA是查找表结构,解决了定制电路的不足,又克服了原有可编程器件门电路数有限的缺点。
(五)DIY手工艺品的“价格弹性化”CPLD更适合完成各种算法和组合逻辑,FPGA更适合于完成时序逻辑。
7、
8、虽然调查显示我们的创意计划有很大的发展空间,但是各种如“漂亮女生”和“碧芝”等连锁饰品店在不久的将来将对我们的创意小屋会产生很大的威胁。
阻塞赋值和非阻塞赋值的区别?
在上海,随着轨道交通的发展,地铁商铺应运而生,并且在重要商圈已经形成一定的气候,投资经营地铁商铺逐渐为一大热门。
在人民广场地下的迪美购物中心,有一家DIY自制饰品店--“碧芝自制饰品店”答案:
阻塞赋值是在该语句结束是立即完成赋值操作;非阻塞赋值是在整个过程块结束是才完成赋值操作。
8、简单描述下面always过程敏感信号列表中表达的信息:
培养动手能力□学一门手艺□打发时间□兴趣爱好□@(a)//当信号a的值发生改变
答案:
@(aorb)//当信号a或信号b的值发生改变
我们长期呆在校园里,没有工作收入一直都是靠父母生活,在资金方面会表现的比较棘手。
不过,对我们的小店来说还好,因为我们不需要太多的投资。
@(posedgeclock)//当clock的上升沿到来时
小饰品店往往会给人零乱的感觉,采用开架陈列就会免掉这个麻烦。
“漂亮女生”像是个小超市,同一款商品色彩丰富地挂了几十个任你挑,拿上东西再到收银台付款。
这也符合女孩子精挑细选的天性,更保持了店堂长盛不衰的人气。
@(negedgeclock)//当clock的下降沿到来时
@(posedgeclkornegedgereset)//当clk的上升沿到来或reset信号的下降沿到来
9、写出1、2、3、4、5、6、7、8、9的二进制编码、格雷编码、约翰逊编码、一位热编码的表达形式。
(五)DIY手工艺品的“价格弹性化”答案:
二进制编码:
0001.0010.0011.0100.0101.0110.0111.1000.1001.
而手工艺制品是一种价格适中,不仅能锻炼同学们的动手能力,同时在制作过程中也能体会一下我国传统工艺的文化。
无论是送给朋友还是亲人都能让人体会到一份浓厚的情谊。
它的价值是不用金钱去估价而是用你一颗真诚而又温暖的心去体会的。
更能让学生家长所接受。
格雷编码:
0001.0011.0010.0110.0111.0101.0100.1100.1101.
约翰逊编码:
00000001.00000011.00000111.00001111.00011111.00111111.01111111.11111111.
11111110.
一位热编码:
0000000000000010.0000000000000100.000000000001000.00000000010000.
据上述部分的分析可见,我校学生就达4000多人。
附近还有两所学校,和一些居民楼。
随着生活水平的逐渐提高,家长给孩子的零用钱也越来越多,人们对美的要求也越来越高,特别是大学生。
他们总希望自己的无论是衣服还是首饰都希望与众不同,能穿出自己的个性。
但在我们美丽的校园里缺少自己的个性和琳琅满目的饰品,所以我们的小饰品店存在的竞争力主要是南桥或是市区的。
这给我们小组的创业项目提供了一个很好的市场机会。
0000000000100000.0000000001000000.0000000010000000.0000000100000000.
当然,在竞争日益激烈的现代社会中,创业是件相当困难的事。
我们认为,在实行我们的创业计划之前,我们首先要了解竞争对手,吸取别人的经验教训,制订相应竞争的策略。
我相信只要我们的小店有自己独到的风格,价格优惠,服务热情周到,就一定能取得大多女孩的信任和喜爱。