FPGA設(shè)計的八個重要知識點_第1頁
FPGA設(shè)計的八個重要知識點_第2頁
FPGA設(shè)計的八個重要知識點_第3頁
FPGA設(shè)計的八個重要知識點_第4頁
FPGA設(shè)計的八個重要知識點_第5頁
已閱讀5頁,還剩3頁未讀 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

1、【W(wǎng)ord版本下載可任意編輯】 FPGA設(shè)計的八個重要知識點1.面積與速度的平衡與互換 這里的面積指一個設(shè)計消耗FPGA/CPLD的邏輯資源的數(shù)量,對于FPGA可以用消耗的FF(觸發(fā)器)和LUT(查找表)來衡量,更一般的衡量方式可以用設(shè)計所占的等價邏輯門數(shù)。 速度指設(shè)計在芯片上穩(wěn)定運行,所能到達的頻率,這個頻率由設(shè)計的時序狀況來決定,和設(shè)計滿足的時鐘要求,PAD to PAD time ,Clock Setup TIme,Clock Hold TIme,Clock-to-Output Delay等眾多時序特征量密切相關(guān)。 面積和速度這兩個指標貫穿FPGA/CPLD設(shè)計的時鐘,是設(shè)計質(zhì)量的評價的

2、標準。 面積和速度是一對對立統(tǒng)一的矛盾體。要求一個同事具備設(shè)計面積,運行頻率是不現(xiàn)實的。更科學的設(shè)計目標應該是在滿足設(shè)計時序要求(包括對設(shè)計頻率的要求)的前提下,占用的芯片面積?;蛘咴谒?guī)定的面積下,是設(shè)計的時序余量更大,頻率跑的更高。這兩種目標充分表達了面積和速度的平衡的思想。 作為矛盾的兩個組成部分,面積和速度的地位是不一樣的。相比之下,滿足時序、工作頻率的要求更重要一些,當兩者沖突時,采用速度優(yōu)先的準則。 從理論上講,如果一個設(shè)計時序余量較大,所能跑的速度遠遠高于設(shè)計要求,那么就通過功能模塊的復用來減少整個設(shè)計消耗的芯片面積,這就是用速度的優(yōu)勢換取面積的節(jié)約。反之,如果一個設(shè)計的時序要求

3、很高,普通方法達不到設(shè)計頻率,那么一般可以通過將數(shù)據(jù)流串并轉(zhuǎn)換,并行復制多個操作模塊,對整個設(shè)計采取乒乓操作和串并轉(zhuǎn)換的思想運行。 2.硬件原則 硬件原則主要針對HDL代碼編寫而言 Verilog 是采用了C語言形式的硬件的抽象,它的本質(zhì)作用在于描述硬件!它的終實現(xiàn)結(jié)果是芯片內(nèi)部的實際電路。所以評判一段HDL代碼的優(yōu)劣的終標準是:其描述并實現(xiàn)的硬件電路的性能。包括面積和速度兩個方面。評價一個設(shè)計的代碼水平較高,僅僅是說這個設(shè)計是由硬件想HDL代碼這種表現(xiàn)形式的轉(zhuǎn)換更加流暢、合理。而一個設(shè)計終性能,在更大程度上取決于設(shè)計工程師所設(shè)想的硬件實現(xiàn)方案的效率以及合理性。(HDL代碼僅僅是硬件設(shè)計的表達

4、形式之一) 初學者,片面追求代碼的整潔、簡短,是錯誤的。是與HDL的標準背道而馳的。正確的編碼方法,首先要做到對所需實現(xiàn)的硬件電路胸有成竹,對該部分的硬件的構(gòu)造和連接十分清晰,然后再用適當?shù)腍DL語句表達出來即可。 另外,Verilog作為一種HDL語言,是分層次的。系統(tǒng)級-算法級-存放器傳輸級-邏輯級-門級-開關(guān)級。 構(gòu)建優(yōu)先級樹會消耗大量的組合邏輯,所以如果能夠使用case的地方,盡量使用case代替ifelse 3.系統(tǒng)原則 系統(tǒng)原則包含兩個層次的含義:更高層面上看,是一個硬件系統(tǒng),一塊單板如何開展模塊花費和任務分配,什么樣的算法和功能適合放在FPGA里面實現(xiàn),什么樣的算法和功能適合放在

