IC設計筆試面試經典100題(大部分有答案)

1:什麼是同步邏輯和異步邏輯?
  同步邏輯是時鐘之間有固定的因果關係。異步邏輯是各時鐘之間沒有固定的因果關係。

  同步時序邏輯電路的特點:各觸發器的時鐘端全部連接在一起,並接在系統時鐘端,只有當時鍾脈衝到來時,電路的狀態才能改變。改變後的狀態將一直保持到下一個時鐘脈衝的到來,此時無論外部輸入x有無變化,狀態表中的每個狀態都是穩定的。

  異步時序邏輯電路的特點:電路中除可以使用帶時鐘的觸發器外,還可以使用不帶時鐘的觸發器和延遲元件作爲存儲元件,電路中沒有統一的時鐘,電路狀態的改變由外部輸入的變化直接引起。

2:同步電路和異步電路的區別:
  同步電路:存儲電路中所有觸發器的時鐘輸入端都接同一個時鐘脈衝源,因而所有觸發器的狀態的變化都與所加的時鐘脈衝信號同步。

  異步電路:電路沒有統一的時鐘,有些觸發器的時鐘輸入端與時鐘脈衝源相連,只有這些觸發器的狀態變化與時鐘脈衝同步,而其他的觸發器的狀態變化不與時鐘脈衝同步。

3:時序設計的實質:
  時序設計的實質就是滿足每一個觸發器的建立/保持時間的要求。

4:建立時間與保持時間的概念?
建立時間:觸發器在時鐘上升沿到來之前,其數據輸入端的數據必須保持不變的最小時間。

保持時間:觸發器在時鐘上升沿到來之後,其數據輸入端的數據必須保持不變的最小時間。

5:爲什麼觸發器要滿足建立時間和保持時間?
因爲觸發器內部數據的形成是需要一定的時間的,如果不滿足建立和保持時間,觸發器將進入亞穩態,進入亞穩態後觸發器的輸出將不穩定,在0和1之間變化,這時需要經過一個恢復時間,其輸出才能穩定,但穩定後的值並不一定是你的輸入值。這就是爲什麼要用兩級觸發器來同步異步輸入信號。這樣做可以防止由於異步輸入信號對於本級時鐘可能不滿足建立保持時間而使本級觸發器產生的亞穩態傳播到後面邏輯中,導致亞穩態的傳播。

(比較容易理解的方式)換個方式理解:需要建立時間是因爲觸發器的D端像一個鎖存器在接受數據,爲了穩定的設置前級門的狀態需要一段穩定時間;需要保持時間是因爲在時鐘沿到來之後,觸發器要通過反饋來鎖存狀態,從後級門傳到前級門需要時間。

6:什麼是亞穩態?爲什麼兩級觸發器可以防止亞穩態傳播?
這也是一個異步電路同步化的問題。亞穩態是指觸發器無法在某個規定的時間段內到達一個可以確認的狀態。使用兩級觸發器來使異步電路同步化的電路其實叫做“一位同步器”,他只能用來對一位異步信號進行同步。兩級觸發器可防止亞穩態傳播的原理:假 設第一級觸發器的輸入不滿足其建立保持時間,它在第一個脈衝沿到來後輸出的數據就爲亞穩態,那麼在下一個脈衝沿到來之前,其輸出的亞穩態數據在一段恢復時 間後必須穩定下來,而且穩定的數據必須滿足第二級觸發器的建立時間,如果都滿足了,在下一個脈衝沿到來時,第二級觸發器將不會出現亞穩態,因爲其輸入端的 數據滿足其建立保持時間。同步器有效的條件:第一級觸發器進入亞穩態後的恢復時間 + 第二級觸發器的建立時間 < = 時鐘週期。

更確切地說,輸入脈衝寬度必須大於同步時鐘週期與第一級觸發器所需的保持時間之和。最保險的脈衝寬度是兩倍同步時鐘週期。所以,這樣的同步電路對於從較慢的時鐘域來的異步信號進入較快的時鐘域比較有效,對於進入一個較慢的時鐘域,則沒有作用。

