柚子快報(bào)激活碼778899分享:FPGA面試總結(jié)(八股文)
ps:內(nèi)容都是自己總結(jié)的,如果有錯(cuò)誤的話請(qǐng)及時(shí)聯(lián)系我修改,謝謝~
后續(xù)有補(bǔ)充的話我會(huì)持續(xù)的更新
1.什么是FPGA
FPGA是一種可以重構(gòu)電路的芯片,是一種硬件可重構(gòu)的體系結(jié)構(gòu);
中文名是 現(xiàn)場可編程門陣列
2.FPGA的設(shè)計(jì)流程
系統(tǒng)規(guī)劃 ---> RTL輸入(寫代碼)---> 行為仿真/功能仿真 ---> 邏輯綜合
---> 綜合后設(shè)計(jì)分析(檢查時(shí)序及資源占用情況)---> 設(shè)計(jì)實(shí)現(xiàn) ---> 布線后仿真
---> 板級(jí)調(diào)試 ---> bistream固化
3.查找表(LUTS)? look-up-tables
其本質(zhì)就是一個(gè)RAM
當(dāng)用戶通過原理圖或HDL語言描述了一個(gè)邏輯電路以后,F(xiàn)PGA開發(fā)軟件就會(huì)自動(dòng)計(jì)算邏輯電路的所有可能得結(jié)果,并把結(jié)果事先寫入RAM當(dāng)中,這樣在每輸入一個(gè)信號(hào)進(jìn)行邏輯計(jì)算就等于輸入一個(gè)地址來進(jìn)行查表,找出地址對(duì)應(yīng)的內(nèi)容,然后輸出即可。
4.毛刺如何消除
去除毛刺可以利用D觸發(fā)器的輸入端D對(duì)毛刺信號(hào)不敏感的特點(diǎn);因?yàn)楫?dāng)輸入信號(hào)有毛刺時(shí),只要該毛刺不發(fā)生在時(shí)鐘的上升沿時(shí)刻,輸出就不會(huì)有毛刺產(chǎn)生。
5.鎖存器/觸發(fā)器
latch? ? ? 屬于異步電路設(shè)計(jì),是電平觸發(fā)
register 屬于同步電路,是邊沿觸發(fā)
but? 鎖存器:1)對(duì)毛刺不敏感,很容易在信號(hào)上產(chǎn)生毛刺
? ? ? ? ? ? ? ? ? ? ? 2)沒有時(shí)鐘信號(hào),不容易進(jìn)行靜態(tài)時(shí)序分析
D觸發(fā)器可用做:數(shù)字信號(hào)的寄存、移位寄存、分頻和波形發(fā)生器等。
6.組合邏輯/時(shí)序邏輯
組合邏輯:任意時(shí)刻的輸出僅取決于該時(shí)刻的輸入,與電路原本的狀態(tài)無關(guān),邏輯中不牽涉跳變沿信號(hào)的處理。
時(shí)序邏輯:任意時(shí)刻的輸出不僅取決于該時(shí)刻的輸入,而且還和電路原來的狀態(tài)有關(guān)。
7.競爭與冒險(xiǎn)
兩個(gè)輸入信號(hào)同時(shí)向兩個(gè)相反的方向的邏輯狀態(tài)轉(zhuǎn)換就稱為競爭;
由于競爭,從而在電路的輸出端可能產(chǎn)生尖峰脈沖的現(xiàn)象稱為冒險(xiǎn);
競爭不一定會(huì)產(chǎn)生冒險(xiǎn),但有冒險(xiǎn)就一定有競爭。
8.建立時(shí)間/保持時(shí)間
建立時(shí)間Tsu:觸發(fā)器在時(shí)鐘上升沿到來之前,其數(shù)據(jù)輸入端的數(shù)據(jù)必須保持不變的時(shí)間就稱為建立時(shí)間。
建立時(shí)間決定了該觸發(fā)器之間組合邏輯的最大延遲。
保持時(shí)間Th:觸發(fā)器在時(shí)鐘上升沿到來之后,其數(shù)據(jù)輸入端的數(shù)據(jù)必須保持不變的時(shí)間。
保持時(shí)間決定了該觸發(fā)器之間組合邏輯的最小延遲。
如果不滿足建立時(shí)間和保持時(shí)間,觸發(fā)器就會(huì)進(jìn)入亞穩(wěn)態(tài)。
9.亞穩(wěn)態(tài)
亞穩(wěn)態(tài),是因?yàn)檫`反寄存器的建立時(shí)間和保持時(shí)間而產(chǎn)生的。
如果信號(hào)在建立時(shí)間和保持時(shí)間這段時(shí)期發(fā)生變化,那么信號(hào)的輸出是未知的,這個(gè)未知的狀態(tài)便稱為亞穩(wěn)態(tài)。
解決方法:1)降低時(shí)鐘頻率;
? ? ? ? ? ? ? ? ? 2)使用兩級(jí)觸發(fā)器;
? ? ? ? ? ? ? ? ? 3)采用FIFO對(duì)跨時(shí)鐘域數(shù)據(jù)通信進(jìn)行緩沖;
? ? ? ? ? ? ? ? ? 4)對(duì)復(fù)位電路采用異步復(fù)位,同步釋放。
10.同步FIFO/異步FIFO
同步FIFO的寫時(shí)鐘和讀時(shí)鐘為同一個(gè)時(shí)鐘,內(nèi)部邏輯都是同步邏輯,常用于交互數(shù)據(jù)緩沖。
異步FIFO的寫時(shí)鐘和讀時(shí)鐘為異步時(shí)鐘(就是不是共用同一個(gè)時(shí)鐘),F(xiàn)IFO內(nèi)部的寫邏輯和讀邏輯的交互需要異步處理,異步FIFO常用于跨時(shí)鐘域交互。
11.有限狀態(tài)機(jī)FSM設(shè)計(jì)
1)一段式:整個(gè)狀態(tài)機(jī)寫到一個(gè)always模塊中,在該模塊中既描述狀態(tài)轉(zhuǎn)移,又描述狀態(tài)的輸入和輸出。
2)二段式:第一個(gè)always模塊采用同步時(shí)序描述狀態(tài)轉(zhuǎn)移(時(shí)序邏輯);第二個(gè)模塊采用組合邏輯判斷狀態(tài)轉(zhuǎn)移條件,描述狀態(tài)轉(zhuǎn)移規(guī)律以及輸出。
3)三段式:第一個(gè)always模塊采用同步時(shí)序(時(shí)序邏輯)來描述狀態(tài)轉(zhuǎn)移;一個(gè)always采用組合邏輯判斷狀態(tài)轉(zhuǎn)移條件,描述狀態(tài)轉(zhuǎn)移規(guī)律;一個(gè)always模塊用來描述狀態(tài)輸出。
12.PLL(鎖相環(huán))
鎖相環(huán)作為一種反饋控制電路,其特點(diǎn)是利用外部輸入的參考信號(hào)控制環(huán)路內(nèi)部震蕩信號(hào)的頻率和相位。
13.BRAM/DRAM
1)BRAM:由一定數(shù)量固定大小的存儲(chǔ)卡構(gòu)成,使用BRAM資源不占用額外的邏輯資源,且速度快。
2)DRAM:分布式RAM,可以實(shí)現(xiàn)BRAM不能實(shí)現(xiàn)的異步訪問。
14.SPI協(xié)議
SPI通訊設(shè)備的通訊模式是主從通訊模式,通訊雙方有主從之分。
可以分為一主一從或者一主多從。
SPI協(xié)議中沒有設(shè)備地址,它使用CS_N片選信號(hào)線來尋址,當(dāng)主機(jī)要選擇從設(shè)備時(shí),把該從設(shè)備的CS_N信號(hào)線設(shè)置為低電平,則該從設(shè)備被選中,即片選有效。
所以SPI通訊以CS_N線置低電平為開始信號(hào),以CS_N線被拉高作為結(jié)束信號(hào)。
柚子快報(bào)激活碼778899分享:FPGA面試總結(jié)(八股文)
好文鏈接
本文內(nèi)容根據(jù)網(wǎng)絡(luò)資料整理,出于傳遞更多信息之目的,不代表金鑰匙跨境贊同其觀點(diǎn)和立場。
轉(zhuǎn)載請(qǐng)注明,如有侵權(quán),聯(lián)系刪除。