FPGA工程师面试——基础知识

本文转载自:缘来是你远去是我的CSDN博客

1. 简述FPGA等可编程逻辑器件设计流程

答:系统设计电路构思,设计说明与设计划分,
电路设计与输入(HDL代码、原理图),
功能仿真与测试,
逻辑综合,
门级综合,
逻辑验证与测试(综合后仿真),
布局布线,
时序仿真,
板级验证与仿真,
加载配置,
在线调试。

2. FPGA选型时要考虑哪些方面?

答:需要的逻辑资源、应用的速度要求,功耗,可靠性,价格,开发环境和开发人员的熟悉程度。

1) FPGA平台选择:根据应用的需求和算法复杂度等因素,选择合适的FPGA芯片。不同的FPGA芯片具有不同的资源和性能特征,因此需要根据应用要求进行权衡。

2) 开发工具选择:选择可编程逻辑开发工具,如Xilinx Vivado或Intel Quartus Prime等,以实现设计、调试和验证。

3) 接口标准支持:根据应用需要,选择与外部组件通信所需的接口标准,例如PCI Express、Ethernet、USB等。

4) 系统架构设计:根据应用的需求和算法复杂度,设计FPGA系统架构,并选择合适的IP核和算法实现方法。

5) 性能评估与测试:通过性能评估和测试,验证FPGA原型的正确性和性能是否符合预期,并针对性地进行优化。评估和测试的方式包括仿真、实验室测试和现场测试等。

6) 电源管理和散热设计:由于FPGA芯片功耗较高,在系统设计中需要考虑电源管理和散热设计等问题,以确保FPGA原型稳定运行。

7) 成本和时间预算:在选择FPGA平台和开发工具以及进行系统设计时,需要考虑成本和时间预算等问题。这些问题涉及到硬件和软件开发的成本、成品率、生产周期和市场前景等因素。

3. FPGA中底层资源有哪些?

答:FPGA的底层资源主要有CLB基本逻辑单元、Block RAM、Distributed RAM(分布式)、Dedicated Multipliers(专用乘法器)、DCM(数字时钟管理单元)、I/O端口。

4. FPGA的外围电路由哪些?

答:基础类外围接口:LED、拨码开关、按键;
显示类外围接口:字符LCD、VGA接口;
通信类外围接口:UART、USB2.0;
电源、时钟和复位电路:

5. 你知道那些常用逻辑电平?TTL与CMOS电平可以互联吗?其中高速的逻辑电平有哪些?

答:常用的逻辑电平标准有TTL、CMOS、LVTTL、ECL、PECL、GTL;RS232、RS422、LVDS。
TTL和CMOS不可以直接互连,由于TTL是在0.3-3.6V之间,而CMOS则是有在12V的有在5V的,CMOS输出接到TTL是可以直接互连。
高速逻辑电平:LVDS、GTL、PGTL、CML、HSTL、SSTL等。
TTL:0.3~3.6V LVTTL: CMOS:5V或者12V

6. 简要描述SRAM、Flash Memory、DRAM的区别;以及nor flash和nand flash的区别。

答:
1) RAM又分为SRAM和DRAM:
SRAM(静态随机存储器)存取速度快,价格昂贵,一般用在CPU一二级缓冲,掉电资料消失,持续供电时资料一直存在,不需要动态刷新。
DRAM(动态随机存储器)存取速度比SRAM慢,但快于ROM,价格稍微便宜,掉电资料丢失,供电时需要刷新电路(因为栅极会漏电)
SDRAM(同步动态随机存储器)比DRAM多一个同步时钟。
FLASH(闪存)结合了ROM和RAM的优点,电子可擦除,断电不丢失数据,读取速度快,如U盘、MP3等

