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

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

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

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

關(guān)于FPGA設(shè)計的幾項重要原則

C29F_xilinx_inc ? 來源:賽靈思 ? 作者:賽靈思 ? 2022-02-16 16:21 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

面積通常指一個設(shè)計消耗FPGA/CPLD的邏輯資源的數(shù)量,通常用可消耗的FF(觸發(fā)器)和LUT(查找表)來衡量。速度指設(shè)計在芯片上穩(wěn)定運(yùn)行所能達(dá)到的最高頻率,這個頻率由設(shè)計的時序狀況來決定,以及設(shè)計滿足的時鐘要求:PAD to PAD time 、Clock Setup Time、Clock Hold Time、Clock-to-Output Delay等眾多時序特征量密切相關(guān),具體示意圖如下圖所示:

pYYBAGIMpFmAQ6CkAAB6msrfeKQ093.png

要求同時具備設(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)則。

02. 硬件和系統(tǒng)原則

硬件原則主要針對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ù)腍DL語句表達(dá)出來即可。

系統(tǒng)原則包含兩個層次的含義:更高層面上看,是一個硬件系統(tǒng),一塊單板如何進(jìn)行模塊劃分和任務(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)識。

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

異步電路的邏輯核心是用組合邏輯電路實現(xiàn),比如異步的FIFO/RAM讀寫信號,地址譯碼等電路。電路的主要信號、輸出信號等并不依賴于任何一個時鐘性信號,不是由時鐘信號驅(qū)動FF產(chǎn)生的。異步時序電路的最大缺點是容易產(chǎn)生毛刺,毛刺產(chǎn)生的機(jī)理主要有爭和冒險導(dǎo)致毛刺、組合延時和布線延時不平衡導(dǎo)致譯碼輸出毛刺以及線間的信號耦合導(dǎo)致毛刺。具體如下圖所示:

pYYBAGIMpFuAYQiFAAFrAEeKxa8235.png

同步時序電路的核心邏輯是用各種各樣的觸發(fā)器實現(xiàn),電路的主要信號、輸出信號都是由某個時鐘沿驅(qū)動觸發(fā)器產(chǎn)生出來的。同步時序電路可以很好的避免毛刺。

同步時序電路的延時一般是通過時序控制完成的,換句話說,同步時序電路的延時被當(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)。

04. 乒乓操作及串并轉(zhuǎn)換設(shè)計

“ 乒乓操作 ”是一個常常應(yīng)用于數(shù)據(jù)流控制的處理技巧。乒乓操作的處理流程為:輸入數(shù)據(jù)流通過“ 輸入數(shù)據(jù)選擇單元 ”將數(shù)據(jù)流等時分配到兩個數(shù)據(jù)緩沖區(qū),數(shù)據(jù)緩沖模塊可以為任何存儲模塊,比較常用的存儲單元為雙口 RAM(DPRAM) 、單口 RAM(SPRAM) 、 FIFO 等。

在第一個緩沖周期,將輸入的數(shù)據(jù)流緩存到“ 數(shù)據(jù)緩沖模塊 1”;在第 2 個緩沖周期,通過“ 輸入數(shù)據(jù)選擇單元 ”的切換,將輸入的數(shù)據(jù)流緩存到“ 數(shù)據(jù)緩沖模塊 2”,同時將“ 數(shù)據(jù)緩沖模塊 1”緩存的第 1 個周期數(shù)據(jù)通過“ 輸入數(shù)據(jù)選擇單元 ”的選擇,送到“ 數(shù)據(jù)流運(yùn)算處理模塊 ”進(jìn)行運(yùn)算處理;在第 3 個緩沖周期通過“ 輸入數(shù)據(jù)選擇單元 ”的再次切換,將輸入的數(shù)據(jù)流緩存到“ 數(shù)據(jù)緩沖模塊 1”,同時將“ 數(shù)據(jù)緩沖模塊 2”緩存的第 2 個周期的數(shù)據(jù)通過“ 輸入數(shù)據(jù)選擇單元 ”切換,送到“ 數(shù)據(jù)流運(yùn)算處理模塊 ”進(jìn)行運(yùn)算處理。如此循環(huán)。

pYYBAGIMpF2AUbjDAADIS_rvBFQ518.png

典型的乒乓操作方法

