【FPGA】面试问题及答案整理合集

这篇具有很好参考价值的文章主要介绍了【FPGA】面试问题及答案整理合集。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

1、硬件描述语言和软件编程语言的区别

  硬件描述语言是一种用形式化的方法来描述数字电路和系统的语言。数字电路的设计者利用这种语言可以从上层到下层逐层描述自己的设计思想,用一系列分层次的模块来表示及其复杂的数字系统。然后利用电子设计自动化(EDA)工具来进行仿真验证,再把其中需要变为具体物理电路的模块组合经由自动综合工具转换到门级电路网表,再用专用集成电路(ASIC)或者现场可编程门阵列(FPGA)自动布局布线工具把网表转换为具体电路布线结构的实现,通俗点说,自己来设计内部电路。而软件编程语言是没法改变电路结构的,因为芯片内部已经固化,所以软件编程操作意味着是对内部寄存器的操作。

2、FPGA选型问题

  关于FPGA如何选芯片,其实就是根据项目实际情况,对选型芯片做一个综合评估,选择出最具“性价比”的芯片,一般情况下,芯片厂商都会按照产品系列列出所有的产品,直观的告诉你某个系列产品的应用场合。如何选择芯片厂商,要看项目的特殊需求、芯片厂商的供货、报价、以及己方的技术人员对产品的熟悉程度和芯片的成熟度,比如说是不是有较好的软件开发平台呀,还有就是芯片的内部资源,引脚封装、速度等级等。

3、建立时间和保持时间问题

  建立时间Tsu: 指数据信号到达触发器输入端的时间要早于 时钟敏感边沿 到达触发器的时间,只有满足建立时间,信号才能正确的保存到触发器,否则数据就不能在此时钟信号变化时被记录,从而无法正确保存到触发器。简言之,时钟沿到来之前,数据保持稳定不变的时间。
  保持时间:指 时钟边沿 到达后 输入数据 需要保持稳定不变的时间,满足这个条件,才能保证数据能够保存到触发器,否则,数据就不能在下一个时钟信号变化时被记录下来,导致无法正确的保存到触发器。简言之,时钟沿到来之后,数据保持稳定不变的时间。
  综述:输入的数据必须在建立时间前达到,且要持续到保持时间后。

3、亚稳态问题

  亚稳态:输入信号在时钟有效沿的建立时间和保持时间之间变化,导致其不满足触发器建立保持时间的时序要求,使得输出有一段时间的不确定状态。
  亚稳态现象包括如下几种:
  1、跨时钟域中的亚稳态:由于源信号时钟与目的信号时钟的相移未知,可能导致保持时间和建立时间条件不满足,从而产生亚稳态现象。——采用FIFO对跨时钟域数据通信进行缓冲设计。
  2、异步信号中的亚稳态:由于异步信号不与触发器同步时钟同步,所以可能导致保持时间和建立时间条件不满足,产生亚稳态现象。—— 通过同步处理来解决。
  3、异步复位检测中的亚稳态:复位信号的变化出现在建立或者保持时间内,也无法保证满足Tsu和Th的要求,出现亚稳态。——对复位电路采用异步复位、同步释放方式处理。

4、竞争和冒险问题

  竞争(Competition): 在组合逻辑电路中,某个输入变量通过多条(两条及以上)途径传到输出端,由于每条途径延迟时间不同,到达输出门的时间就有先有后,这种现象称为竞争。竞争又分为临界和非临界竞争,不会产生错误输出的竞争为非临界竞争。产生暂时性或永久性错误的竞争为临界竞争。
  冒险(risk):信号在器件内部通过连线和逻辑单元时,都有一定延时。延时的时间与连线的长短和逻辑单元数目有关,同时还受器件的制造工艺、电压、温度等影响;
  多路信号在电平值变化时也都存在不同的延迟,对应的组合逻辑的输出也就有了先后顺序,因此就产生了冒险。冒险现象中会出现一些不正确的尖峰信号,称为"毛刺"。如果一个组合逻辑电路中有"毛刺"出现,就说明该电路存在冒险。也可以说由于竞争引起电路输出发生瞬间错误,该现象为冒险。
  竞争和冒险都是由于存在电路延迟引起的,同时冒险是由竞争造成的,而竞争是因为电路中的时延不同,但是有竞争的时候不一定会出现冒险。解决方法:1:加滤波电路,消除毛刺的影响;2:加选通信号,避开毛刺;3:增加冗
