加入星計(jì)劃,您可以享受以下權(quán)益:

  • 創(chuàng)作內(nèi)容快速變現(xiàn)
  • 行業(yè)影響力擴(kuò)散
  • 作品版權(quán)保護(hù)
  • 300W+ 專業(yè)用戶
  • 1.5W+ 優(yōu)質(zhì)創(chuàng)作者
  • 5000+ 長期合作伙伴
立即加入
  • 正文
  • 相關(guān)推薦
  • 電子產(chǎn)業(yè)圖譜
申請(qǐng)入駐 產(chǎn)業(yè)圖譜

數(shù)字IC設(shè)計(jì)工程師筆試面試題(一)

2022/01/20
642
閱讀需 5 分鐘
加入交流群
掃碼加入
獲取工程師必備禮包
參與熱點(diǎn)資訊討論

1、什么是同步邏輯和異步邏輯?

同步邏輯是時(shí)鐘之間有固定的因果關(guān)系。異步邏輯是各時(shí)鐘之間沒有固定的因果關(guān)系。

同步時(shí)序邏輯電路的特點(diǎn):各觸發(fā)器的時(shí)鐘端全部連接在一起,并接在系統(tǒng)時(shí)鐘端,只有當(dāng)時(shí)鐘脈沖到來時(shí),電路的狀態(tài)才能改變。改變后的狀態(tài)將一直保持到下一個(gè)時(shí)鐘脈沖的到來,此時(shí)無論外部輸入x有無變化,狀態(tài)表中的每個(gè)狀態(tài)都是穩(wěn)定的。

異步時(shí)序邏輯電路的特點(diǎn):電路中除可以使用帶時(shí)鐘的觸發(fā)器外,還可以使用不帶時(shí)鐘的觸發(fā)器和延遲元件作為存儲(chǔ)元件,電路中沒有統(tǒng)一的時(shí)鐘,電路狀態(tài)的改變由外部輸入的變化直接引起。

2、同步電路和異步電路的區(qū)別

同步電路:存儲(chǔ)電路中所有觸發(fā)器的時(shí)鐘輸入端都接同一個(gè)時(shí)鐘脈沖源,因而所有觸發(fā)器的狀態(tài)的變化都與所加的時(shí)鐘脈沖信號(hào)同步。

異步電路:電路沒有統(tǒng)一的時(shí)鐘,有些觸發(fā)器的時(shí)鐘輸入端與時(shí)鐘脈沖源相連,只有這些觸發(fā)器的狀態(tài)變化與時(shí)鐘脈沖同步,而其他的觸發(fā)器的狀態(tài)變化不與時(shí)鐘脈沖同步。

3、時(shí)序設(shè)計(jì)的實(shí)質(zhì)

時(shí)序設(shè)計(jì)的實(shí)質(zhì)就是滿足每一個(gè)觸發(fā)器的建立/保持時(shí)間的要求。

4、建立時(shí)間與保持時(shí)間的概念?

建立時(shí)間:觸發(fā)器在時(shí)鐘上升沿到來之前,其數(shù)據(jù)輸入端的數(shù)據(jù)必須保持不變的最小時(shí)間。

保持時(shí)間:觸發(fā)器在時(shí)鐘上升沿到來之后,其數(shù)據(jù)輸入端的數(shù)據(jù)必須保持不變的最小時(shí)間。

5、為什么觸發(fā)器要滿足建立時(shí)間和保持時(shí)間?

因?yàn)橛|發(fā)器內(nèi)部數(shù)據(jù)的形成是需要一定的時(shí)間的,如果不滿足建立和保持時(shí)間,觸發(fā)器將進(jìn)入亞穩(wěn)態(tài),進(jìn)入亞穩(wěn)態(tài)后觸發(fā)器的輸出將不穩(wěn)定,在0和1之間變化,這時(shí)需要經(jīng)過一個(gè)恢復(fù)時(shí)間,其輸出才能穩(wěn)定,但穩(wěn)定后的值并不一定是你的輸入值。

