99精品伊人亚洲|最近国产中文炮友|九草在线视频支援|AV网站大全最新|美女黄片免费观看|国产精品资源视频|精彩无码视频一区|91大神在线后入|伊人终合在线播放|久草综合久久中文

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

FPGA設(shè)計原則總結(jié)

FPGA之家 ? 來源:FPGA之家 ? 2023-05-04 17:52 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

1.面積與速度的平衡與互換

這里的面積指一個設(shè)計消耗 FPGA/CPLD 的邏輯資源的數(shù)量,對于 FPGA 可以用消耗的 FF(觸發(fā)器)和 LUT(查找表)來衡量,更一般的衡量方式可以用設(shè)計所占的等價邏輯門數(shù)。

速度指設(shè)計在芯片上穩(wěn)定運(yùn)行,所能達(dá)到的最高頻率,這個頻率由設(shè)計的時序狀況來決定,和設(shè)計滿足的時鐘要求,PAD to PAD time ,clock Setup TIme,Clock Hold TIme,Clock-to-Output Delay 等眾多時序特征量密切相關(guān)。

面積和速度這兩個指標(biāo)貫穿 FPGA/CPLD 設(shè)計的時鐘,是設(shè)計質(zhì)量的評價的終極標(biāo)準(zhǔn)。

面積和速度是一對對立統(tǒng)一的矛盾體。要求一個同事具備設(shè)計面積最小,運(yùn)行頻率最高是不現(xiàn)實的。更科學(xué)的設(shè)計目標(biāo)應(yīng)該是在滿足設(shè)計時序要求(包括對設(shè)計頻率的要求)的前提下,占用最小的芯片面積。或者在所規(guī)定的面積下,是設(shè)計的時序余量更大,頻率跑的更高。這兩種目標(biāo)充分體現(xiàn)了面積和速度的平衡的思想。

作為矛盾的兩個組成部分,面積和速度的地位是不一樣的。相比之下,滿足時序、工作頻率的要求更重要一些,當(dāng)兩者沖突時,采用速度優(yōu)先的準(zhǔn)則。

從理論上講,如果一個設(shè)計時序余量較大,所能跑的速度遠(yuǎn)遠(yuǎn)高于設(shè)計要求,那么就通過功能模塊的復(fù)用來減少整個設(shè)計消耗的芯片面積,這就是用速度的優(yōu)勢換取面積的節(jié)約。反之,如果一個設(shè)計的時序要求很高,普通方法達(dá)不到設(shè)計頻率,那么一般可以通過將數(shù)據(jù)流串并轉(zhuǎn)換,并行復(fù)制多個操作模塊,對整個設(shè)計采取乒乓操作和串并轉(zhuǎn)換的思想運(yùn)行。

2. 硬件原則

硬件原則主要針對 HDL 代碼編寫而言

Verilog 是采用了 C 語言形式的硬件的抽象,它的本質(zhì)作用在于描述硬件!它的最終實現(xiàn)結(jié)果是芯片內(nèi)部的實際電路。所以評判一段 HDL 代碼的優(yōu)劣的最終標(biāo)準(zhǔn)是:其描述并實現(xiàn)的硬件電路的性能。包括面積和速度兩個方面。評價一個設(shè)計的代碼水平較高,僅僅是說這個設(shè)計是由硬件想 HDL 代碼這種表現(xiàn)形式的轉(zhuǎn)換更加流暢、合理。而一個設(shè)計最終性能,在更大程度上取決于設(shè)計工程師所構(gòu)想的硬件實現(xiàn)方案的效率以及合理性。(HDL 代碼僅僅是硬件設(shè)計的表達(dá)形式之一)

初學(xué)者,片面追求代碼的整潔、簡短,是錯誤的。是與 HDL 的標(biāo)準(zhǔn)背道而馳的。正確的編碼方法,首先要做到對所需實現(xiàn)的硬件電路胸有成竹,對該部分的硬件的結(jié)構(gòu)和連接十分清晰,然后再用適當(dāng)?shù)?HDL 語句表達(dá)出來即可。

