精心准备了两道FPGA开胃小菜,请享用~~

403 阅读7分钟

清明时节雨纷纷,路上行人欲断魂

3月底,笔者陆陆续续开始投递了一些公司,得到了一些一手FPGA面试资料,本着相互学习,共同进步的态度,将其中精华部分摘取出来,以便同行“享用” 。~~~

(注:笔者并不提供答案———得不到的才是最好的,请为其保留一份神秘感 ** :)** )

第一道菜(入口即化)

  1. 什么是FPGA?请简述FPGA的应用方向(FPGA可以做啥?)

图片.png

** 此题答对不得分,答错直接扣41分**

  1. FPGA的主要厂商有哪些?各主要厂商FPGA产品主要有哪些?

  2. FPGA内部主要结构是什么?

  3. FPGA的主流开发工具有哪些?使用过哪些工具?

  4. 请简述FPGA的一般开发流程(Verilog语言的RTL级开发)? 6. 什么是建立时间?什么是保持时间?若不满足,会导致什么?

  5. 什么是竞争与冒险现象?怎么判断?如何消除? 8. 同步电路与异步电路的异同?

  6. 对于异步信号如何进行同步? 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.下列哪个时间表示的是寄存器的建立时间( )。

图片.png

15.在VHDL中下列哪种方式可能会产生锁存器( )。

if(clk'event and clk='1') then语句没有对应的else分支
描述组合逻辑时,if语句没有else分支
定义寄存器时没有设置初始值
例化模块时,输出端口连接不完全

16.VHDL语言中,进程中的变量(variable)赋值语句,其变量更新是( )。

立即完成      按顺序完成     在进程的最后完成     都不对

17.下列哪个时间表示的是removal时间( )。

图片.png

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.

图片.png

32.根据以下串口协议写出接收rx接口发送的数据,并将其进行串并转换。

图片.png

33.根据以下电路结构写出真值表,并用VHDL或Verilog进行仿真激励编写,并画出波形图。

图片.png