5、DSP,CPU里面實現(xiàn),以及FPGA的規(guī)模估算數(shù)據(jù)接口設(shè)計等。具體到FPGA設(shè)計就要對設(shè)計的全局有個宏觀上的合理安排,比方時鐘域,模塊復用,約束,面積,速度等問題。在系統(tǒng)上模塊的優(yōu)化為重要。 一般來說實時性要求高,頻率快的功能模塊適合FPGA實現(xiàn)。而FPGA和CPLD相比,更適合實現(xiàn)規(guī)模較大,頻率較高、存放器較多的設(shè)計。使用FPGA/CPLD設(shè)計時,應該對芯片內(nèi)部的各種底層硬件資源,和可用的設(shè)計資源有一個較深刻的認識。比方FPGA一般觸發(fā)器資源豐富,CPLD的組合邏輯資源更加豐富。FPGA/CPLD一般是由底層可編程硬件單元,BRAM,布線資源,可配置IO單元,時鐘資源等構(gòu)成。底層可編程硬件單

6、元一般由觸發(fā)器和查找表組成。Xilinx的底層可編程硬件資源較SLICE,由兩個FF和2個LUT構(gòu)成。Altera 的底層硬件資源叫LE,由1個FF和1個LUT構(gòu)成。 使用片內(nèi)RAN可以實現(xiàn)單口RAM,雙口RAM,同步、異步FIFO,ROM,CAM等常用單元模塊。 一般的FPGA系統(tǒng)規(guī)劃的簡化流程 4.同步設(shè)計原則 異步電路 電路的邏輯是用組合邏輯電路實現(xiàn)。比方異步的FIFO/RAM讀寫信號,地址譯碼等電路。電路的主要信號、輸出信號等并不依賴于任何一個時鐘性信號,不是由時鐘信號驅(qū)動FF產(chǎn)生的。 異步時序電路的缺點是容易產(chǎn)生毛刺。在布局布線后仿真和用邏輯分析儀觀測實際信號時,這種毛刺尤其明顯。

7、同步時序 電路的邏輯用各種各樣的觸發(fā)器實現(xiàn) 電路的主要信號、輸出信號都是由某個時鐘沿驅(qū)動觸發(fā)器產(chǎn)生出來的。 同步時序電路可以很好的防止毛刺。布局布線后仿真,和用邏輯分析儀采樣實際工作信號都沒有毛刺。 是否時序電路一定比異步電路使用更多的資源呢? 從單純的ASCI設(shè)計來看,大約需要7個門來實現(xiàn)一個D觸發(fā)器,而一個門即可實現(xiàn)一個2輸入與非門,所以一般來說,同步時序電路比異步電路占用更大的面積。(FPGA/CPLD中不同,主要是因為單元塊的計算方式) 如何實現(xiàn)同步時序電路的延時? 異步電路產(chǎn)生延時的一般方法是插入一個Buffer,兩級與非門等。這種延時調(diào)整手段是不適用同步時序設(shè)計思想的。首先要明確一

8、點HDL語法中的延時控制語法,是行為級的代碼描述,常用于仿真測試激勵,但是在電路綜合是會被忽略,并不能啟動延時作用。 同步時序電路的延時一般是通過時序控制完成的。換句話說,同步時序電路的延時被當做一個電路邏輯來設(shè)計。對于比較大的和特殊定時要求的延時,一般用高速時鐘產(chǎn)生一個計數(shù)器,通過計數(shù)器的計數(shù)控制延遲;對于比較小的延時,可以用D觸發(fā)器打一下,這種做法不僅僅使信號延時了一個時鐘周期,而且完成了信號與時鐘的初次同步,在輸入信號采樣和增加時序約束余量中使用。 同步時序電路的時鐘如何產(chǎn)生? 時鐘的質(zhì)量和穩(wěn)定性直接決定著同步時序電路的性能。 輸入信號的同步 同步時序電路要求對輸入信號開展同步化,如果輸

9、入數(shù)據(jù)的節(jié)拍和本級芯片的處理時鐘同頻,并且建立保持時間匹配,可以直接用本級芯片的主時鐘對輸入數(shù)據(jù)存放器采樣,完成輸入數(shù)據(jù)的同步化。如果輸入數(shù)據(jù)和本級芯片的處理時鐘是異步的,特別是頻率不匹配的時候,則要用處理時鐘對輸入數(shù)據(jù)做兩次存放器采樣,才能完成輸入數(shù)據(jù)的同步化。 是不是定義為Reg型,就一定綜合成存放器,并且是同步時序電路呢? 答案的否定的。Verilog中常用的兩種數(shù)據(jù)類型Wire和Reg,一般來說,Wire型指定書數(shù)據(jù)和網(wǎng)線通過組合邏輯實現(xiàn),而reg型指定的數(shù)據(jù)不一定就是用存放器實現(xiàn)。 5.乒乓操作 乒乓操作是一個常常應用于數(shù)據(jù)流控制的處理技巧。 FPGA設(shè)計的八個重要知識點 數(shù)據(jù)緩沖模