2) FLASH主要分NAND FLASH和NOR FLASH。(NOR和NAND是两种非易失闪存):

  • NOR的读速度比NAND稍快一些。
  • NAND的写入速度比NOR快很多。
  • NAND的4ms擦除速度远比NOR的5s快。
  • norflash数据线和地址线分开,能够实现ram一样的随机寻址功能。能够读取不论什么一个字节。可是擦除仍要按块来擦。
  • nandflash相同是按块擦除,可是数据线和地址线复用,不能利用地址线随机寻址。读取仅仅能按页来读取。
  • 7. 什么是同步逻辑和异步逻辑?

    答:整个设计中只有一个全局时钟成为同步逻辑;多时钟系统逻辑设计成为异步逻辑。

    8. 什么是竞争和冒险,并举例说明竞争和冒险怎样消除?

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

    9. 多时域设计中,如何处理信号跨时域?

    答:建立和保持时间如果数据发生变化,就可能发生亚稳态现象。一般来说,在单一时钟域的设计中只要系统电路的fmax能够保证,就可以避免亚稳态的发生;但是在跨时钟域的时钟的相位是异步的,亚稳态将无法避免。

    此时,在跨时钟设计时的解决亚稳态的思想是:虽然亚稳态无法避免,但可以对不同的时钟域之间信号进行同步处理,防止新时钟域中第一级触发器的亚稳态信号对下级逻辑造成影响。使得在发生亚稳态后系统仍然可以稳定地工作。

    单根信号下,对第2个时钟用D触发器打2拍就可以将亚稳态的影响减少到可以忽略的地步。

    多根信号下:握手,速度太慢;异步FIFO;多相位/高频时钟多次采样数据。

    10. IC设计中同步复位与异步复位的区别?

    答:同步复位在时钟沿采复位信号,完成复位动作。

    异步复位不管时钟,只要复位信号满足条件,就完成复位动作。

    异步复位对复位信号要求比较高,不能有毛刺,如果其与时钟关系不确定,也可能出现亚稳态。

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

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

    12. 同步电路和异步电路的区别?

    答:电路设计可分类为同步电路和异步电路设计。同步电路利用时钟脉冲使其子系统同步运作,而异步电路不使用时钟脉冲做同步,其子系统是使用特殊的“开始”和“完成”信号使之同步。由于异步电路具有下列优点–无时钟歪斜问题、低电源消耗、平均效能而非最差效能、模块性、可组合和可复用性–因此近年来对异步电路研究增加快速。

    异步电路主要是组合逻辑电路,用于产生地址译码器、FIFO或RAM的读写控制信号脉冲,其逻辑输出与任何时钟信号都没有关系,译码输出产生的毛刺通常是可以监控的。同步电路是由时序电路(寄存器和各种触发器)和组合逻辑电路构成的电路,其所有操作都是在严格的时钟控制下完成的。这些时序电路共享同一个时钟CLK,而所有的状态变化都是在时钟的上升沿(或下降沿)完成的。

    同步时序逻辑电路的特点:各触发器的时钟端全部连接在一起,并接在系统时钟端,只有当时钟脉冲到来时,电路的状态才能改变。改变后的状态将一直保持到下一个时钟脉冲的到来,此时无论外部输入有无变化,状态表中的每个状态都是稳定的。

    异步时序逻辑电路的特点:电路中除可以使用带时钟的触发器外,还可以使用不带时钟的触发器和延迟元件作为存储元件,电路中没有统一的时钟,电路状态的改变由外部输入的变化直接引起。

    13. 对于多位的异步信号如何进行同步?

    答:对以一位的异步信号可以使用一位同步器进行同步,而对于多位的异步信号,可以采用如下方法:
    (1) 可以采用保持寄存器加握手信号的方法(多数据,控制,地址);
    (2) 特殊的具体应用电路结构,根据应用的不同而不同;
    (3) 异步FIFO。(最常用的缓存单元是DPRAM)

    14. PLL和DLL有什么区别?

    答 :DLL是基于数字抽样方式,在输入时钟和反馈时钟之间插入延迟,使输入时钟和反馈时钟的上升沿一致来实现的。又称数字锁相环。
    PLL使用了电压控制延迟,用VCO来实现和DLL中类试的延迟功能。又称模拟锁相环。功能上都可以实现倍频、分频、占空比调整,但是PLL调节范围更大。

    15. Latch和Register区别?

    答:本质的区别在于:latch是电平触发,register是边沿触发。

    register在同一时钟边沿触发下动作,符合同步电路的设计思想,而latch则属于异步电路设计,往往会导致时序分析困难,不适当的应用latch则会大量浪费芯片资源。时序设计中尽量使用register触发。

    16. 锁存器Latch和触发器(flip-flop)区别?行为描述中Latch如何产生?

    答:本质的区别在于:latch是电平触发,flip-flop是边沿触发。

    1) latch由电平触发,非同步控制。在使能信号有效时latch相当于通路,在使能信号无效时latch保持输出状态。DFF由时钟沿触发,同步控制。
    2) latch容易产生毛刺(glitch),DFF则不易产生毛刺。
    3) 如果使用门电路来搭建latch和DFF,则latch消耗的门资源比DFF要少,这是latch比DFF优越的地方。
    4) latch将静态时序分析变得极为复杂。一般的设计规则是:在绝大多数设计中避免产生latch。
    行为描述中,如果对应所有可能输入条件,有的输入没有对应明确的输出,系统会综合出latch。
    比如:always@(a or b) //缺少else语句
    begin
    if(a==1)
    a <= b;
    end

    17. MOORE与MEELEY状态机的特征?

    答:Moore状态机的输出仅与当前状态值有关,且只在时钟边沿到来时才会有状态变化。Mealy状态机的输出不仅与当前状态值有关,而且与当前输入值有关。

    18. 状态机的编码方式有哪几种?

    答:二进制,格雷码和独热码

    19. 什么是三态门,简要描述两个三态门对接的示意图。

    答:三态门,是指逻辑门的输出除有高、低电平两种状态外,还有第三种状态——高阻状态的门电路。高阻态相当于隔断状态(电阻很大,相当于开路)。三态门都有一个EN控制使能端,来控制门电路的通断。可以具备这三种状态的器件就叫做三态门。

    两个三态门的输出(特定条件下可以)直接连接在一起,特定条件就是当两个三态门有一个处于高阻抗输出状态时。

    最新文章

    最新文章