這就是為什么要用兩級(jí)觸發(fā)器來同步異步輸入信號(hào)。這樣做可以防止由于異步輸入信號(hào)對(duì)于本級(jí)時(shí)鐘可能不滿足建立保持時(shí)間而使本級(jí)觸發(fā)器產(chǎn)生的亞穩(wěn)態(tài)傳播到后面邏輯中,導(dǎo)致亞穩(wěn)態(tài)的傳播。

(比較容易理解的方式)換個(gè)方式理解:需要建立時(shí)間是因?yàn)橛|發(fā)器的D端像一個(gè)鎖存器在接受數(shù)據(jù),為了穩(wěn)定的設(shè)置前級(jí)門的狀態(tài)需要一段穩(wěn)定時(shí)間;需要保持時(shí)間是因?yàn)樵跁r(shí)鐘沿到來之后,觸發(fā)器要通過反饋來鎖存狀態(tài),從后級(jí)門傳到前級(jí)門需要時(shí)間。

6、什么是亞穩(wěn)態(tài)?為什么兩級(jí)觸發(fā)器可以防止亞穩(wěn)態(tài)傳播?

這也是一個(gè)異步電路同步化的問題。亞穩(wěn)態(tài)是指觸發(fā)器無法在某個(gè)規(guī)定的時(shí)間段內(nèi)到達(dá)一個(gè)可以確認(rèn)的狀態(tài)。使用兩級(jí)觸發(fā)器來使異步電路同步化的電路其實(shí)叫做“一位同步器”,他只能用來對(duì)一位異步信號(hào)進(jìn)行同步。

兩級(jí)觸發(fā)器可防止亞穩(wěn)態(tài)傳播的原理:假設(shè)第一級(jí)觸發(fā)器的輸入不滿足其建立保持時(shí)間,它在第一個(gè)脈沖沿到來后輸出的數(shù)據(jù)就為亞穩(wěn)態(tài),那么在下一個(gè)脈沖沿到來之前,其輸出的亞穩(wěn)態(tài)數(shù)據(jù)在一段恢復(fù)時(shí) 間后必須穩(wěn)定下來,而且穩(wěn)定的數(shù)據(jù)必須滿足第二級(jí)觸發(fā)器的建立時(shí)間,如果都滿足了,在下一個(gè)脈沖沿到來時(shí),第二級(jí)觸發(fā)器將不會(huì)出現(xiàn)亞穩(wěn)態(tài),因?yàn)槠漭斎攵说?數(shù)據(jù)滿足其建立保持時(shí)間。同步器有效的條件:第一級(jí)觸發(fā)器進(jìn)入亞穩(wěn)態(tài)后的恢復(fù)時(shí)間 + 第二級(jí)觸發(fā)器的建立時(shí)間 < = 時(shí)鐘周期。

更確切地說,輸入脈沖寬度必須大于同步時(shí)鐘周期與第一級(jí)觸發(fā)器所需的保持時(shí)間之和。

最保險(xiǎn)的脈沖寬度是兩倍同步時(shí)鐘周期。所以,這樣的同步電路對(duì)于從較慢的時(shí)鐘域來的異步信號(hào)進(jìn)入較快的時(shí)鐘域比較有效,對(duì)于進(jìn)入一個(gè)較慢的時(shí)鐘域,則沒有作用。

7、系統(tǒng)最高速度計(jì)算(最快時(shí)鐘頻率)和流水線設(shè)計(jì)思想

同步電路的速度是指同步系統(tǒng)時(shí)鐘的速度,同步時(shí)鐘愈快,電路處理數(shù)據(jù)的時(shí)間間隔越短,電路在單位時(shí)間內(nèi)處理的數(shù)據(jù)量就愈大。假設(shè)Tco是觸發(fā)器的輸入數(shù)據(jù)被時(shí)鐘打入到觸發(fā)器到數(shù)據(jù)到達(dá)觸發(fā)器輸出端的延時(shí)時(shí)間(Tco=Tsetpup+Thold);Tdelay是組合邏輯的延時(shí);Tsetup是D觸發(fā)器的建立時(shí)間。