7:系統最高速度計算(最快時鐘頻率)和流水線設計思想:
同步電路的速度是指同步系統時鐘的速度,同步時鐘愈快,電路處理數據的時間間隔越短,電路在單位時間內處理的數據量就愈大。假設Tco是觸發器的輸入數據被時鐘打入到觸發器到數據到達觸發器輸出端的延時時間(Tco=Tsetpup+Thold);Tdelay是組合邏輯的延時;Tsetup是D觸發器的建立時間。假設數據已被時鐘打入D觸發器,那麼數據到達第一個觸發器的Q輸出端需要的延時時間是Tco,經過組合邏輯的延時時間爲Tdelay,然後到達第二個觸發器的D端,要希望時鐘能在第二個觸發器再次被穩定地打入觸發器,則時鐘的延遲必須大於Tco+Tdelay+Tsetup,也就是說最小的時鐘週期Tmin =Tco+Tdelay+Tsetup,即最快的時鐘頻率Fmax =1/Tmin。FPGA開發軟件也是通過這種方法來計算系統最高運行速度Fmax。因爲Tco和Tsetup是由具體的器件工藝決定的,故設計電路時只能改變組合邏輯的延遲時間Tdelay,所以說縮短觸發器間組合邏輯的延時時間是提高同步電路速度的關鍵所在。由於一般同步電路都大於一級鎖存,而要使電路穩定工作,時鐘週期必須滿足最大延時要求。故只有縮短最長延時路徑,才能提高電路的工作頻率。可以將較大的組合邏輯分解爲較小的N塊,通過適當的方法平均分配組合邏輯,然後在中間插入觸發器,並和原觸發器使用相同的時鐘,就可以避免在兩個觸發器之間出現過大的延時,消除速度瓶頸,這樣可以提高電路的工作頻率。這就是所謂"流水線"技術的基本設計思想,即原設計速度受限部分用一個時鐘週期實現,採用流水線技術插入觸發器後,可用N個時鐘週期實現,因此係統的工作速度可以加快,吞吐量加大。注意,流水線設計會在原數據通路上加入延時,另外硬件面積也會稍有增加。

8:時序約束的概念和基本策略?
時序約束主要包括週期約束,偏移約束,靜態時序路徑約束三種。通過附加時序約束可以綜合佈線工具調整映射和佈局佈線,使設計達到時序要求。

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

9:附加約束的作用?
1:提高設計的工作頻率(減少了邏輯和佈線延時);2:獲得正確的時序分析報告;(靜態時序分析工具以約束作爲判斷時序是否滿足設計要求的標準,因此要求設計者正確輸入約束,以便靜態時序分析工具可以正確的輸出時序報告)3:指定FPGA/CPLD的電氣標準和引腳位置。

10:FPGA設計工程師努力的方向:

SOPC,高速串行I/O,低功耗,可靠性,可測試性和設計驗證流程的優化等方面。

隨着芯片工藝的提高,芯片容量、集成度都在增加,FPGA設計也朝着高速、高度集成、低功耗、高可靠性、高可測、可驗證性發展。芯片可測、可驗證,正在成爲複雜設計所必備的條件,儘量在上板之前查出bug,將發現bug的時間提前,這也是一些公司花大力氣設計仿真平臺的原因。另外隨着單板功能的提高、成本的壓力,低功耗也逐漸進入FPGA設計者的考慮範圍,完成相同的功能下,考慮如何能夠使芯片的功耗最低,據說altera、xilinx都在根據自己的芯片特點整理如何降低功耗的文檔。高速串行IO的應用,也豐富了FPGA的應用範圍,象xilinx的v2pro中的高速鏈路也逐漸被應用。

11:對於多位的異步信號如何進行同步?
對以一位的異步信號可以使用“一位同步器進行同步”(使用兩級觸發器),而對於多位的異步信號,可以採用如下方法:1:可以採用保持寄存器加握手信號的方法(多數據,控制,地址);2:特殊的具體應用電路結構,根據應用的不同而不同;3:異步FIFO。(最常用的緩存單元是DPRAM)

12:FPGA和CPLD的區別?
 

     
     
     
     
     
     

 

發佈了8 篇原創文章 · 獲贊 8 · 訪問量 2萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章