- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
FPGA笔试题及答案
一、选择题(每题5分,共20分)
以下关于FPGA与CPLD的区别,描述错误的是()
A.FPGA基于SRAM结构,掉电后配置信息丢失;CPLD基于EEPROM/FLASH,掉电后配置信息保留
B.FPGA逻辑资源密度更高,适合实现复杂时序逻辑;CPLD逻辑资源较少,适合实现简单组合逻辑
C.FPGA的引脚到引脚延迟(tPD)更稳定,不受逻辑规模影响;CPLD的tPD随逻辑规模增大而增加
D.FPGA支持部分重配置;CPLD通常不支持部分重配置
Verilog代码中,下列哪种写法会产生latch()
A.组合逻辑always块中,if-else分支完整覆盖所有条件
B.组合逻辑always块中,case语句包含default分支
C.组合逻辑always块中,仅对部分输入条件下的输出赋值
D.时序逻辑always块中,仅在时钟上升沿对输出赋值
时序分析中,“建立时间(SetupTime)”的定义是()
A.时钟边沿到来后,数据必须保持稳定的最小时间
B.时钟边沿到来前,数据必须保持稳定的最小时间
C.时钟周期内,数据从输入到输出的最大延迟时间
D.两个相邻时钟边沿之间的时间间隔
FPGA中BlockRAM(BRAM)的主要用途不包括()
A.实现大容量数据缓存(如视频帧缓存)
B.实现FIFO(先进先出)队列
C.实现复杂组合逻辑运算(如32位加法器)
D.实现ROM(存储固定查找表,如正弦波表)
二、简答题(每题10分,共30分)
简述FPGA设计中“跨时钟域处理”的必要性,以及单bit信号和多bit信号常用的跨时钟域处理方法。
解释Verilog中“阻塞赋值(=)”与“非阻塞赋值(=)”的区别,说明在时序逻辑和组合逻辑设计中应如何选择使用。
FPGA下载配置文件后,芯片未按预期工作,列出至少4种可能的故障原因及对应的排查方法。
三、代码分析题(15分)
阅读以下Verilog代码,指出代码中的问题,并修改为正确的时序逻辑代码(实现“输入数据在时钟上升沿锁存,且仅当使能信号en为高时,输出锁存的数据”功能)。
moduledata_latch(
inputclk,
inputen,
input[7:0]data_in,
outputreg[7:0]data_out
);
always@(clkorenordata_in)begin
if(clk)begin
if(en==1b1)begin
data_out=data_in;
end
end
end
endmodule
四、设计题(35分)
设计一个基于FPGA的“4位二进制计数器”,要求如下:
功能:同步清零(rst_n,低电平有效)、同步使能(en,高电平有效),时钟上升沿触发计数,计数范围0~15,计满后自动清零(模16计数);
端口:输入clk(50MHz)、rst_n(低电平有效)、en(高电平有效),输出count[3:0](计数结果)、carry(进位信号,计满15时为高,持续1个时钟周期);
写出完整Verilog代码(需包含模块定义、信号声明、逻辑实现),并简要说明时序逻辑设计思路。
参考答案
一、选择题
C(解析:CPLD的tPD更稳定,不受逻辑规模影响;FPGA的tPD随逻辑规模增大而增加,因需通过查找表和布线资源传输信号)
C(解析:组合逻辑中若输出未被所有输入条件覆盖,会产生latch,导致时序不稳定;A、B可避免latch,D是正常时序逻辑写法)
B(解析:建立时间是时钟边沿前数据需稳定的最小时间,保证数据被正确锁存;A是保持时间定义,C是传输延迟,D是时钟周期)
C(解析:BRAM用于存储数据,复杂组合逻辑需用LUT和进位链实现;A、B、D均是BRAM典型用途)
二、简答题
必要性:不同时钟域的信号频率/相位不同,直接交互会导致亚稳态(数据在时钟边沿前后不稳定),引发逻辑错误。
处理方法:
单bit信号:两级寄存器同步(慢时钟域→快时钟域)、边沿检测(快时钟域→慢时钟域,如用脉冲展宽+同步);
多bit信号:①用FIFO(如异步FIFO,自动处理跨时钟域数据缓存与同步);②握手协议(如req/ack信号,确保数据完整传输);③格雷码编码(仅1bit变化,配合同步器,适合地址信号跨域)。
区
文档评论(0)