乒乓操作的最大特點是,通過輸入數(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ùn)用乒乓操作還可以達(dá)到用低速模塊處理高速數(shù)據(jù)流的效果。如下圖所示:

pYYBAGIMpF6AFRaKAACCfE1Sqy8565.png

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

串并轉(zhuǎn)換是 FPGA 設(shè)計的一個重要技巧,它是數(shù)據(jù)流處理的常用手段,也是面積與速度互換思想的直接體現(xiàn)。串并轉(zhuǎn)換的實現(xiàn)方法多種多樣,根據(jù)數(shù)據(jù)的排序和數(shù)量的要求,可以選用寄存器、 RAM 等實現(xiàn)。

前面在乒乓操作的圖例中,就是通過 FIFO 實現(xiàn)了數(shù)據(jù)流的串并轉(zhuǎn)換,而且由于使用了 FIFO ,數(shù)據(jù)的緩沖區(qū)可以開得很大,對于數(shù)量比較小的設(shè)計可以采用寄存器完成串并轉(zhuǎn)換。如無特殊需求,應(yīng)該用同步時序設(shè)計完成串并之間的轉(zhuǎn)換。比如數(shù)據(jù)從串行到并行,數(shù)據(jù)排列順序是高位在前,可以用下面的編碼實現(xiàn):prl_temp

05. 流水線操作設(shè)計思想

流水線處理是高速設(shè)計中的一個常用設(shè)計手段。如果某個設(shè)計的處理流程分為若干步驟,而且整個數(shù)據(jù)處理是“ 單流向 ”的,即沒有反饋或者迭代運(yùn)算,前一個步驟的輸出是下一個步驟的輸入,則可以考慮采用流水線設(shè)計方法來提高系統(tǒng)的工作頻率。

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

poYBAGIMpGKAC5gIAAH-usPKKtk000.png

流水線設(shè)計的一個關(guān)鍵在于整個設(shè)計時序的合理安排,要求每個操作步驟的劃分合理。如果前級操作時間恰好等于后級的操作時間,設(shè)計最為簡單,前級的輸出直接匯入后級的輸入即可;如果前級操作時間大于后級的操作時間,則需要對前級的輸出數(shù)據(jù)適當(dāng)緩存才能匯入到后級輸入端;如果前級操作時間恰好小于后級的操作時間,則必須通過復(fù)制邏輯,將數(shù)據(jù)流分流,或者在前級對數(shù)據(jù)采用存儲、后處理方式,否則會造成后級數(shù)據(jù)溢出。
流水線處理方式之所以頻率較高,是因為復(fù)制了處理模塊,它是面積換取速度思想的又一種具體體現(xiàn)。

06. 異步時鐘處理原則

許多系統(tǒng)要求在同一設(shè)計內(nèi)采用多時鐘,最常見的例子是“兩個異步微處理器之間的接口”或“微處理器和異步通信通道的接口”。由于兩個時鐘信號之間要求一定的建立和保持時間, 所以上述應(yīng)用引進(jìn)了附加的定時約束條件, 它們會要求將某些異步信號同步化。

pYYBAGIMpGSAY3i3AACTgy3nixs005.png

如果一個系統(tǒng)中存在多個獨立(異步)時鐘,并且存在多時鐘域(clock domain)之間的信號傳輸,那么電路會出現(xiàn)亞穩(wěn)態(tài)。具體如下圖所示:

poYBAGIMpGaAcR7-AACwNOY_V78880.jpg

在許多應(yīng)用中只將異步信號同步化還是不夠的,當(dāng)系統(tǒng)中有兩個或兩個以上非同源時鐘的時候,數(shù)據(jù)的建立和保持時間很難得到保證,設(shè)計人員將面臨復(fù)雜的時間分析問題。最好的方法是將所有非同源時鐘同步化。這時就需要使用帶使能端的D觸發(fā)器, 并引入一個高頻時鐘來實現(xiàn)信號的同步化。具體如下圖所示:

pYYBAGIMpGiAQS1tAADMrTt4iKk094.png

07. 數(shù)據(jù)接口的同步原則

