最全硬件工程師筆試面試必刷題庫-05FPGA基礎

啓芯硬件 2024-05-13 19:20:40
本題庫會更新硬件工程師筆試面試各個模塊。從基本元器件開始,後面更新模電數電,電源,運放,PCB等各方面的設計知識,供相關行業筆試面試參考用。

1、你所知道的可編程邏輯器件有哪些?

答:ROM(只讀存儲器)、PLA(可編程邏輯陣列)、FPLA(現場可編程邏輯陣列)、PAL(可編程陣列邏輯)GAL(通用陣列邏輯),EPLD(可擦除的可編程邏輯器件)、 FPGA(現場可編程門陣列)、CPLD(複雜可編程邏輯器件)等 ,其中 ROM、FPLA、 PAL、GAL、EPLD 是出現較早的可編程邏輯器件,而 FPGA 和 CPLD 是當今最 流行的兩類可編程邏輯器件。FPGA 是基于查找表結構的,而 CPLD 是基于乘積 項結構的。

可編程邏輯器件的演進:

1)可編程邏輯陣列(PLA): PLA是早期可編程邏輯器件的一種。它允許用戶編程任意的布爾邏輯方程,從而實現複雜的數字電路功能。

PLA的主要優勢在于其靈活性,但缺點由于它的結構相對複雜,成本較高。

2)可編程陣列邏輯器件(PAL): 爲了簡化PLA並減小成本,可編程陣列邏輯器件應運而生。PAL具有一組可編程的與門和可編程的或門,使得用戶能夠靈活地定義邏輯功能。

PAL的優勢是提供了一種在門級別上實現邏輯的經濟有效方法。

3)複雜可編程邏輯器件(CPLD): CPLD是在PAL基礎上發展起來的一種更複雜的可編程邏輯器件。它包含多個可編程邏輯塊和連接資源,使得它更適用于實現較大規模的數字電路。

CPLD通常具有更靈活的架構,使得用戶可以實現更複雜的邏輯功能。

4)現場可編程門陣列(FPGA): FPGA是可編程邏輯器件的最新發展階段。它采用了現場可編程的門陣列結構,允許用戶在現場(實際使用的地方)進行配置。

FPGA在靈活性和性能之間取得了良好的平衡,使得它成爲實現數字邏輯功能的重要工具。FPGA可以在運行時重新編程,支持廣泛的應用,包括數字信號處理、通信、圖像處理、網絡加速等領域。

2、用 VHDL 或 VERILOG、ABLE 描述 8 位 D 觸發器邏輯

3、FPGA和ASIC的概念,他們的區別。(未知)  答案:FPGA是可編程ASIC。

ASIC:專用集成電路,它是面向專門用途的電路,專門爲一個用戶設計和制造的。根據一個用戶的特定要求,能以低研制成本,短、交貨周期供貨的全定制,半定制集成電路。與 門陣列等其它ASIC(Application Specific IC)相比,它們又具有設計開發周期短、設計制造成本低、開發工具先進、標准産品無需測試、質量穩定以及可實時在線檢驗等優點。

4、FPGA和ASIC的概念,他們的區別。(未知)

答案:FPGA是可編程ASIC。ASIC:專用集成電路,它是面向專門用途的電路,專門爲一個用戶設計和制造的。根據一個用戶的特定要求,能以低研制成本,短、交貨周期供貨的全定制,半定制集成電路。與門陣列等其它ASIC(Application Specific IC)相比,它們又具有設計開發周期短、設計制造成本低、開發工具先進、標准産品無需測試、質量穩定以及可實時在線檢驗等優點。

5、什麽是同步邏輯和異步邏輯?

同步邏輯是時鍾之間有固定的因果關系。異步邏輯是各時鍾之間沒有固定的因果關系。

6、如何解決亞穩態。

答:亞穩態是指觸發器無法在某個規定時間段內達到一個可確認的狀態。當一個觸發器進入亞穩態時,既無法預測該單元的輸出電平,也無法預測何時輸出才能穩定在某個正確的電平上。在亞穩態期間,觸發器輸出一些中間級電平,或者可能處于振蕩狀態,並且這種無用的輸出電平可以沿信號通道上的各個觸發器級聯式傳播下去。解決方法主要有:(1)降低系統時鍾;(2)用反應更快的FF;(3)引入同步機制,防止亞穩態傳播;(4)改善時鍾質量,用邊沿變化快速的時鍾信號;(5)使用工藝好、時鍾周期裕量大的器件。

7、什麽是同步邏輯和異步邏輯?

同步邏輯是時鍾之間有固定的因果關系。異步邏輯是各時鍾之間沒有固定的因果關系。

電路設計可分類爲同步電路和異步電路設計。同步電路利用時鍾脈沖使其子系統同步運作,而異步電路不使用時鍾脈沖做同步,其子系統是使用特殊的“開始”和“完成”信號使之同步。由于異步電路具有下列優點--無時鍾歪斜問題、低電源消耗、平均效能而非最差效能、模塊性、可組合和可複用性--因此近年來對異步電路研究增加快速,論文發表數以倍增,而Intel Pentium 4處理器設計,也開始采用異步電路設計。

異步電路主要是組合邏輯電路,用于産生地址譯碼器、FIFO或RAM的讀寫控制信號脈沖,其邏輯輸出與任何時鍾信號都沒有關系,譯碼輸出産生的毛刺通常是可以監控的。同步電路是由時序電路(寄存器和各種觸發器)和組合邏輯電路構成的電路,其所有操作都是在嚴格的時鍾控制下完成的。這些時序電路共享同一個時鍾CLK,而所有的狀態變化都是在時鍾的上升沿(或下降沿)完成的。

7、解釋setup time和hold time的定義和在時鍾信號延遲時的變化。(未知)

8、解釋setup和hold time violation,畫圖說明,並說明解決辦法。

Setup/hold time是測試芯片對輸入信號和時鍾信號之間的時間要求。建立時間是指觸發器的時鍾信號上升沿到來以前,數據穩定不變的時間。輸入信號應提前時鍾上升沿(如上升沿有效)T時間到達芯片,這個T就是建立時間-Setuptime.如不滿足setup time,這個數據就不能被這一時鍾打入觸發器,只有在下一個時鍾上升沿,數據才能被打入觸發器。保持時間是指觸發器的時鍾信號上升沿到來以後,數據穩定不變的時間。如果hold time不夠,數據同樣不能被打入觸發器。

建立時間(Setup Time)和保持時間(Hold time)。建立時間是指在時鍾邊沿前,數據信號需要保持不變的時間。保持時間是指時鍾跳變邊沿後數據信號需要保持不變的時間。如果不滿足建立和保持時間的話,那麽DFF將不能正確地采樣到數據,將會出現 metastability的情況。如果數據信號在時鍾沿觸發前後持續的時間均超過建立和保持時間,那麽超過量就分別被稱爲建立時間裕量和保持時間裕量。

9、請用HDL描述四位的全加法器、5分頻電路。

10、用VERILOG或VHDL寫一段代碼,實現10進制計數器。(未知)

11、用VERILOG或VHDL寫一段代碼,實現消除一個glitch。(未知)

0 阅读:4

啓芯硬件

簡介:10+年經驗硬件工程師,熟悉硬件芯片設計