另外,Verilog 作為一種 HDL 語言,是分層次的。系統(tǒng)級 -- 算法級 -- 寄存器傳輸級 -- 邏輯級 -- 門級 -- 開關(guān)級。

構(gòu)建優(yōu)先級樹會消耗大量的組合邏輯,所以如果能夠使用 case 的地方,盡量使用 case 代替 IF.....else......

3. 系統(tǒng)原則

系統(tǒng)原則包含兩個層次的含義:更高層面上看,是一個硬件系統(tǒng),一塊單板如何進(jìn)行模塊花費(fèi)和任務(wù)分配,什么樣的算法和功能適合放在 FPGA 里面實現(xiàn),什么樣的算法和功能適合放在 DSP,CPU 里面實現(xiàn),以及 FPGA 的規(guī)模估算數(shù)據(jù)接口設(shè)計等。具體到 FPGA 設(shè)計就要對設(shè)計的全局有個宏觀上的合理安排,比如時鐘域,模塊復(fù)用,約束,面積,速度等問題。在系統(tǒng)上模塊的優(yōu)化最為重要。

一般來說實時性要求高,頻率快的功能模塊適合 FPGA 實現(xiàn)。而 FPGA 和 CPLD 相比,更適合實現(xiàn)規(guī)模較大,頻率較高、寄存器較多的設(shè)計。使用 FPGA/CPLD 設(shè)計時,應(yīng)該對芯片內(nèi)部的各種底層硬件資源,和可用的設(shè)計資源有一個較深刻的認(rèn)識。比如 FPGA 一般觸發(fā)器資源豐富,CPLD 的組合邏輯資源更加豐富。FPGA/CPLD 一般是由底層可編程硬件單元,BRAM,布線資源,可配置 IO 單元,時鐘資源等構(gòu)成。底層可編程硬件單元一般由觸發(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ī)劃的簡化流程

20da3b86-e6ea-11ed-ab56-dac502259ad0.jpg

20f68f98-e6ea-11ed-ab56-dac502259ad0.jpg

4. 同步設(shè)計原則

異步電路

電路的邏輯核心是用組合邏輯電路實現(xiàn)。比如異步的 FIFO/RAM 讀寫信號,地址譯碼等電路。電路的主要信號、輸出信號等并不依賴于任何一個時鐘性信號,不是由時鐘信號驅(qū)動 FF 產(chǎn)生的。

異步時序電路的最大缺點(diǎn)是容易產(chǎn)生毛刺。在布局布線后仿真和用邏輯分析儀觀測實際信號時,這種毛刺尤其明顯。

同步時序

電路的核心邏輯用各種各樣的觸發(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è)計思想的。首先要明確一點(diǎn) HDL 語法中的延時控制語法,是行為級的代碼描述,常用于仿真測試激勵,但是在電路綜合是會被忽略,并不能啟動延時作用。

同步時序電路的延時一般是通過時序控制完成的。換句話說,同步時序電路的延時被當(dāng)做一個電路邏輯來設(shè)計。對于比較大的和特殊定時要求的延時,一般用高速時鐘產(chǎn)生一個計數(shù)器,通過計數(shù)器的計數(shù)控制延遲;對于比較小的延時,可以用 D 觸發(fā)器打一下,這種做法不僅僅使信號延時了一個時鐘周期,而且完成了信號與時鐘的初次同步,在輸入信號采樣和增加時序約束余量中使用。

同步時序電路的時鐘如何產(chǎn)生?

時鐘的質(zhì)量和穩(wěn)定性直接決定著同步時序電路的性能。

輸入信號的同步