假設(shè)數(shù)據(jù)已被時(shí)鐘打入D觸發(fā)器,那么數(shù)據(jù)到達(dá)第一個(gè)觸發(fā)器的Q輸出端需要的延時(shí)時(shí)間是Tco,經(jīng)過組合邏輯的延時(shí)時(shí)間為Tdelay,然后到達(dá)第二個(gè)觸發(fā)器的D端,要希望時(shí)鐘能在第二個(gè)觸發(fā)器再次被穩(wěn)定地打入觸發(fā)器,則時(shí)鐘的延遲必須大于Tco+Tdelay+Tsetup,也就是說最小的時(shí)鐘周期Tmin =Tco+Tdelay+Tsetup,即最快的時(shí)鐘頻率Fmax =1/Tmin。

FPGA開發(fā)軟件也是通過這種方法來計(jì)算系統(tǒng)最高運(yùn)行速度Fmax。因?yàn)門co和Tsetup是由具體的器件工藝決定的,故設(shè)計(jì)電路時(shí)只能改變組合邏輯的延遲時(shí)間Tdelay,所以說縮短觸發(fā)器間組合邏輯的延時(shí)時(shí)間是提高同步電路速度的關(guān)鍵所在。由于一般同步電路都大于一級(jí)鎖存,而要使電路穩(wěn)定工作,時(shí)鐘周期必須滿足最大延時(shí)要求。故只有縮短最長延時(shí)路徑,才能提高電路的工作頻率??梢詫⑤^大的組合邏輯分解為較小的N塊,通過適當(dāng)?shù)姆椒ㄆ骄峙浣M合邏輯,然后在中間插入觸發(fā)器,并和原觸發(fā)器使用相同的時(shí)鐘,就可以避免在兩個(gè)觸發(fā)器之間出現(xiàn)過大的延時(shí),消除速度瓶頸,這樣可以提高電路的工作頻率。

這就是所謂"流水線"技術(shù)的基本設(shè)計(jì)思想,即原設(shè)計(jì)速度受限部分用一個(gè)時(shí)鐘周期實(shí)現(xiàn),采用流水線技術(shù)插入觸發(fā)器后,可用N個(gè)時(shí)鐘周期實(shí)現(xiàn),因此系統(tǒng)的工作速度可以加快,吞吐量加大。注意,流水線設(shè)計(jì)會(huì)在原數(shù)據(jù)通路上加入延時(shí),另外硬件面積也會(huì)稍有增加。

8、時(shí)序約束的概念和基本策略?

時(shí)序約束主要包括周期約束,偏移約束,靜態(tài)時(shí)序路徑約束三種。通過附加時(shí)序約束可以綜合布線工具調(diào)整映射和布局布線,使設(shè)計(jì)達(dá)到時(shí)序要求。

附加時(shí)序約束的一般策略是先附加全局約束,然后對(duì)快速和慢速例外路徑附加專門約束。附加全局約束時(shí),首先定義設(shè)計(jì)的所有時(shí)鐘,對(duì)各時(shí)鐘域內(nèi)的同步元件進(jìn)行分組,對(duì)分組附加周期約束,然后對(duì)FPGA/CPLD輸入輸出PAD附加偏移約束、對(duì)全組合邏輯的PAD TO PAD路徑附加約束。附加專門約束時(shí),首先約束分組之間的路徑,然后約束快、慢速例外路徑和多周期路徑,以及其他特殊路徑。

9、附加約束的作用?

1、提高設(shè)計(jì)的工作頻率(減少了邏輯和布線延時(shí));

