FPGA工程師筆試面試題(二)

2021-10-02 20:31:28 字數 2196 閱讀 5227

1、ic設計中同步復位與非同步復位的區別

同步復位在時鐘沿才復位訊號,完成復位動作。非同步復位不管時鐘,只要復位訊號滿足條件,就完成復位動作。非同步復位對復位訊號要求比較高,不能有毛刺,如果其與時鐘關係不確定,也可能出現亞穩態。

2、moore 與 mealy狀態機的特徵

兩種典型的狀態機是摩爾(moore)狀態機和公尺立(mealy)狀態機。摩爾有限狀態機輸出只與當前狀態有關,與輸入訊號的當前值無關,是嚴格的現態函式。在時鐘脈衝的有效邊沿作用後的有限個門延後,輸出達到穩定值。即使在時鐘週期內輸入訊號發生變化,輸出也會保持穩定不變。從時序上看,moore狀態機屬於同步輸出狀態機。moore有限狀態機最重要的特點就是將輸入與輸出訊號隔離開來。

mealy狀態機的輸出是現態和所有輸入的函式,隨輸入變化而隨時發生變化。從時序上看,mealy狀態機屬於非同步輸出狀態機,它不依賴於時鐘。

3、多時域設計中,如何處理訊號跨時域

(1)桌球操作

多時鐘域的設計中,對於訊號跨時域的處理這裡可以採用桌球操作的方法來進行。桌球操作的處理流程為:輸入資料流通過『輸入資料選擇單元」將資料流等時分配到兩個資料緩衝區,資料緩衝模組可以為任何儲存模組,比較常用的儲存單元為雙口ram(dpram)、單口ram(spram)、fifo等。

在第1個緩衝週期,將輸入的資料流快取到「資料緩衝模組1」;

在第2個緩衝週期,通過「輸入資料選擇單元」的切換,將輸入的資料流快取到「資料緩衝模組2」,同時將「資料緩衝模組1」快取的第1個週期資料通過「輸入資料選擇單元」的選擇,送到「資料流運算處理模組」進行運算處理;

在第3個緩衝週期通過「輸入資料選擇單元」的再次切換,將輸入的資料流快取到「資料緩衝模組1」,同時將「資料緩衝模組2」快取的第2個週期的資料通過「輸入資料選擇單元」切換,送到「資料流運算處理模組」進行運算處理。如此迴圈。

桌球操作的最大特點是通過「輸入資料選擇單元」和「輸出資料選擇單元」按節拍、相互配合的切換,將經過緩衝的資料流沒有停頓地送到「資料流運算處理模組」 進行運算與處理。把桌球操作模組當做乙個整體,站在這個模組的兩端看資料,輸入資料流和輸出資料流都是連續不斷的,沒有任何停頓,因此非常適合對資料流進行流水線式處理。所以桌球操作常常應用於流水線式演算法,完成資料的無縫緩衝與處理。還可以節約緩衝區空間。

(2)fifo操作

還有一種方法,fifo一般用於不同時鐘域之間的資料傳輸,比如fifo的一端是ad資料採集,另一端是計算機的pci匯流排,假設其ad採集的速率為16 位 100k sps,那麼每秒的資料量為100k×16bit=1.6mbps,而pci匯流排的速度為率33mhz,匯流排寬度32bit,其最大傳輸速為 1056mbps可以採,在兩個不同的時鐘域間就用fifo來作為資料緩衝。另外對於不同寬度的資料介面也可以用fifo,例如微控制器為8位資料輸出,而 dsp可能是16位資料輸入,在微控制器與dsp連線時就可以使用fifo來達到資料匹配的目的。

不同的時鐘域之間訊號通訊時需要進行同步處理,這樣可以防止新時鐘域中第一級觸發器的亞穩態訊號對下級邏輯造成影響,其中對於單個控制訊號可以用兩級同步器,如電平、邊沿檢測和脈衝,對多位訊號可以用fifo,雙口ram,握手訊號等。

情況比較多,如果簡單回答的話就是:跨時域的訊號要經過同步器同步,防止亞穩態傳播。例如:時鐘域1中的乙個訊號,要送到時鐘域2,那麼在這個訊號送到時鐘域2之前,要先經過時鐘域2的同步器同步後,才能進入時鐘域2。這個同步器就是兩級d觸發器,其時鐘為時鐘域2的時鐘。這樣做是怕時鐘域1中的這個訊號,可能不滿足時鐘域2中觸發器的建立保持時間,而產生亞穩態,因為它們之間沒有必然關係,是非同步的。這樣做只能防止亞穩態傳播,但不能保證採進來的資料的正確性。所以通常只同步很少位數的訊號。比如控制訊號,或位址。當同步的是位址時,一般該位址應採用格雷碼,因為格雷碼每次隻變一位,相當於每次只有乙個同步器在起作用,這樣可以降低出錯概率,像非同步fifo的設計中,比較讀寫位址的大小時,就是用這種方法。

如果兩個時鐘域之間傳送大量的資料,可以用非同步fifo來解決問題

4、給了reg的setup,hold時間,求中間組合邏輯的delay範圍

delay < period - setup – hold

假設時鐘週期為tclk,則有

hold5、時鐘週期為t,觸發器d1的建立時間最大為t1max,最小為t1min。組合邏輯電路最大延遲為t2max,最小為t2min。問,觸發器d2的建立時間t3和保持時間應滿足什麼條件。(華為)

參考:(1)

(2)(3)

4個FPGA工程師面試題目

fpga與cpld內部結構區別?cpld 以altramax7000這種pld為例,可分為三塊結構 巨集單元 marocell 可程式設計連線 pia 和i o控制塊。巨集單元是pld的基本結構,由它來實現基本的邏輯功能。可程式設計連線負責訊號傳遞,連線所有的巨集單元。i o控制塊負責輸入輸出的電氣...

測試工程師 筆試題和面試題 1

筆試題 面試題 1.如何理解軟體的安全性 2.如何對乙個api進行測試 3.如何設計乙個產品的測試策略 4.白盒和黑盒的區別,你是怎麼運用的?黑盒測試 白盒測試 規劃方面 功能測試 結構測試 優點方面 能從使用者的角度進行測試 能從程式內部的特定結構進行覆蓋測試 缺點方面 無法測試程式內部特定結構,...

新浪php工程師面試題

1 cookie session的聯絡和區別,多台web伺服器如何共享session?2 http協議中的post和get有何區別?3 一段php 寫出輸出結果 這個程式 a 0 b 0 if a 3 0 b 3 0 4 reqiure的include都可包含檔案,二者的區別何在?5 php中web...