余项消除逻辑冒险。

5、乒乓操作问题

  乒乓操作是一个主要用于数据流控制的处理技巧,外部输入数据流通过“输入数据选择控制”模块送入两个数据缓冲区中,数据缓冲模块可以为任何存储模块,比较常用的存储单元为双口RAM(Dual RAM),SRAM,SDRAM,FIFO等。在第1个缓冲周期,将输入的数据流缓存到“数据缓冲1”模块,在第2个缓冲周期,“输入数据选择控制”模块将输入的数据流缓存到“数据缓冲2”模块的同时,“输出数据选择控制”模块将“数据缓冲1”模块第一个周期缓存的数据流送到“后续处理”,模块进行后续的数据处理,在第三个缓冲周期,在“输入数据选择控制”模块的再次切换后,输入的数据流缓存到“数据缓冲1”模块,与此同时,“输出数据选择控制”模块也做出切换,将“数据缓冲2”模块缓存的第二个周期的数据送到“后续处理模块”,如此循环。这里正是利用了乒乓操作完成数据的无缝缓冲与处理,乒乓操作可以通过“输入数据选择控制”和“输出数据选择控制”按节拍,相互配合地进行来回切换,将经过缓冲的数据流没有停顿的送到“后续处理模块”。

6、同步和异步逻辑电路

  同步逻辑:时钟之间有着固定的因果关系,且触发只和时钟有关,只要在时钟沿处才能触发。
  同步电路: 同步电路中所有触发器的时钟端连接在同一时钟源上,所有触发器状态的改变都与时钟信号同步。因此当时钟沿到来则输出变化,否则保持,直到下一时钟脉沿到来才发生变化。
  异步逻辑:时钟之间没有固定的因果关系,其触发和多种控制因素有关,当任何一个因素发生变化,那么都能实现触发。
  异步电路中没有统一的时钟。有些触发器的时钟输入端与时钟源相连,只有这些触发器的状态变化与时钟脉冲同步,而其他的触发器的状态变化不与时钟脉冲同步。
  总结:同步逻辑和异步逻辑不是完全割裂的,异步逻辑中肯定有同步逻辑的成分在,但同步逻辑中不可能有异步逻辑的成分。

7、同步复位和异步复位

  同步复位:复位信号与clk有效,当clk有效的时候,复位才有效。
  优点:有利于进行时序分析;由于只在clk有效的时候有效,因此能防止毛刺现象的出现。
  缺点:复位信号必须大于时钟周期,才能被系统真正识别;大部分逻辑器件中的D触发器都只有异步复位端口,因此采用同步复位的话,需要在寄存器的数据输入端插入组合逻辑,此时我们就需要考虑组合逻辑延迟等因素。
  异步复位:复位信号与clk无关,只和自身输入的复位信号有关。
  优点:大部分逻辑器件中的D触发器都只有异步复位端口,无需再插入组合逻辑,省资源;设计相对简单;
  缺点:复位信号可能不满足建立和保持时间要求,因此容易出现亚稳态;容易受毛刺影响;

8、MOORE 与 MEELEY 状态机的特点

  Moore 有限状态机输出只与当前状态有关,与输入信号的当前值无关。在时钟脉冲的 有效边沿作用后的有限个门延后,输出达到稳定值。从时序上看,Moore 状态机属于同步输出状态机。Moore 有限状态机最重要的特点就是将输入与输出信号隔离开来。
  Mealy 状态机的输出是现态和所有输入的函数,随输入变化而随时发生变化。从时序上看,Mealy 状态机属于异步输出状态机,它不依赖于时钟。