10、塊可以為任何的存儲模塊,比較常用的存儲模塊為雙口RAM(DPRAM),單口RAM(SPRAM),F(xiàn)IFO等。在等一個緩沖周期,將輸入的數(shù)據(jù)流緩存到數(shù)據(jù)緩存模塊1,在第二個緩沖周期,通過輸入數(shù)據(jù)流選擇單元,將輸入的數(shù)據(jù)流緩存到數(shù)據(jù)緩沖模塊2.乒乓操作的特點是,通過輸入數(shù)據(jù)選擇單元和輸出數(shù)據(jù)選擇單元,開展運算和處理。把乒乓操作模塊當成一個整體,站在兩端看數(shù)據(jù),輸入數(shù)據(jù)和輸出數(shù)據(jù)流都是連續(xù)不斷的,沒有任何停頓,因此非常適合對數(shù)據(jù)流開展流水線式處理。所以乒乓操作常常應用于流水線式算法,完成數(shù)據(jù)的無縫緩沖和處理。 乒乓操作的第二個優(yōu)點是可以節(jié)約緩沖區(qū)空間。比方在WCDMA基帶應用中,1幀是由15個時隙組

11、成的,有時需要將1整幀的數(shù)據(jù)延時一個時隙后處理,比較直接的方法就是將這幀數(shù)據(jù)緩存起來,然后延時一個時隙,開展處理。這時緩沖區(qū)的長度為1幀的數(shù)據(jù)長,假設(shè)數(shù)據(jù)速率是3.84Mb/s,1幀10ms,此時需要緩沖區(qū)的長度是38400bit,如果采用乒乓操作,只需定義兩個緩沖1時隙的數(shù)據(jù)RAM,當向一個RAM寫數(shù)據(jù)時,從另一塊RAM讀數(shù)據(jù),然后送到處理單元處理,此時每塊RAM的容量僅需2560bit,2塊加起來5120bit的容量。 巧妙的運用乒乓操作,還可以到達低速模塊處理高速數(shù)據(jù)流的效果。 FPGA設(shè)計的八個重要知識點 6.串并轉(zhuǎn)換 FPGA設(shè)計的八個重要知識點 7.流水線操作 流水線處理是高速設(shè)計

12、中一個常用的設(shè)計手段。如果某個設(shè)計的處理流程分為若干步驟,而且整個數(shù)據(jù)處理是單流向的。則可以考慮采用流水線設(shè)計方法提高系統(tǒng)的工作頻率。 FPGA設(shè)計的八個重要知識點 其基本構(gòu)造為:將適當劃分的n個操作步驟單流向串聯(lián)起來。流水線操作的特點和要求是,數(shù)據(jù)在各個步驟的處理,從時間上是連續(xù)的,如果將每個操作步驟簡化假設(shè)為一個通過D觸發(fā)器(就是用存放器打一個節(jié)拍),那么流水線操作就類似一個移位存放器組,數(shù)據(jù)流依次流經(jīng)D觸發(fā)器,完成每個步驟的操作。流水線設(shè)計時序圖如下: FPGA設(shè)計的八個重要知識點 流水線設(shè)計的關(guān)鍵在于,整個設(shè)計時序的合理安排。要求每個操作步驟的劃分合理。如果前級操作時間恰好等于后級操作時間,設(shè)計為簡單,前級的輸出直接匯入后級的輸入即可。如果前級操作時間大于后級操作時間,則需要開展適當緩存。如果前級操作時間小于后級操作時間,則必須通過復制邏輯,將數(shù)據(jù)流分流,或在前級對數(shù)據(jù)采用存儲、后處理的方式。否則會造成后級數(shù)據(jù)的溢出。 8.數(shù)據(jù)接口的同步方法 數(shù)據(jù)接口的同步在FPGA/CPLD設(shè)計中一個常見問題。很多設(shè)計工作不穩(wěn)定都是源于數(shù)據(jù)接口的同步問題。 1.輸入輸出的延時不可測,或者可能有變動,如何完成數(shù)據(jù)的同步? 對于數(shù)據(jù)延遲不可測或者變動,就需要建立同步機制。或者用一個同步使

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論