2、獲得正確的時(shí)序分析報(bào)告;(靜態(tài)時(shí)序分析工具以約束作為判斷時(shí)序是否滿足設(shè)計(jì)要求的標(biāo)準(zhǔn),因此要求設(shè)計(jì)者正確輸入約束,以便靜態(tài)時(shí)序分析工具可以正確的輸出時(shí)序報(bào)告)

3、指定FPGA/CPLD的電氣標(biāo)準(zhǔn)和引腳位置。

10、FPGA設(shè)計(jì)工程師努力的方向

SOPC,高速串行I/O,低功耗,可靠性,可測(cè)試性和設(shè)計(jì)驗(yàn)證流程的優(yōu)化等方面。

隨著芯片工藝的提高,芯片容量、集成度都在增加,F(xiàn)PGA設(shè)計(jì)也朝著高速、高度集成、低功耗、高可靠性、高可測(cè)、可驗(yàn)證性發(fā)展。芯片可測(cè)、可驗(yàn)證,正在成為復(fù)雜設(shè)計(jì)所必備的條件,盡量在上板之前查出bug,將發(fā)現(xiàn)bug的時(shí)間提前,這也是一些公司花大力氣設(shè)計(jì)仿真平臺(tái)的原因。

另外隨著單板功能的提高、成本的壓力,低功耗也逐漸進(jìn)入FPGA設(shè)計(jì)者的考慮范圍,完成相同的功能下,考慮如何能夠使芯片的功耗最低,據(jù)說altera、xilinx都在根據(jù)自己的芯片特點(diǎn)整理如何降低功耗的文檔。

高速串行IO的應(yīng)用,也豐富了FPGA的應(yīng)用范圍,象xilinx的v2pro中的高速鏈路也逐漸被應(yīng)用。

11、對(duì)于多位的異步信號(hào)如何進(jìn)行同步?

對(duì)以一位的異步信號(hào)可以使用“一位同步器進(jìn)行同步”(使用兩級(jí)觸發(fā)器),而對(duì)于多位的異步信號(hào),可以采用如下方法:

1、可以采用保持寄存器加握手信號(hào)的方法(多數(shù)據(jù),控制,地址);

2、特殊的具體應(yīng)用電路結(jié)構(gòu),根據(jù)應(yīng)用的不同而不同;

3、異步FIFO。(最常用的緩存單元是DPRAM)

12:FPGA和CPLD的區(qū)別?
 

13:鎖存器(latch)和觸發(fā)器(flip-flop)區(qū)別?

電平敏感的存儲(chǔ)器件稱為鎖存器??煞譃?a class="article-link" target="_blank" href="/tag/%E9%AB%98%E7%94%B5%E5%B9%B3/">高電平鎖存器和低電平鎖存器,用于不同時(shí)鐘之間的信號(hào)同步。

有交叉耦合的門構(gòu)成的雙穩(wěn)態(tài)的存儲(chǔ)原件稱為觸發(fā)器。分為上升沿觸發(fā)和下降沿觸發(fā)??梢哉J(rèn)為是兩個(gè)不同電平敏感的鎖存器串連而成。前一個(gè)鎖存器決定了觸發(fā)器的建立時(shí)間,后一個(gè)鎖存器則決定了保持時(shí)間。

14、FPGA芯片內(nèi)有哪兩種存儲(chǔ)器資源?

FPGA芯片內(nèi)有兩種存儲(chǔ)器資源:一種叫BLOCK RAM,另一種是由LUT配置成的內(nèi)部存儲(chǔ)器(也就是分布式RAM)。BLOCK RAM由一定數(shù)量固定大小的存儲(chǔ)塊構(gòu)成的,使用BLOCK RAM資源不占用額外的邏輯資源,并且速度快。但是使用的時(shí)候消耗的BLOCK RAM資源是其塊大小的整數(shù)倍。

15、什么是時(shí)鐘抖動(dòng)?

時(shí)鐘抖動(dòng)是指芯片的某一個(gè)給定點(diǎn)上時(shí)鐘周期發(fā)生暫時(shí)性變化,也就是說時(shí)鐘周期在不同的周期上可能加長或縮短。它是一個(gè)平均值為0的平均變量。