9、同步和异步FIFO

  同步FIFO:读写都是同一个时钟源;异步FIFO:读写不是同一个时钟源。

  最常见的就是异步FIFO的问题,因为异步FIFO会存在如下几种情形:
  1、写时钟快于读时钟,写和读的过程中没有空闲周期
  答:假设写时钟频率为80MHz,读时钟频率为50MHz,突发传输大小为120,写和读的过程中没有空闲周期,分析过程:写时钟周期Tw = 1000/80 ns = 12.5ns;同理读时钟周期为20ns;突发写长度为120个数据,写120个数据耗时120 * 12.5 = 1500ns;1500ns时间内读出数据1500/20ns = 75个;故最小FIFO深度为120 - 75 = 45。

  2、写时钟频率大于读时钟频率,但在读写的过程中存在空闲周期
  答:假设写时钟频率为80MHz,读时钟频率为50MHz,突发传输大小为120,写和读的过程中有空闲周期,每2个写时钟周期写1个数据,每4个时钟周期读一个数据,那么写一个数据需要25ns,读一个数据需要80ns,那么由于突发写数据个数为120个,写这么多数据需要时间120 * 25ns = 3000ns;4个读时钟周期读一个数据,因此读一个数据需要时间80ns,3000ns读了3000/80 = 37.5个数据(0.5不算一个数据,没读完整),约等于37个数据。
所以,FIFO的最小深度为120 - 37 = 83。

  3、写时钟慢于读时钟,且读写过程中没有空闲周期
  答:假设写时钟频率为30MHz,读时钟频率为50MHz,突发传输大小为120,写和读的过程中没有空闲周期,分析:这种情况下永远也不会发生数据丢失的情况;fifo的深度为1。

  4、写时钟频率小于读时钟频率,但读写过程中存在空闲周期
  答:假设写时钟频率为30MHz,读时钟频率为50MHz,突发传输大小为120,写和读的过程中有空闲周期,每2个写时钟周期写1个数据,每4个时钟周期读一个数据,分析:写时钟周期1000/30 ns = 100/3 ns;读时钟周期 20ns;写一个数据需要2个时钟,也就是200/3 ns;读一个数据需要4个时钟,也就是80 ns;写120个数据需要时间8000ns,这段时间内读出数据8000/80 = 100个;
因此,FIFO的最小深度为120 - 100 = 20;

  5、读写时钟速率相同,且无空闲时钟
  答:分析:如果读写时钟之间没有相位差,则不需要FIFO就可以进行读写;如果二者存在相位差,只需要FIFO的深度为1即可。

  6、读写时钟频率一致,但在读写过程中存在空闲周期
  答:读写时钟均为50MHz,突发传输大小为120,写和读的过程中有空闲周期,每2个写时钟周期写1个数据,每4个时钟周期读一个数据,分析:两个时钟写一个数据,需要时间40ns;4个时钟读一个数据,需要80ns;由于突发长度120,需要120*40 = 4800ns写完;这段时间读出数据个数:4800/80 = 60;所以,FIFO最小深度为120 - 60 = 60;

未完待续,尚在总结中。。。。。文章来源地址https://www.toymoban.com/news/detail-837466.html

