清明时节雨纷纷,路上行人欲断魂
3月底,笔者陆陆续续开始投递了一些公司,得到了一些一手FPGA面试资料,本着相互学习,共同进步的态度,将其中精华部分摘取出来,以便同行“享用” 。~~~
(注:笔者并不提供答案———得不到的才是最好的,请为其保留一份神秘感 ** :)** )
第一道菜(入口即化)
- 什么是FPGA?请简述FPGA的应用方向(FPGA可以做啥?)
** 此题答对不得分,答错直接扣41分**
-
FPGA的主要厂商有哪些?各主要厂商FPGA产品主要有哪些?
-
FPGA内部主要结构是什么?
-
FPGA的主流开发工具有哪些?使用过哪些工具?
-
请简述FPGA的一般开发流程(Verilog语言的RTL级开发)? 6. 什么是建立时间?什么是保持时间?若不满足,会导致什么?
-
什么是竞争与冒险现象?怎么判断?如何消除? 8. 同步电路与异步电路的异同?
-
对于异步信号如何进行同步? 10. FPGA的外部时钟输入管脚sys_clk工作频率为40MHz,同时FPGA还有一个工作频率为20KHz的低速IO同步信号sys_in.请写出一个利用sys_clk时钟信号检测该低速同步信号sys_in的上升沿到来的程序,要求输出上升沿到来检测信号的持续周期为1个sys_clk时钟周期。
第二道菜(回味无穷)
一.选择题
1.在Verilog HDL的端口声明语句中,用( )关键字声明端口为双向端口。
inout INOUT BUFFER buffer
2.用Verilog HDL的assign语句建模的方法一般称为( )方法。
连续赋值 并行赋值 串行赋值 函数赋值
3.在Verilog HDL的逻辑运算中,设A=8'b11010001,B=8'b00011001,则表达式“A&B”的结果为( )。
8'b00010001 8'b11011001 8'b11001000 8'b00110111
4.编程器件主要有FPGA、CPLD两类,下列对FPGA结构与工作原理的描述中,正确的是( )。
FPGA是基于乘积项结构的可编程逻辑器件;
FPGA是全称为复杂可编程逻辑器件;
基于SRAM的FPGA器件,在每次上电后必须进行一次配置;
在Altera公司生产的器件中,MAX7000系列属FPGA结构;
5.下列EDA软件中,哪一个不具有逻辑综合功能( )。
ISE ModelSim Quartus II Synplify
6.关于Verilog HDL中的数字,请找出以下数字中最大的一个:( )。
8'b11111110 3'0276 3'd170 2'h3E
7.IP核在EDA技术和开发工具中具有十分重要的地位,提供用VHDL等硬件描述语言描述的功能块,但不涉及实现该功能块的具体电路的IP核为( )。
瘦IP 固IP 胖IP 都不是
8.设a=4'b1010,b=4'b0001,c=4'b1xz0,则下列式子的值为1的是( )。
a > b a <= c 13-a < b 13-(a > b)
9.FPGA可编程逻辑基于的可编程结构基于( )。
LUT结构 乘积项结构 PLD 都不对
10.在VHDL语言中,下列对进程(PROCESS)语句的语句结构及语法规则的描述中不正确的是( )。
PROCESS为一无线循环语句,敏感信号发生更新时启动进程,执行完成后,等待下次进程启动;
敏感信号参数表中,不一定要列出进程中使用的所有输入信号;
进程由说明部分、结构体部分和敏感信号三部分组成
当前进程中声明的变量不可用于其他进程
11.要进行完成综合布局布线后的时序仿真,下列哪种文件可以不需要( )。
门级网表文件 标准延时文件 底层库单元 管脚分配文件
12.下列哪种不能用于仿真验证( )。
ISE Modelsim VCS Questasim
13.下列操作会导致仿真结果与最终电路不一致的是( )。
存在多余敏感信号
敏感信号缺失
组合逻辑生成信号做异步复位
都不对
14.下列哪个时间表示的是寄存器的建立时间( )。
15.在VHDL中下列哪种方式可能会产生锁存器( )。
if(clk'event and clk='1') then语句没有对应的else分支
描述组合逻辑时,if语句没有else分支
定义寄存器时没有设置初始值
例化模块时,输出端口连接不完全
16.VHDL语言中,进程中的变量(variable)赋值语句,其变量更新是( )。
立即完成 按顺序完成 在进程的最后完成 都不对
17.下列哪个时间表示的是removal时间( )。
18.在Verilog中下列哪种方式可能会产生锁存器( )。
always@(posedge clk)块中if没有对应的else分支
描述组合逻辑时,case语句分支描述不完整
定义寄存器时没有设置初始值
例化模块时,输出端口连接不完全
19.下列复位操作会导致非预期复位的是( )。
全局复位
既有同步复位又有异步复位
组合逻辑生成信号做异步复位
都不对
20.下列复位操作会导致不同时复位的是( )。
全局复位
既有同步复位又有异步复位
组合逻辑生成信号做异步复位
都不对
二.判断题
21.对非法地址空间进行读写操作时数据总线最好驱动为高阻,避免与其他设备冲突。
22.FPGA设计代码规模太大、太复杂了,进行时序仿真非常慢,单独拿出其中一个模块进行时序仿真吧。
23.可以使用由NCD和UCF文件进行时间参数提取出来的网表进行时序分析。
24.只要将异步信号进行两级同化后使用就可以完全避免亚稳态。
25.进行功能仿真时,可以通过代码覆盖率等指标,检查是否输入激励的各种情况都进行了仿真。
三.多项选择题
26.下列哪些信号需要列入敏感信号列表中( )。
异步复位/置位信号 同步复位/置位信号 时钟信号 组合逻辑赋值信号
27.下列哪些属于组合逻辑( )。
无记忆部件
由与或非门组成的网络
记忆部件
由触发器和与非门组成的网络
28.下列哪些属于跨时钟域的合理处理方式( )。
两级同步化 使用FIFO同步 使用握手信号 使用双端口RAM同步
29.下列哪些指标可以用来衡量仿真用例设计的充分性( )。
静态时序分析结果中的最高时钟频率
功能仿真的语句覆盖率
功能仿真的状态机状态覆盖率
布局布线报告给出的器件资源使用率
30.下列哪种方法不符合全同步设计原则( )。
只使用单一的时钟信号
使用组合逻辑作为异步复位信号
高速时钟分频后,作为后级触发器的使能信号
使用LACCH实现数据锁存
四.简答题
31.按照如下串口协议,写出向rx接口发送一个字节数据的代码。其中通信格式为1bit起始位、8bit数据位、1bit偶校验位和1bit停止位,通信波特率为230400bps.
32.根据以下串口协议写出接收rx接口发送的数据,并将其进行串并转换。
33.根据以下电路结构写出真值表,并用VHDL或Verilog进行仿真激励编写,并画出波形图。