數(shù)據(jù)接口的同步是 FPGA/CPLD 設(shè)計的一個常見問題,也是一個重點和難點,很多設(shè)計不穩(wěn)定都是源于數(shù)據(jù)接口的同步有問題。輸入、輸出的延時 ( 芯片間、 PCB 布線、一些驅(qū)動接口元件的延時等 ) 不可測,或者有可能變動的條件下,如何完成數(shù)據(jù)同步?對于數(shù)據(jù)的延遲不可測或變動,就需要建立同步機(jī)制,可以用一個同步使能或同步指示信號。另外,使數(shù)據(jù)通過 RAM 或者 FIFO 的存取,也可以達(dá)到數(shù)據(jù)同步目的。

pYYBAGIMpGmAQMaiAADTwh4h-vY624.png

設(shè)計數(shù)據(jù)接口同步是否需要添加約束?建議最好添加適當(dāng)?shù)募s束,特別是對于高速設(shè)計,一定要對周期、建立、保持時間等添加相應(yīng)的約束。這里附加約束的作用有兩點:提高設(shè)計的工作頻率,滿足接口數(shù)據(jù)同步要求;獲得正確的時序分析報告。

08. 總 結(jié)

數(shù)字系統(tǒng)設(shè)計應(yīng)該明確如下觀點:

1. 無論是ASIC、FPGA還是DSP,都只是一種實現(xiàn)手段;

2. 無論采用哪種HDL或哪種開發(fā)工具,都不能單純從語言或工具本身作出評價;

3. 關(guān)鍵是看應(yīng)用環(huán)境,只有選擇最適合于應(yīng)用的實現(xiàn)方式和工具才是最好的設(shè)計方案;

4. 設(shè)計應(yīng)該注重硬件設(shè)計本身,只有先有了良好的設(shè)計,才可能有高效的描述和實現(xiàn)。

5. 數(shù)字模擬電路、HDL語言等知識和實際經(jīng)驗比了解軟件更重要。比如FPGA一般觸發(fā)器資源豐富,CPLD的組合邏輯資源更加豐富。FPGA/CPLD一般是由底層可編程硬件單元、BRAM、布線資源、可配置IO單元、時鐘資源等構(gòu)成。

?免責(zé)聲明:本文為網(wǎng)絡(luò)轉(zhuǎn)載文章,轉(zhuǎn)載此文目的在于傳播相關(guān)技術(shù)知識,版權(quán)歸原作者所有,如涉及侵權(quán),請聯(lián)系小編刪除(聯(lián)系郵箱:service@eetrend.com )。

審核編輯:符乾江

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

    關(guān)注

    1645

    文章

    22050

    瀏覽量

    618497
  • 設(shè)計
    +關(guān)注

    關(guān)注

    4

    文章

    822

    瀏覽量

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

掃碼添加小助手