到了这里,关于【FPGA】面试问题及答案整理合集的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Xilinx XC7Z020双核ARM+FPGA开发板试用合集——自定义硬件工程

    本期测试板卡是一款基于Xilinx Zynq-7000系列XC7Z010/XC7Z020高性能低功耗处理器设计的异构多核SoC工业级核心板,处理器集成PS端双核ARM Cortex-A9 + PL端Artix-7架构28nm可编程逻辑资源。 下面是测试内容,欢迎查阅。 SD卡启动设置 根据《TLZ7x-EasyEVM-S评估板硬件说明书》可知,评估板的

    2023年04月08日
    浏览(47)
  • FPGA/IC面试常见问题汇总

    参考:数字IC设计工程师笔试面试经典100题_OnePlusZero的博客-CSDN博客_数字ic设计面试题 目录 参考:数字IC设计工程师笔试面试经典100题_OnePlusZero的博客-CSDN博客_数字ic设计面试题 1、同步复位和异步复位的优缺点 2、什么是竞争和冒险,如何消除? 3、什么是同步电路,什么是异

    2024年02月11日
    浏览(47)
  • 白话微机:8.解释FPGA以及一些考研面试问题

            在“微机世界”, 普通的城市 ( 单片机 )里, 人 又有一个别的名字叫做“ 数据 ”,人有0有1;人们也有住房,这些 住房 在这个世界叫做“ 存储器 ”;地上有路,这些 路 叫做“ 数据总线 ”, 交通系统 则统称为 总线 ;这里也有 行政部门 ,比如公安局之类的,又

    2024年02月22日
    浏览(45)
  • 2023前端面试题合集(附答案)持续更新中...

    (1).什么是原型链 答:原型链就是每个对象拥有一个原型对象,对象以其原型为模板、从原型继承方法和属性。原型对象也可能拥有原型,并从中继承方法和属性,一层一层、以此类推。这种关系就被称为原型链。 简单理解:原型链就是在当前对象中找不到定义的话,会在当前

    2024年02月07日
    浏览(48)
  • Zookeeper面试题整理含答案

    zookeeper 是什么? zookeeper 是一个分布式的,开放源码的分布式应用程序协调服务,是 google chubby 的开源实现,是 hadoop 和 hbase 的重要组件。它是一个为分布式应用提供一致性服务的软件,提供的功能包括:配置维护、域名服务、分布式同步、组服务等。 zookeeper 都有哪些功能

    2024年02月13日
    浏览(35)
  • 常见前端面试题整理(带答案)

    (1)根据内容的语义化,选择合适的标签。便于开发人员阅读和写出更优雅的代码,也便于团队后期的开发和维护; (2)在没有CSS,或者CSS尚未加载的时候,页面也能够呈现出很好的内容结构、代码结构(如标题和正文分开); (3)有利于搜索引擎优化。搜索引擎依赖于

    2024年02月07日
    浏览(46)
  • FPGA试题一(答案及解析)

    1、下列对异步信号进行同步的描述错误的是( C)。 A、采用保持 寄存器加握手信号的方法寄存器 B 、特殊的具体应用电路结构,根据应用的不同而不同 C 、使用 锁存器 D 、异步 FIFO 解析: 异步信号进行同步的 方法: 1.具体电路,采用两级触发器,减少可能出现的亚稳态影

    2023年04月08日
    浏览(36)
  • FPGA设计中提高工作频率及降低功耗题目合集

    提高工作频率的本质就是减少寄存器到寄存器的时延,简言之,降低各种延时 电路延迟主要包括三个: 寄存器延迟Tco(时延是由器件物理特性决定)、走线延迟和组合逻辑延迟。 走线延迟: 1、加入时钟约束(一般以加5%裕量较为合适) 2、将相关的逻辑的布线时尽量靠近,

    2024年02月05日
    浏览(38)
  • 【面试】Java面试频繁问到的题最新整理(附答案)

    封装 :对象只需要 选择性的对外公开一些属性和行为 。 继承 :子对象 可以继承父对象的属性和行为 ,并且可以在其之上进行修改以适合更特殊的场景需求。 多态 : 允许不同类的对象对同一消息做出响应 。 数据类型 占用字节 byte 1 short 2 int 4 long 8 float 4 double 8 char 2 boo

    2024年02月07日
    浏览(46)
  • 今天面试了几家高级测试工程师,面试题整理(含答案)

    候选人总共有8年左右的工作经验,先后做过自动化、测试平台和性能测试,简历上写了熟悉java,偏测试开发方向,所以面试题偏java技术。 1、自我介绍 个人信息+学校专业(如果学校一般般就别说了)+技术栈+工作擅长点(性能、自动化、功能、测试工具和平台等等) 2、hashmap底层

    2024年02月07日
    浏览(42)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包