yuedx的个人空间 https://blog.eetop.cn/317611 [收藏] [复制] [分享] [RSS]

空间首页 动态 记录 日志 相册 主题 分享 留言板 个人资料

日志

FPGA工程师面试试题02

已有 1008 次阅读| 2009-2-28 20:11

FPGA面试宝典

这段时间去面试了几家公司,发现比较大的公司相对于重视基础问题。这里边又有几个问题特别的突出。他们是:同步时钟设计、亚稳态、异步FIFO。可以说,这些个问题要是弄清楚了,就至少满足了技术方面1/3的要求,另外的2/3是什么,我就说不清楚了。又有人发了竞争冒险毛刺的问题,不过,对于采用同步设计方法的系统,这些问题一般不会遇到。下面就谈谈我对这些问题的看法,要是你觉得看这些东西觉得类似一堆狗屎,那么恭喜你,你面试成功的机会增加了1/3;要是你你觉得阿,什么样的牛人拉了一堆牛屎,那么不好意思,还是再去补补课把。这里推荐一本《数字设计——原理和实践》(John F.Wakerly)的书,仔细看一遍吧。

同步时钟设计 简单说就是一个系统中(或系统中的一部分)都采用同一个时钟触发。系统中的(D)触发器全部都连接到一个时钟,而且只控制触发器的同步端(输入,同步置位,同步复位)。这样的系统是相对于异步系统而言的,异步系统并不是不同的触发器时钟端连接到不同的时钟信号的系统(一般的这样叫做跨时钟系统,是相对几个较小的同步系统的组合),而是更本没有了时钟的概念,依靠和触发器构造一样的反馈电路组成。相对于异步系统,同步系统更好设计(异步设计则象一个魔术,类似于汇编和高级语言的关系),更容易进行时序分析(为什么要用D触发器而不用D锁存器)——在这里组合逻辑的竞争冒险毛刺问题都不存在了。应该说,同步系统最大的问题在于时钟的偏斜(skew)。同步时钟系统也存在一些涉及的技巧,这些技巧一般围绕着降低关键路径的延时和时间和空间的平衡。这些都是平衡的艺术(了解了基本的部件之后,剩下的工作就是一个字"平衡"),这里边的方法就太具体,而且本人也知道得不多,不敢乱说了。不过,只要你用过一种方法,就可以体会到其中的精神了。

亚稳态 这是跨时钟设计中最基础的一个问题(宏观的问题是FIFO),按照我的观察,上论坛问问题多的一般不明白这个,请一定要注意了。 什么是亚稳态?数字电路中的简单双稳态电路就是两个反相器首尾相连组成(加一些控制逻辑变成了锁存器,触发器),然而并不像名字显示的,这种电路其实还有第三种半稳定态——就是当两个反相器都处于中间值得情况——这称之为亚稳态。我们知道反相器在非逻辑值范围的反馈系数是相当大的,一旦因为干扰或者噪音离开了这个中心点,就会很快地进入逻辑值范围(稳态)。数学分析,从亚稳态进入稳态,正如放射元素的衰变,是一个指数的规律(为什么是指数的规律?你要是想不明白,说明你还没有搞明白亚稳态)。那么,亚稳态的危害到底是什么呢?消耗功率;),其实不是(虽然亚稳态消耗很大的功率),亚稳态的问题在于其电平并不处于有效逻辑电平范围内,而且在变化。这就导致与其相连其他数字部件将其作出不同的判断(注意,不同),有的作为'1',有的作为'0',有的也进入了亚稳态,数字部件就会逻辑混乱。那么究竟如何避免(或者减小)亚稳态的危险呢?注意到亚稳态的触发器继续停留在亚稳态的几率按照指数减少,那么办法就是等——等足够长的时间,直到这个几率变得小的实际上不会发生。到底需要有多长呢?有的厂商有一个数据,有的没有,按照普通的做法,至少等一个时钟周期——这也就是所谓的异步数据要用两个触发器打一下。这一段有点糊涂,不容易说明白,你看了要是觉得云里雾里,不知所云,那们你只有找一本书学习了;要是觉得作者表达不清,那么恭喜你,面试通过了的几率增加了。关于这个问题有很多糊涂的认识,要是你的主考官和你争论,你就顺着他的意思,毕竟没有人想找一个管教不了的手下。

异步FIFO 异步FIFO是跨时钟域设计方法的集中体现,体现了很多的方法。不过,其中最重要的有两点,一个就是亚稳态,一个就是和亚稳态类似但不相同的——多个控制/状态信号的跨时钟传递。具体地说,就是当你把一组信号传递到另外一个时钟域的话,这一组信号可能因为延迟不同,这样到达新时钟域之后,得到的数据相差一个老时钟域的时钟周期。兴好,对于FIFO,需要传递的是一个计数器,这个计数器可以编码成格雷码(gray code),这样的编码每次只变化一个位,正好解决了上面的问题(要是没有画过图,最好画一个图看一下)。真不清楚这是怎么发明的!注意,这里其实还对格雷码的相对延迟和相关的时钟周期有一个要求。这就是异步FIFO中最关键的一点,至于指针如何控制,稍微考虑一下都很容易清楚。需要注意的事,这些东西不是用嘴能说清楚的,最好画一个示意图,不要因为没有说清楚,让主考官觉得你没有清楚。

当然,除此之外还有很多很多的东西。比如组合逻辑的设计技巧,俺就没有研究。比如高速布线信号完整性问题,俺也不敢多说。至于整个系统的设计思想,更不敢妄语。不过如果只要你有一个问题了解到了相当的深度,相信你很容易搞清楚其他问题。


点赞

评论 (0 个评论)

facelist

您需要登录后才可以评论 登录 | 注册

  • 关注TA
  • 加好友
  • 联系TA
  • 0

    周排名
  • 0

    月排名
  • 0

    总排名
  • 0

    关注
  • 13

    粉丝
  • 1

    好友
  • 35

    获赞
  • 156

    评论
  • 4698

    访问数
关闭

站长推荐 上一条 /2 下一条

小黑屋| 关于我们| 联系我们| 在线咨询| 隐私声明| EETOP 创芯网
( 京ICP备:10050787号 京公网安备:11010502037710 )

GMT+8, 2024-4-20 11:17 , Processed in 0.014387 second(s), 6 queries , Gzip On, Redis On.

eetop公众号 创芯大讲堂 创芯人才网
返回顶部