加入工程師交流群

    評論

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

    是否有關(guān)于如何通過 I2C 總線上的 uProcessor 或 FPGA 與芯片通信的文檔?

    上的 uProcessor 或 FPGA 與芯片通信的文檔? 3. 關(guān)于我們 CAN 使用哪種芯片/系列的任何建議? 我們所關(guān)心的只是警局的回讀。
    發(fā)表于 05-29 06:13

    高速PCB布局/布線的原則

    目錄:一、布線的一般原則1、PCB板知識2、5-5原則3、20H原則4、3W/4W/10W原則(W:Width)5、重疊電源與地線層規(guī)則6、1/4波長規(guī)則7、芯片引腳布線二、信號走線下
    的頭像 發(fā)表于 05-28 19:34 ?1180次閱讀
    高速PCB布局/布線的<b class='flag-5'>原則</b>

    FPGA芯片選型的核心原則

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

    知識點積累——什么是3W原則和20H原則

    在繪制高速板卡時,經(jīng)常會聽到工程師們提到3W原則和20H原則,今天來和大伙簡單的聊一下這兩個原則! 3W原則3W原則概念:相鄰信號線的中心
    發(fā)表于 04-16 11:18

    當(dāng)我問DeepSeek AI爆發(fā)時代的FPGA是否重要?答案是......

    在AI時代,FPGA(現(xiàn)場可編程門陣列)具有極其重要的地位,主要體現(xiàn)在以下幾個方面: 1.硬件加速與高效能 ? 并行處理能力:FPGA內(nèi)部由大量可編程邏輯單元組成,能夠?qū)崿F(xiàn)高度并行的數(shù)據(jù)處理。這種
    發(fā)表于 02-19 13:55

    熔斷器式隔離開關(guān)的選型原則及注意事項

    熔斷器式隔離開關(guān)的選型原則及注意事項對于確保電力系統(tǒng)的安全穩(wěn)定運(yùn)行至關(guān)重要。
    的頭像 發(fā)表于 01-29 14:16 ?1139次閱讀

    請問為ADC選Driver主要要看哪幾項技術(shù)指標(biāo)呢?

    to 20-Bit, Differential, High-Speed SAR Drivers,這時說THS4561就不適合做Delta-Sigma (ΔΣ) ADC Drivers嗎?請問為ADC選Driver主要要看哪幾項技術(shù)指標(biāo)呢?
    發(fā)表于 12-16 06:00

    AMC1306的輸出數(shù)據(jù)是以曼徹斯特碼的形式輸出,處理曼徹斯特碼的時候應(yīng)該以什么原則處理?

    AMC1306的輸出數(shù)據(jù)是以曼徹斯特碼的形式輸出,處理曼徹斯特碼的時候應(yīng)該以什么原則處理? 我第一時間想看看amc1306工作是否正常,輸入段加了50mv的電壓信號,輸出的16bit的值如何換算
    發(fā)表于 12-10 08:44

    詳解SMT工藝的五球原則

    SMT(表面貼裝技術(shù))工藝中的五球原則,是工程師在選擇焊膏時的一個重要指導(dǎo)原則,它確保了焊接的可靠性和質(zhì)量。以下是對五球原則的詳細(xì)解釋:
    的頭像 發(fā)表于 12-04 09:11 ?670次閱讀
    詳解SMT工藝的五球<b class='flag-5'>原則</b>

    淺析FPGA重要用途

    FPGA 允許在單個芯片中實現(xiàn)大量數(shù)字邏輯,其運(yùn)行速度相對較高,并且只需很少或不需要在 CPU 內(nèi)核上運(yùn)行的傳統(tǒng)順序程序即可完成其工作。
    的頭像 發(fā)表于 11-05 15:49 ?2081次閱讀
    淺析<b class='flag-5'>FPGA</b>的<b class='flag-5'>重要</b>用途

    求助,關(guān)于TLV320AIC3106濾波器配置有一些疑問求解

    關(guān)于TLV320AIC3106濾波器配置有一些疑問,如附件公式中N3 N4 N5和D4 D5在寄存器里面沒用明確怎么配置。用TIBQ配置寄存器的時候也沒有這幾項參數(shù),哪位大蝦能幫忙解釋一下呢?謝謝!
    發(fā)表于 11-04 06:22

    PCB上設(shè)置測試點的基本原則

    線路板PCB測試點設(shè)置的原則是確保測試的準(zhǔn)確性和高效性,同時避免對PCB板造成不必要的損害。以下是一些關(guān)鍵的設(shè)置原則
    的頭像 發(fā)表于 10-22 10:57 ?2155次閱讀

    連接器選型的幾項基本原則

    在連接器的領(lǐng)域連接器的選型是每個連接器人都必須要經(jīng)歷的事情,在連接器選型的道路上有很多需要注意的東西,稍有不慎就會導(dǎo)致最終選擇的連接器無法投入使用。蓬生電子給大家整理了連接器選型的幾項基本原則,來
    的頭像 發(fā)表于 10-17 17:29 ?816次閱讀

    差動保護(hù)動作電流整定原則

    差動保護(hù)動作電流整定原則涉及多個方面,以下是對該原則的介紹: 一、基本原則 對稱性原則 :差動保護(hù)動作電流應(yīng)該在正、負(fù)序電流及零序電流相等時啟動。這樣差動保護(hù)在正常工作時不至于誤動作,
    的頭像 發(fā)表于 10-08 15:45 ?2286次閱讀

    電源空載電壓的確定應(yīng)遵循的原則是什么

    的確定對于電源的性能和穩(wěn)定性至關(guān)重要。本文將詳細(xì)介紹電源空載電壓的確定原則。 2. 電源的基本概念 在討論電源空載電壓的確定原則之前,我們首先需要了解電源的基本概念。 2.1 電源的定義 電源是一種將其他形式的能量轉(zhuǎn)換為電能的設(shè)
    的頭像 發(fā)表于 08-08 14:28 ?2239次閱讀