同步時序電路要求對輸入信號進(jìn)行同步化,如果輸入數(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. 乒乓操作

乒乓操作是一個常常應(yīng)用于數(shù)據(jù)流控制的處理技巧。

210079c2-e6ea-11ed-ab56-dac502259ad0.png

數(shù)據(jù)緩沖模塊可以為任何的存儲模塊,比較常用的存儲模塊為雙口 RAM(DPRAM),單口 RAM(SPRAM),F(xiàn)IFO 等。在等一個緩沖周期,將輸入的數(shù)據(jù)流緩存到數(shù)據(jù)緩存模塊 1,在第二個緩沖周期,通過輸入數(shù)據(jù)流選擇單元,將輸入的數(shù)據(jù)流緩存到數(shù)據(jù)緩沖模塊 2. 乒乓操作的最大特點(diǎn)是,通過輸入數(shù)據(jù)選擇單元和輸出數(shù)據(jù)選擇單元,進(jìn)行運(yùn)算和處理。把乒乓操作模塊當(dāng)成一個整體,站在兩端看數(shù)據(jù),輸入數(shù)據(jù)和輸出數(shù)據(jù)流都是連續(xù)不斷的,沒有任何停頓,因此非常適合對數(shù)據(jù)流進(jìn)行流水線式處理。所以乒乓操作常常應(yīng)用于流水線式算法,完成數(shù)據(jù)的無縫緩沖和處理。

乒乓操作的第二個優(yōu)點(diǎn)是可以節(jié)約緩沖區(qū)空間。比如在 wcdma 基帶應(yīng)用中,1 幀是由 15 個時隙組成的,有時需要將 1 整幀的數(shù)據(jù)延時一個時隙后處理,比較直接的方法就是將這幀數(shù)據(jù)緩存起來,然后延時一個時隙,進(jìn)行處理。這時緩沖區(qū)的長度為 1 幀的數(shù)據(jù)長,假設(shè)數(shù)據(jù)速率是 3.84Mb/s,1 幀 10ms,此時需要緩沖區(qū)的長度是 38400bit,如果采用乒乓操作,只需定義兩個緩沖 1 時隙的數(shù)據(jù) RAM,當(dāng)向一個 RAM 寫數(shù)據(jù)時,從另一塊 RAM 讀數(shù)據(jù),然后送到處理單元處理,此時每塊 RAM 的容量僅需 2560bit,2 塊加起來 5120bit 的容量。

巧妙的運(yùn)用乒乓操作,還可以達(dá)到低速模塊處理高速數(shù)據(jù)流的效果。

210ca2c4-e6ea-11ed-ab56-dac502259ad0.png

6. 串并轉(zhuǎn)換

2115b51c-e6ea-11ed-ab56-dac502259ad0.jpg

7. 流水線操作

流水線處理是高速設(shè)計中一個常用的設(shè)計手段。如果某個設(shè)計的處理流程分為若干步驟,而且整個數(shù)據(jù)處理是單流向的。則可以考慮采用流水線設(shè)計方法提高系統(tǒng)的工作頻率。

21264abc-e6ea-11ed-ab56-dac502259ad0.png

其基本結(jié)構(gòu)為:將適當(dāng)劃分的 n 個操作步驟單流向串聯(lián)起來。流水線操作的最大特點(diǎn)和要求是,數(shù)據(jù)在各個步驟的處理,從時間上是連續(xù)的,如果將每個操作步驟簡化假設(shè)為一個通過 D 觸發(fā)器(就是用寄存器打一個節(jié)拍),那么流水線操作就類似一個移位寄存器組,數(shù)據(jù)流依次流經(jīng) D 觸發(fā)器,完成每個步驟的操作。流水線設(shè)計時序圖如下:

212f96ee-e6ea-11ed-ab56-dac502259ad0.jpg

流水線設(shè)計的關(guān)鍵在于,整個設(shè)計時序的合理安排。要求每個操作步驟的劃分合理。如果前級操作時間恰好等于后級操作時間,設(shè)計最為簡單,前級的輸出直接匯入后級的輸入即可。如果前級操作時間大于后級操作時間,則需要進(jìn)行適當(dāng)緩存。如果前級操作時間小于后級操作時間,則必須通過復(fù)制邏輯,將數(shù)據(jù)流分流,或在前級對數(shù)據(jù)采用存儲、后處理的方式。否則會造成后級數(shù)據(jù)的溢出。

8. 數(shù)據(jù)接口的同步方法

數(shù)據(jù)接口的同步在 FPGA/CPLD 設(shè)計中一個常見問題。很多設(shè)計工作不穩(wěn)定都是源于數(shù)據(jù)接口的同步問題。

1. 輸入輸出的延時不可測,或者可能有變動,如何完成數(shù)據(jù)的同步?

對于數(shù)據(jù)延遲不可測或者變動,就需要建立同步機(jī)制。或者用一個同步使能,或者同步指示信號。另外使數(shù)據(jù)通過 RAM 或者 FIFO 的存取,也可以達(dá)到數(shù)據(jù)同步的目的。

把數(shù)據(jù)存放在 RAM 或 FIFO 的方法如下,將上級芯片提供的數(shù)據(jù)隨路時鐘作為寫信號,將數(shù)據(jù)寫入 RAM 或者 FIFO,然后使用本級時鐘的采樣時鐘(一般是數(shù)據(jù)處理的主時鐘),將數(shù)據(jù)讀出來即可。這種做法的關(guān)鍵是數(shù)據(jù)寫入 RAM 或者 FIFO 要可靠,如果使用同步 RAM 或者 FIFO,就要求有一個與數(shù)據(jù)延遲相對關(guān)系固定的隨路指示信號。

213c6f7c-e6ea-11ed-ab56-dac502259ad0.jpg

審核編輯:湯梓紅

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • fifo
    +關(guān)注

    關(guān)注

    3

    文章

    402

    瀏覽量

    44821
  • Verilog
    +關(guān)注

    關(guān)注

    29

    文章

    1367

    瀏覽量

    112297
  • HDL
    HDL
    +關(guān)注

    關(guān)注

    8

    文章

    330

    瀏覽量

    48061
  • C語言
    +關(guān)注

    關(guān)注

    180

    文章

    7632

    瀏覽量

    141791
  • 觸發(fā)器
    +關(guān)注

    關(guān)注

    14

    文章

    2039

    瀏覽量

    62146

原文標(biāo)題:FPGA設(shè)計原則總結(jié)

文章出處:【微信號:zhuyandz,微信公眾號:FPGA之家】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關(guān)推薦
    熱點(diǎn)推薦

    FPGA設(shè)計總結(jié)十五條

    FPGA設(shè)計總結(jié)十五條 1、硬件設(shè)計基本原則(1)速度與面積平衡和互換原則:一個設(shè)計如果時序余量較大,所能跑的頻率遠(yuǎn)高于設(shè)計要求,能可以通過模塊復(fù)用來減少整個設(shè)計消耗的芯片面積,這就是
    發(fā)表于 09-01 10:44

    分享:FPGA設(shè)計原則總結(jié)

    ,ROM,CAM 等常用單元模塊。 一般的 FPGA 系統(tǒng)規(guī)劃的簡化流程 4. 同步設(shè)計原則異步電路 電路的邏輯核心是用組合邏輯電路實現(xiàn)。比如異步的 FIFO/RAM 讀寫信號,地址譯碼等電路。電路
    發(fā)表于 01-01 08:00

    FPGA設(shè)計的驗證技術(shù)及應(yīng)用原則是什么

    時序仿真的重要性是什么傳統(tǒng)的FPGA驗證方法是什么FPGA設(shè)計的驗證技術(shù)及應(yīng)用原則是什么
    發(fā)表于 05-08 09:05

    FPGA時鐘的設(shè)計原則有哪些

    (12)FPGA時鐘設(shè)計原則1.1 目錄1)目錄2)FPGA簡介3)Verilog HDL簡介4)FPGA時鐘設(shè)計原則5)結(jié)語1.2
    發(fā)表于 02-23 07:08

    FPGA設(shè)計的指導(dǎo)原則

    FPGA設(shè)計的指導(dǎo)原則:這里“面積”指一個設(shè)計消耗FPGA/CPLD 的邏輯資源的數(shù)量,對于FPGA 可以用所消耗的觸發(fā)器(FF)和查找表(LUT)來衡量,更一般的衡量方式可以用設(shè)計所
    發(fā)表于 01-11 09:01 ?107次下載

    FPGA高速收發(fā)器設(shè)計原則

    FPGA高速收發(fā)器設(shè)計原則 高速收發(fā)器(SERDES)的運(yùn)用范圍十分廣泛, 包括通訊、計算機(jī)、工業(yè)和儲存,以及必須在芯片與
    發(fā)表于 04-07 22:26 ?1158次閱讀

    FPGA芯片選擇策略和原則

    FPGA芯片選擇策略和原則 由于FPGA具備設(shè)計靈活、可以重復(fù)編程的優(yōu)點(diǎn),因此在電子產(chǎn)品設(shè)計領(lǐng)域得到了越來越廣泛的應(yīng)用。在工程項目或者產(chǎn)品設(shè)計
    發(fā)表于 02-09 09:13 ?3313次閱讀

    FPGA設(shè)計的指導(dǎo)原則

    FPGA的基本設(shè)計原則,基本設(shè)計思想,基本操作技巧,常用模塊。如果大家有意識的用這些原則方法指導(dǎo)日后的的工作,那么會達(dá)到事半功倍
    發(fā)表于 02-18 11:53 ?1次下載

    FPGA學(xué)習(xí)總結(jié)[經(jīng)典推薦]

    單片機(jī)(Microcontrollers)學(xué)習(xí),FPGA學(xué)習(xí)總結(jié)[經(jīng)典推薦],感興趣的小伙伴可以瞧一瞧。
    發(fā)表于 11-03 15:15 ?155次下載

    PCB設(shè)計原則總結(jié)

    PCB設(shè)計原則總結(jié)
    發(fā)表于 12-20 23:00 ?0次下載

    FPGA電路必須遵循的原則和技巧

    在調(diào)試FPGA電路時要遵循必須的原則和技巧,才能降低調(diào)試時間,防止誤操作損壞電路。通常情況下,能夠參考以下步驟執(zhí)行 FPGA硬件系統(tǒng)的調(diào)試。
    發(fā)表于 02-11 16:18 ?859次閱讀
    <b class='flag-5'>FPGA</b>電路必須遵循的<b class='flag-5'>原則</b>和技巧

    FPGA的指導(dǎo)性原則詳細(xì)資料說明

    這一部分主要介紹 FPGA/CPLD設(shè)計的指導(dǎo)性原則,如FPGA設(shè)計的基本原則、基本設(shè)計思想、基本操作技巧、常用模塊等。 FPGA/CPLD
    發(fā)表于 01-20 15:17 ?26次下載
    <b class='flag-5'>FPGA</b>的指導(dǎo)性<b class='flag-5'>原則</b>詳細(xì)資料說明

    (12)FPGA時鐘設(shè)計原則

    (12)FPGA時鐘設(shè)計原則1.1 目錄1)目錄2)FPGA簡介3)Verilog HDL簡介4)FPGA時鐘設(shè)計原則5)結(jié)語1.2
    發(fā)表于 12-29 19:41 ?17次下載
    (12)<b class='flag-5'>FPGA</b>時鐘設(shè)計<b class='flag-5'>原則</b>

    FPGA速度-面積互換原則設(shè)計

    速度-面積互換原則是貫穿FPGA設(shè)計的重要原則:速度是指工程穩(wěn)定運(yùn)行所能達(dá)到的最高時鐘頻率,通常決定了FPGA內(nèi)部寄存器的運(yùn)行時序;面積是指工程運(yùn)行所消耗的資源數(shù)量,通常包括觸發(fā)器
    的頭像 發(fā)表于 06-09 09:36 ?2253次閱讀
    <b class='flag-5'>FPGA</b>速度-面積互換<b class='flag-5'>原則</b>設(shè)計

    FPGA芯片選型的核心原則

    本文總結(jié)FPGA選型的核心原則和流程,旨在為設(shè)計人員提供決策依據(jù),確保項目成功。
    的頭像 發(fā)表于 04-30 10:58 ?576次閱讀