16、FPGA設(shè)計(jì)中對(duì)時(shí)鐘的使用?(例如分頻等)

FPGA芯片有固定的時(shí)鐘路由,這些路由能有減少時(shí)鐘抖動(dòng)和偏差。需要對(duì)時(shí)鐘進(jìn)行相位移動(dòng)或變頻的時(shí)候,一般不允許對(duì)時(shí)鐘進(jìn)行邏輯操作,這樣不僅會(huì)增加時(shí)鐘的偏差和抖動(dòng),還會(huì)使時(shí)鐘帶上毛刺。

一般的處理方法是采用FPGA芯片自帶的時(shí)鐘管理器如PLL,DLL或DCM,或者把邏輯轉(zhuǎn)換到觸發(fā)器的D輸入(這些也是對(duì)時(shí)鐘邏輯操作的替代方案)。

17、FPGA設(shè)計(jì)中如何實(shí)現(xiàn)同步時(shí)序電路的延時(shí)?

首先說說異步電路的延時(shí)實(shí)現(xiàn):異步電路一半是通過加buffer、兩級(jí)與非門等來實(shí)現(xiàn)延時(shí)(我還沒用過所以也不是很清楚),但這是不適合同步電路實(shí)現(xiàn)延時(shí)的。在同步電路中,對(duì)于比較大的和特殊要求的延時(shí),一半通過高速時(shí)鐘產(chǎn)生計(jì)數(shù)器,通過計(jì)數(shù)器來控制延時(shí);對(duì)于比較小的延時(shí),可以通過觸發(fā)器打一拍,不過這樣只能延遲一個(gè)時(shí)鐘周期。

18、FPGA中可以綜合實(shí)現(xiàn)為RAM/ROM/CAM的三種資源及其注意事項(xiàng)?

三種資源:BLOCK RAM,觸發(fā)器(FF),查找表(LUT);

注意事項(xiàng):

1、在生成RAM等存儲(chǔ)單元時(shí),應(yīng)該首選BLOCK RAM 資源;

其原因有二:第一:使用BLOCK RAM等資源,可以節(jié)約更多的FF和4-LUT等底層可編程單元。使用BLOCK RAM可以說是“不用白不用”,是最大程度發(fā)揮器件效能,節(jié)約成本的一種體現(xiàn);第二:BLOCK RAM是一種可以配置的硬件結(jié)構(gòu),其可靠性和速度與用LUT和REGISTER構(gòu)建的存儲(chǔ)器更有優(yōu)勢(shì)。

2、弄清FPGA的硬件結(jié)構(gòu),合理使用BLOCK RAM資源;

3、分析BLOCK RAM容量,高效使用BLOCK RAM資源;

4、分布式RAM資源(DISTRIBUTE RAM)

19、Xilinx中與全局時(shí)鐘資源和DLL相關(guān)的硬件原語

常用的與全局時(shí)鐘資源相關(guān)的Xilinx器件原語包括:IBUFG,IBUFGDS,BUFG,BUFGP,BUFGCE,BUFGMUX,BUFGDLL,DCM等。關(guān)于各個(gè)器件原語的解釋可以參考《FPGA設(shè)計(jì)指導(dǎo)準(zhǔn)則》p50部分。

20、HDL語言的層次概念?

HDL語言是分層次的、類型的,最常用的層次概念有系統(tǒng)與標(biāo)準(zhǔn)級(jí)、功能模塊級(jí),行為級(jí),寄存器傳輸級(jí)和門級(jí)。

系統(tǒng)級(jí),算法級(jí),RTL級(jí)(行為級(jí)),門級(jí),開關(guān)級(jí)

相關(guān)推薦

電子產(chǎn)業(yè)圖譜

IC行業(yè)前沿資訊,IC領(lǐng)域硬核知識(shí),專注打造IC人才科技生態(tài)圈。公眾號(hào):IC修真院