《電子技術應用》
您所在的位置:首頁 > 嵌入式技術 > 業(yè)界動態(tài) > FPGA大公司面試筆試數電部分,看看你會多少

FPGA大公司面試筆試數電部分,看看你會多少

2015-10-15
關鍵詞: FPGA 筆試

  1:什么是同步邏輯和異步邏輯?(漢王)
  同步邏輯是時鐘之間有固定的因果關系。異步邏輯是各時鐘之間沒有固定的因果關系。 答案應該與上面問題一致
  〔補充〕:同步時序邏輯電路的特點:各觸發(fā)器的時鐘端全部連接在一起,并接在系統(tǒng)時鐘端,只有當時鐘脈沖到來時,電路的狀態(tài)才能改變。改變后的狀態(tài)將一直保持到下一個時鐘脈沖的到來,此時無論外部輸入 x 有無變化,狀態(tài)表中的每個狀態(tài)都是穩(wěn)定的。
  異步時序邏輯電路的特點:電路中除可以使用帶時鐘的觸發(fā)器外,還可以使用不帶時鐘的觸發(fā)器和延遲元件作為存儲元件,電路中沒有統(tǒng)一的時鐘,電路狀態(tài)的改變由外部輸入的變化直接引起。
  2:同步電路和異步電路的區(qū)別:
  同步電路:存儲電路中所有觸發(fā)器的時鐘輸入端都接同一個時鐘脈沖源,因而所有觸發(fā)器的狀態(tài)的變化都與所加的時鐘脈沖信號同步。
  異步電路:電路沒有統(tǒng)一的時鐘,有些觸發(fā)器的時鐘輸入端與時鐘脈沖源相連,這有這些觸發(fā)器的狀態(tài)變化與時鐘脈沖同步,而其他的觸發(fā)器的狀態(tài)變化不與時鐘脈沖同步。
  3:時序設計的實質:
  電路設計的難點在時序設計,時序設計的實質就是滿足每一個觸發(fā)器的建立/保持時間的而要求。
  4:建立時間與保持時間的概念?
  建立時間:觸發(fā)器在時鐘上升沿到來之前,其數據輸入端的數據必須保持不變的時間。
  保持時間:觸發(fā)器在時鐘上升沿到來之后,其數據輸入端的數據必須保持不變的時間。
  不考慮時鐘的skew,D2的建立時間不能大于(時鐘周期T - D1數據最遲到達時間T1max+T2max);保持時間不能大于(D1數據最快到達時間T1min+T2min);否則D2的數據將進入亞穩(wěn)態(tài)并向后級電路傳播
  5:為什么觸發(fā)器要滿足建立時間和保持時間?
  因 為觸發(fā)器內部數據的形成是需要一定的時間的,如果不滿足建立和保持時間,觸發(fā)器將進入亞穩(wěn)態(tài),進入亞穩(wěn)態(tài)后觸發(fā)器的輸出將不穩(wěn)定,在0和1之間變化,這時 需要經過一個恢復時間,其輸出才能穩(wěn)定,但穩(wěn)定后的值并不一定是你的輸入值。這就是為什么要用兩級觸發(fā)器來同步異步輸入信號。這樣做可以防止由于異步輸入 信號對于本級時鐘可能不滿足建立保持時間而使本級觸發(fā)器產生的亞穩(wěn)態(tài)傳播到后面邏輯中,導致亞穩(wěn)態(tài)的傳播。
 ?。ū容^容易理解的方式)換個方式理解:需要建立時間是因為觸發(fā)器的D段像一個鎖存器在接受數據,為了穩(wěn)定的設置前級門的狀態(tài)需要一段穩(wěn)定時間;需要保持時間是因為在時鐘沿到來之后,觸發(fā)器要通過反饋來所存狀態(tài),從后級門傳到前級門需要時間。
  6:什么是亞穩(wěn)態(tài)?為什么兩級觸發(fā)器可以防止亞穩(wěn)態(tài)傳播?
  這也是一個異步電路同步化的問題。
  亞穩(wěn)態(tài)是指觸發(fā)器無法在某個規(guī)定的時間段內到達一個可以確認的狀態(tài)。使用兩級觸發(fā)器來使異步電路同步化的電路其實叫做“一步同位器”,他只能用來對一位異步 信號進行同步。兩級觸發(fā)器可防止亞穩(wěn)態(tài)傳播的原理:假設第一級觸發(fā)器的輸入不滿足其建立保持時間,它在第一個脈沖沿到來后輸出的數據就為亞穩(wěn)態(tài),那么在下 一個脈沖沿到來之前,其輸出的亞穩(wěn)態(tài)數據在一段恢復時間后必須穩(wěn)定下來,而且穩(wěn)定的數據必須滿足第二級觸發(fā)器的建立時間,如果都滿足了,在下一個脈沖沿到 來時,第二級觸發(fā)器將不會出現(xiàn)亞穩(wěn)態(tài),因為其輸入端的數據滿足其建立保持時間。同步器有效的條件:第一級觸發(fā)器進入亞穩(wěn)態(tài)后的恢復時間 + 第二級觸發(fā)器的建立時間 < = 時鐘周期。
  更確切地說,輸入脈沖寬度必須大于同步時鐘周期與第一級觸發(fā)器所需的保持時間之和。最保險的脈沖寬度是兩倍同步時鐘周期。 所以,這樣的同步電路對于從較慢的時鐘域來的異步信號進入較快的時鐘域比較有效,對于進入一個較慢的時鐘域,則沒有作用 。
  7:系統(tǒng)最高速度計算(最快時鐘頻率)和流水線設計思想:
  同步電路的速度是指同步系統(tǒng)時鐘的速度,同步時鐘愈快,電路處理數據的時間間隔越短,電路在單位時間內處理的數據量就愈大。假設Tco是觸發(fā)器的輸入數據 被時鐘打入到觸發(fā)器到數據到達觸發(fā)器輸出端的延時時間;Tdelay是組合邏輯的延時;Tsetup是D觸發(fā)器的建立時間。假設數據已被時鐘打入D觸發(fā) 器,那么數據到達第一個觸發(fā)器的Q輸出端需要的延時時間是Tco,經過組合邏輯的延時時間為Tdelay,然后到達第二個觸發(fā)器的D端,要希望時鐘能在第 二個觸發(fā)器再次被穩(wěn)定地打入觸發(fā)器,則時鐘的延遲必須大于Tco+Tdelay+Tsetup,也就是說最小的時鐘周期Tmin =Tco+Tdelay+Tsetup,即最快的時鐘頻率Fmax =1/Tmin。FPGA開發(fā)軟件也是通過這種方法來計算系統(tǒng)最高運行速度Fmax。因為Tco和Tsetup是由具體的器件工藝決定的,故設計電路時只 能改變組合邏輯的延遲時間Tdelay,所以說縮短觸發(fā)器間組合邏輯的延時時間是提高同步電路速度的關鍵所在。由于一般同步電路都大于一級鎖存,而要使電 路穩(wěn)定工作,時鐘周期必須滿足最大延時要求。故只有縮短最長延時路徑,才能提高電路的工作頻率。可以將較大的組合邏輯分解為較小的N塊,通過適當的方法平 均分配組合邏輯,然后在中間插入觸發(fā)器,并和原觸發(fā)器使用相同的時鐘,就可以避免在兩個觸發(fā)器之間出現(xiàn)過大的延時,消除速度瓶頸,這樣可以提高電路的工作 頻率。這就是所謂"流水線"技術的基本設計思想,即原設計速度受限部分用一個時鐘周期實現(xiàn),采用流水線技術插入觸發(fā)器后,可用N個時鐘周期實現(xiàn),因此系統(tǒng) 的工作速度可以加快,吞吐量加大。注意,流水線設計會在原數據通路上加入延時,另外硬件面積也會稍有增加。
  8:時序約束的概念和基本策略?
  時序約束主要包括周期約束,偏移約束,靜態(tài)時序路徑約束三種。通過附加時序約束可以綜合布線工具調整映射和布局布線,是設計達到時序要求。
  附加時序約束的一般策略是先附加全局約束,然后對快速和慢速例外路徑附加專門約束。附加全局約束時,首先定義設計的所有時鐘,對各時鐘域內的同步元件進行分 組,對分組附加周期約束,然后對FPGA/CPLD輸入輸出PAD附加偏移約束、對全組合邏輯的PAD TO PAD路徑附加約束。附加專門約束時,首先約束分組之間的路徑,然后約束快、慢速例外路徑和多周期路徑,以及其他特殊路徑。
  9:附加約束的作用?
  作用:1:提高設計的工作頻率(減少了邏輯和布線延時);2:獲得正確的時序分析報告;(靜態(tài)時序分析工具以約束作為判斷時序是否滿足設計要求的標準,因 此要求設計者正確輸入約束,以便靜態(tài)時序分析工具可以正確的輸出時序報告)3:指定FPGA/CPLD的電氣標準和引腳位置。
  10:FPGA設計工程師努力的方向:
  SOPC, 高速串行I/O,低功耗,可靠性,可測試性和設計驗證流程的優(yōu)化等方面。隨著芯片工藝的提高,芯片容量、集成度都在增加,F(xiàn)PGA設計也朝著高速、高度集 成、低功耗、高可靠性、高可測、可驗證性發(fā)展。芯片可測、可驗證,正在成為復雜設計所必備的條件,盡量在上板之前查出bug,將發(fā)現(xiàn)bug的時間提前,這 也是一些公司花大力氣設計仿真平臺的原因。另外隨著單板功能的提高、成本的壓力,低功耗也逐漸進入FPGA設計者的考慮范圍,完成相同的功能下,考慮如何 能夠使芯片的功耗最低,據說altera、xilinx都在根據自己的芯片特點整理如何降低功耗的文檔。高速串行IO的應用,也豐富了FPGA的應用范 圍,象xilinx的v2pro中的高速鏈路也逐漸被應用。 總之,學無止境,當掌握一定概念、方法之后,就要開始考慮FPGA其它方面的問題了。
  11:對于多位的異步信號如何進行同步?
  對以一位的異步信號可以使用“一位同步器進行同步”,而對于多位的異步信號,可以采用如下方法:1:可以采用保持寄存器加握手信號的方法(多數據,控制, 地址);2:特殊的具體應用電路結構,根據應用的不同而不同 ;3:異步FIFO。(最常用的緩存單元是DPRAM)
  12:FPGA和CPLD的區(qū)別?
  FPGA是可編程ASIC。
  ASIC:專用集成電路,它是面向專門用途的電路,專門為一個用戶設計和制造的。根據一個用戶的特定要求,能以低研制成本,短、交貨周期供貨的全定制,半定制集成電路。與門陣列等其它ASIC(ApplicaTIon Specific IC)相比,它們又具有設計開發(fā)周期短、設計制造成本低、開發(fā)工具先進、標準產品無需測試、質量穩(wěn)定以及可實時在線檢驗等優(yōu)點。
  CPLD FPGA
  內部結構 Product-term Look-up Table
  程序存儲 內部EEPROM SRAM,外掛EEPROM
  資源類型 組合電路資源豐富 觸發(fā)器資源豐富
  集成度 低 高
  使用場合 完成控制邏輯 能完成比較復雜的算法
  速度 慢 快
  其他資源 - PLL、RAM和乘法器等
  保密性 可加密 一般不能保密
  13:鎖存器(latch)和觸發(fā)器(flip-flop)區(qū)別?
  電平敏感的存儲期間稱為鎖存器??煞譃楦唠娖芥i存器和低電平鎖存器,用于不同時鐘之間的信號同步。
  有交叉耦合的門構成的雙穩(wěn)態(tài)的存儲原件稱為觸發(fā)器。分為上升沿觸發(fā)和下降沿觸發(fā)??梢哉J為是兩個不同電平敏感的鎖存器串連而成。前一個鎖存器決定了觸發(fā)器的建立時間,后一個鎖存器則決定了保持時間。
  14:FPGA芯片內有哪兩種存儲器資源?
  FPGA芯片內有兩種存儲器資源:一種叫block ram,另一種是由LUT配置成的內部存儲器(也就是分布式ram)。Block ram由一定數量固定大小的存儲塊構成的,使用BLOCK RAM資源不占用額外的邏輯資源,并且速度快。但是使用的時候消耗的BLOCK RAM資源是其塊大小的整數倍。
  15:什么是時鐘抖動?
  時鐘抖動是指芯片的某一個給定點上時鐘周期發(fā)生暫時性變化,也就是說時鐘周期在不同的周期上可能加長或縮短。它是一個平均值為0的平均變量。
  16:FPGA設計中對時鐘的使用?(例如分頻等)
  FPGA芯片有固定的時鐘路由,這些路由能有減少時鐘抖動和偏差。需要對時鐘進行相位移動或變頻的時候,一般不允許對時鐘進行邏輯操作,這樣不僅會增加時 鐘的偏差和抖動,還會使時鐘帶上毛刺。一般的處理方法是采用FPGA芯片自帶的時鐘管理器如PLL,DLL或DCM,或者把邏輯轉換到觸發(fā)器的D輸入(這 些也是對時鐘邏輯操作的替代方案)。
  17:FPGA設計中如何實現(xiàn)同步時序電路的延時?
  首先說說異步電路的延時實現(xiàn):異步電路一半是通過加buffer、兩級與非門等(我還沒用過所以也不是很清楚),但這是不適合同步電路實現(xiàn)延時的。在同步 電路中,對于比較大的和特殊要求的延時,一半通過高速時鐘產生計數器,通過計數器來控制延時;對于比較小的延時,可以通過觸發(fā)器打一拍,不過這樣只能延遲 一個時鐘周期。
  18:FPGA中可以綜合實現(xiàn)為RAM/ROM/CAM的三種資源及其注意事項?
  三種資源:block ram;觸發(fā)器(FF),查找表(LUT);
  注意事項:1:在生成RAM等存儲單元時,應該首選block ram 資源;其原因有二:第一:使用block ram等資源,可以節(jié)約更多的FF和4-LUT等底層可編程單元。使用block ram可以說是“不用白不用”,是最大程度發(fā)揮器件效能,節(jié)約成本的一種體現(xiàn);第二:block ram是一種可以配置的硬件結構,其可靠性和速度與用LUT和register構建的存儲器更有優(yōu)勢。2:弄清FPGA的硬件結構,合理使用block ram資源;3:分析block ram容量,高效使用block ram資源;4:分布式ram資源(distribute ram)
  19:Xilinx中與全局時鐘資源和DLL相關的硬件原語:
  常用的與全局時鐘資源相關的Xilinx器件原語包括:IBUFG,IBUFGDS,BUFG,BUFGP,BUFGCE,BUFGMUX,BUFGDLL,DCM等。關于各個器件原語的解釋可以參考《FPGA設計指導準則》p50部分。
  20:HDL語言的層次概念?
  HDL語言是分層次的、類型的,最常用的層次概念有系統(tǒng)與標準級、功能模塊級,行為級,寄存器傳輸級和門級。
  21:查找表的原理與結構?
  查找表(look-up-table)簡稱為LUT,LUT本質上就是一個RAM。目前FPGA中多使用4輸入的LUT,所以每一個LUT可以看成一個有 4位地址線的16x1的RAM。 當用戶通過原理圖或HDL語言描述了一個邏輯電路以后,PLD/FPGA開發(fā)軟件會自動計算邏輯電路的所有可能的結果,并把結果事先寫入RAM,這樣,每 輸入一個信號進行邏輯運算就等于輸入一個地址進行查表,找出地址對應的內容,然后輸出即可
  22:ic設計前端到后端的流程和eda工具?
  設計前端也稱邏輯設計,后端設計也稱物理設計,兩者并沒有嚴格的界限,一般涉及到與工藝有關的設計就是后端設計。
  1:規(guī)格制定:客戶向芯片設計公司提出設計要求。
  2:詳細設計:芯片設計公司(Fabless)根據客戶提出的規(guī)格要求,拿出設計解決方案和具體實現(xiàn)架構,劃分模塊功能。目前架構的驗證一般基于 systemC語言,對價后模型的仿真可以使用systemC的仿真工具。例如:CoCentric和Visual Elite等。
  3:HDL編碼:設計輸入工具:ultra ,visual VHDL等
  4:仿真驗證:modelsim
  5:邏輯綜合:synplify
  6:靜態(tài)時序分析:synopsys的Prime Time
  7:形式驗證:Synopsys的Formality.

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