《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 可編程邏輯 > 業(yè)界動(dòng)態(tài) > FPGA面試寶典

FPGA面試寶典

2015-05-29

  這段時(shí)間去面試了幾家公司,,發(fā)現(xiàn)比較大的公司相對(duì)于重視基礎(chǔ)問題。這里邊又有幾個(gè)問題特別的突出,。他們是:同步時(shí)鐘設(shè)計(jì),、亞穩(wěn)態(tài),、異步FIFO??梢哉f,,這些個(gè)問題要是弄清楚了,就至少滿足了技術(shù)方面1/3的要求,,另外的2/3是什么,,我就說不清楚了。又有人發(fā)了競(jìng)爭(zhēng)冒險(xiǎn)毛刺的問題,,不過,,對(duì)于采用同步設(shè)計(jì)方法的系統(tǒng),,這些問題一般不會(huì)遇到。下面就談?wù)勎覍?duì)這些問題的看法,,要是你覺得看這些東西覺得類似一堆狗屎,,那么恭喜你,你面試成功的機(jī)會(huì)增加了1/3,;要是你你覺得阿,,什么樣的牛人拉了一堆牛屎,那么不好意思,,還是再去補(bǔ)補(bǔ)課把,。這里推薦一本《數(shù)字設(shè)計(jì)——原理和實(shí)踐》(John F.Wakerly)的書,仔細(xì)看一遍吧,。
  同步時(shí)鐘設(shè)計(jì) 簡(jiǎn)單說就是一個(gè)系統(tǒng)中(或系統(tǒng)中的一部分)都采用同一個(gè)時(shí)鐘觸發(fā)。系統(tǒng)中的(D)觸發(fā)器全部都連接到一個(gè)時(shí)鐘,,而且只控制觸發(fā)器的同步端(輸入,,同步置位,同步復(fù)位),。這樣的系統(tǒng)是相對(duì)于異步系統(tǒng)而言的,,異步系統(tǒng)并不是不同的觸發(fā)器時(shí)鐘端連接到不同的時(shí)鐘信號(hào)的系統(tǒng)(一般的這樣叫做跨時(shí)鐘系統(tǒng),是相對(duì)幾個(gè)較小的同步系統(tǒng)的組合),,而是更本沒有了時(shí)鐘的概念,,依靠和觸發(fā)器構(gòu)造一樣的反饋電路組成。相對(duì)于異步系統(tǒng),,同步系統(tǒng)更好設(shè)計(jì)(異步設(shè)計(jì)則象一個(gè)魔術(shù),類似于匯編和高級(jí)語言的關(guān)系),,更容易進(jìn)行時(shí)序分析(為什么要用D觸發(fā)器而不用D鎖存器)——在這里組合邏輯的競(jìng)爭(zhēng)冒險(xiǎn)毛刺問題都不存在了。應(yīng)該說,,同步系統(tǒng)最大的問題在于時(shí)鐘的偏斜(skew),。同步時(shí)鐘系統(tǒng)也存在一些涉及的技巧,這些技巧一般圍繞著降低關(guān)鍵路徑的延時(shí)和時(shí)間和空間的平衡,。這些都是平衡的藝術(shù)(了解了基本的部件之后,,剩下的工作就是一個(gè)字"平衡"),這里邊的方法就太具體,而且本人也知道得不多,,不敢亂說了,。不過,只要你用過一種方法,,就可以體會(huì)到其中的精神了,。
  亞穩(wěn)態(tài) 這是跨時(shí)鐘設(shè)計(jì)中最基礎(chǔ)的一個(gè)問題(宏觀的問題是FIFO),按照我的觀察,,上論壇問問題多的一般不明白這個(gè),,請(qǐng)一定要注意了,。 什么是亞穩(wěn)態(tài)?數(shù)字電路中的簡(jiǎn)單雙穩(wěn)態(tài)電路就是兩個(gè)反相器首尾相連組成(加一些控制邏輯變成了鎖存器,,觸發(fā)器),,然而并不像名字顯示的,這種電路其實(shí)還有第三種半穩(wěn)定態(tài)——就是當(dāng)兩個(gè)反相器都處于中間值得情況——這稱之為亞穩(wěn)態(tài),。我們知道反相器在非邏輯值范圍的反饋系數(shù)是相當(dāng)大的,,一旦因?yàn)楦蓴_或者噪音離開了這個(gè)中心點(diǎn),就會(huì)很快地進(jìn)入邏輯值范圍(穩(wěn)態(tài)),。數(shù)學(xué)分析,,從亞穩(wěn)態(tài)進(jìn)入穩(wěn)態(tài),正如放射元素的衰變,,是一個(gè)指數(shù)的規(guī)律(為什么是指數(shù)的規(guī)律,?你要是想不明白,說明你還沒有搞明白亞穩(wěn)態(tài)),。那么,,亞穩(wěn)態(tài)的危害到底是什么呢?消耗功率,;),,其實(shí)不是(雖然亞穩(wěn)態(tài)消耗很大的功率),亞穩(wěn)態(tài)的問題在于其電平并不處于有效邏輯電平范圍內(nèi),,而且在變化,。這就導(dǎo)致與其相連其他數(shù)字部件將其作出不同的判斷(注意,不同),,有的作為'1',有的作為'0',,有的也進(jìn)入了亞穩(wěn)態(tài),數(shù)字部件就會(huì)邏輯混亂,。那么究竟如何避免(或者減小)亞穩(wěn)態(tài)的危險(xiǎn)呢,?注意到亞穩(wěn)態(tài)的觸發(fā)器繼續(xù)停留在亞穩(wěn)態(tài)的幾率按照指數(shù)減少,那么辦法就是等——等足夠長(zhǎng)的時(shí)間,,直到這個(gè)幾率變得小的實(shí)際上不會(huì)發(fā)生,。到底需要有多長(zhǎng)呢?有的廠商有一個(gè)數(shù)據(jù),,有的沒有,,按照普通的做法,至少等一個(gè)時(shí)鐘周期——這也就是所謂的異步數(shù)據(jù)要用兩個(gè)觸發(fā)器打一下,。這一段有點(diǎn)糊涂,,不容易說明白,你看了要是覺得云里霧里,不知所云,,那們你只有找一本書學(xué)習(xí)了,;要是覺得作者表達(dá)不清,那么恭喜你,,面試通過了的幾率增加了,。關(guān)于這個(gè)問題有很多糊涂的認(rèn)識(shí),要是你的主考官和你爭(zhēng)論,,你就順著他的意思,,畢竟沒有人想找一個(gè)管教不了的手下。
  異步FIFO 異步FIFO是跨時(shí)鐘域設(shè)計(jì)方法的集中體現(xiàn),,體現(xiàn)了很多的方法,。不過,其中最重要的有兩點(diǎn),,一個(gè)就是亞穩(wěn)態(tài),,一個(gè)就是和亞穩(wěn)態(tài)類似但不相同的——多個(gè)控制/狀態(tài)信號(hào)的跨時(shí)鐘傳遞。具體地說,,就是當(dāng)你把一組信號(hào)傳遞到另外一個(gè)時(shí)鐘域的話,,這一組信號(hào)可能因?yàn)檠舆t不同,這樣到達(dá)新時(shí)鐘域之后,,得到的數(shù)據(jù)相差一個(gè)老時(shí)鐘域的時(shí)鐘周期。興好,,對(duì)于FIFO,,需要傳遞的是一個(gè)計(jì)數(shù)器,這個(gè)計(jì)數(shù)器可以編碼成格雷碼(gray code),,這樣的編碼每次只變化一個(gè)位,,正好解決了上面的問題(要是沒有畫過圖,最好畫一個(gè)圖看一下),。真不清楚這是怎么發(fā)明的,!注意,這里其實(shí)還對(duì)格雷碼的相對(duì)延遲和相關(guān)的時(shí)鐘周期有一個(gè)要求,。這就是異步FIFO中最關(guān)鍵的一點(diǎn),,至于指針如何控制,稍微考慮一下都很容易清楚,。需要注意的事,,這些東西不是用嘴能說清楚的,最好畫一個(gè)示意圖,,不要因?yàn)闆]有說清楚,,讓主考官覺得你沒有清楚。
  當(dāng)然,除此之外還有很多很多的東西,。比如組合邏輯的設(shè)計(jì)技巧,,俺就沒有研究。比如高速布線信號(hào)完整性問題,,俺也不敢多說,。至于整個(gè)系統(tǒng)的設(shè)計(jì)思想,更不敢妄語,。不過如果只要你有一個(gè)問題了解到了相當(dāng)?shù)纳疃?,相信你很容易搞清楚其他問題。

本站內(nèi)容除特別聲明的原創(chuàng)文章之外,,轉(zhuǎn)載內(nèi)容只為傳遞更多信息,,并不代表本網(wǎng)站贊同其觀點(diǎn)。轉(zhuǎn)載的所有的文章,、圖片,、音/視頻文件等資料的版權(quán)歸版權(quán)所有權(quán)人所有。本站采用的非本站原創(chuàng)文章及圖片等內(nèi)容無法一一聯(lián)系確認(rèn)版權(quán)者,。如涉及作品內(nèi)容,、版權(quán)和其它問題,請(qǐng)及時(shí)通過電子郵件或電話通知我們,,以便迅速采取適當(dāng)措施,,避免給雙方造成不必要的經(jīng)濟(jì)損失。聯(lián)系電話:010-82306118,;郵箱:[email protected],。