FPGA: 15道FPGA经典面试题(附答案)

1. 什么是Setup和Holdup时间?

答:setup 建立时间,holdup 保持时间。建立时间是指:时钟边缘前,数据信号保持不变的时间,保持时间是指时钟跳变边缘数据信号保持不变的时间。不满足建立时间和保持时间,DFF将得不到正确的采样数据,DFF D触发器将会出现mentablity 亚稳态的情况,亚稳态是不确定的状态。

如果数据信号在时钟沿触发前后持续的时间均超过建立和保持时间,那么超过量就分别被称为建立时间裕量和保持时间裕量。
2. 什么是竞争与冒险现象?怎样判断?如何消除?
答:在组合逻辑中,由于门的输入信号通路中经过了不同的延时,导致到达该门的时间不一致叫竞争。产生毛刺叫冒险。如果布尔式中有相反的信号,则可能产生竞争和冒险现象。解决方法:一是添加布尔式的消去项,二是在芯片外部加电容。
3. 用D触发器实现2倍分频的逻辑电路?

4. 什么是”线与”逻辑,要实现它,在硬件特性上有什么具体要求?

答:线与逻辑是两个输出信号相连可以实现“线与”的功能。在硬件上,要用oc门来实现,由于不用oc门可能使灌电流过大,而烧坏逻辑门。同时在输出端口应加一个上拉电阻。

5. 什么是同步逻辑和异步逻辑?

答:同步逻辑是时钟之间有固定的因果关系。异步逻辑是各时钟之间没有固定的因果关系。

6. 请画出微机接口电路中,典型的输入设备与微机接口逻辑示意图(数据接口、控制接口、锁存器/缓冲器)。

7. 你知道哪些常用逻辑电平?TTL与CMOS电平可以直接互连吗?

答:TTL和CMOS不可以直接互连,由于TTL是在0.3-3.6V之间,而CMOS则是有在12V的,有在5V的。CMOS输出接到TTL是可以直接互连。TTL接到CMOS需要在输出端口加一上拉电阻接到5V或者12V。

8. 尝试用VHDL或VERILOG、ABLE描述8位D触发器逻辑。

9. 如何解决亚稳态

答:亚稳态是指触发器无法在某个规定时间段内达到一个可确认的状态。当一个触发器进入亚稳态时,既无法预测该单元的输出电平,也无法预测何时输出才能稳定在某个正确的电平上。在这个稳定期间,触发器输出一些中间级电平,或者可能处于振荡状态,并且这种无用的输出电平可以沿信号通道上的各个触发器级联式传播下去。

10. 名词IRQ,BIOS,USB,VHDL,SDR

IRQ:   Interrupt ReQuest

BIOS:  Basic Input Output System 

USB:  Universal Serial Bus 

VHDL: VHIC Hardware Description Language 

SDR:  Single Data Rate

11. 写异步D触发器的verilog module

12. What is PC Chipset?

答:芯片组(Chipset)是主板的核心组成部分,按照在主板上的排列位置的不同,通常分为北桥芯片和南桥芯片。北桥芯片提供对CPU的类型和主频、内存的类型和最大容量、ISA/PCI/AGP插槽、ECC纠错等支持。南桥芯片则提供对KBC(键盘控制器)、RTC(实时时钟控制器)、USB(通用串行总线)、Ultra DMA/33(66)EIDE数据传输方式和ACPI(高级能源管理)等的支持。其中北桥芯片起着主导性的作用,也称为主桥(Host Bridge)。

除了最通用的南北桥结构外,目前芯片组正向更高级的加速集线架构发展,Intel的8xx系列芯片组就是这类芯片组的代表,它将一些子系统如IDE接口、音效、MODEM和USB直接接入主芯片,能够提供比PCI总线宽一倍的带宽,达到了266MB/s。24用传输门和反向器搭一个边沿触发器。

13. FPGA与CPLD内部结构区别?

答:CPLD以altraMAX7000这种PLD为例,可分为三块结构:宏单元(Marocell),可编程连线(PIA)和I/O控制块。宏单元是PLD的基本结构,由它来实现基本的逻辑功能。可编程连线负责信号传递,连接所有的宏单元。I/O控制块负责输入输出的电气特性控制,比如可以设定集电极开路输出,摆率控制,三态输出等。 

这种基于乘积项(实际就是与或阵列)的PLD基本都是由EEPROM和Flash工艺制造的,一上电就可以工作,无需其他芯片配合。布线方式是全局的,所以延时可预测。CPLD适合做逻辑设计。


FPGA基于LUT,LUT本质上就是一个RAM,每一个LUT可以看成一个有4位地址线的16×1的RAM。这也是为什么FPGA需要外接一个rom来上电配置。以xilinx的Spartan-II为例,主要包括CLBs,I/O块,RAM块和可编程连线。在spartan-II中,一个CLB包括2个Slices,每个slices包括两个LUT,两个触发器和相关逻辑。Slices可以看成是SpartanII实现逻辑的最基本结构。   FPGA的制造工艺确定了FPGA芯片中包含的LUT和触发器的数量非常多,往往都是几千上万,PLD一般只能做到512个逻辑单元,而且如果用芯片价格除以逻辑单元数量,FPGA的平均逻辑单元成本大大低于PLD。所以如果设计中使用到大量触发器,例如设计一个复杂的时序逻辑,那么使用FPGA就是一个很好选择。2.Latch和Register区别?行为描述中Latch如何产生?   本质的区别在于:latch是电平触发,reg是边沿触发。时序设计中尽量使用reg触发。行为描述中,如果对应所有可能输入条件,有的输入没有对应明确的输出,系统会综合出latch。

比如:always@( a or b)  //缺少else语句

      begin

          if(a==1)

            q <= b;

        end

14.对竞争冒险的理解,以及如何消除?

答:在组合逻辑中,由于门的输入信号通路中经过了不同的延时,导致到达该门的时间不一致叫竞争。产生毛刺叫冒险。如果布尔式中有相反的信号则可能产生竞争和冒险现象。解决方法:一是添加布尔式的消去项,二是在芯片外部加电容。

15.用Verilog设计一个5分频器。

答:5分频,奇数分频都可以类似这么做,只需要改div1和div2的参数。div1为奇数分频除2的余数。采用上升延和下降延分别触发不同波形,最后叠加的方式产生奇数分频。