當前位置:首頁 > 公眾號精選 > 嵌入式微處理器
[導讀]1. 面積與速度的平衡與互換 這里的面積指一個設計消耗FPGA/CPLD的邏輯資源的數(shù)量,對于FPGA可以用消耗的FF(觸發(fā)器)和LUT(查找表)來衡量,更一般的衡量方式可以用設計所占的等價邏輯門數(shù)。 速度指設計在芯片上穩(wěn)定運行所能達到的最高頻率,這個頻率由設計



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


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

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

面積和速度這兩個指標貫穿FPGA/CPLD設計的時鐘,是設計質(zhì)量的評價的終極標準 ——  面積和速度是一對對立統(tǒng)一的矛盾體。

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

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

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

2. 硬件原則


硬件原則主要針對HDL代碼編寫而言:Verilog是采用了C語言形式的硬件的抽象,它的本質(zhì)作用在于描述硬件,它的最終實現(xiàn)結(jié)果是芯片內(nèi)部的實際電路。所以評判一段HDL代碼的優(yōu)劣的最終標準是:其描述并實現(xiàn)的硬件電路的性能,包括面積和速度兩個方面。

評價一個設計的代碼水平較高,僅僅是說這個設計是由硬件想HDL代碼這種表現(xiàn)形式的轉(zhuǎn)換更加流暢、合理。 而一個設計最終性能,在更大程度上取決于設計工程師所構(gòu)想的硬件實現(xiàn)方案的效率以及合理性。 (HDL代碼僅僅是硬件設計的表達形式之一)

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

另外,Verilog作為一種HDL語言,是分層次的。系統(tǒng)級--算法級--寄存器傳輸級--邏輯級--門級-- 開關(guān) 級。構(gòu)建優(yōu)先級樹會消耗大量的組合邏輯,所以如果能夠使用case的地方,盡量使用case代替if.....else......

  


3. 系統(tǒng)原則


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

一般來說實時性要求高,頻率快的功能模塊適合FPGA實現(xiàn)。 而FPGA和CPLD相比,更適合實現(xiàn)規(guī)模較大、頻率較高、寄存器較多的設計。 使用FPGA/CPLD設計時,應該對芯片內(nèi)部的各種底層硬件資源,和可用的設計資源有一個較深刻的認識。

比如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ī)劃的簡化流程



4. 同步設計原則


異步電路的邏輯核心是用組合邏輯電路實現(xiàn),比如異步的FIFO/RAM讀寫信號,地址譯碼等電路。電路的主要信號、輸出信號等并不依賴于任何一個時鐘性信號,不是由時鐘信號驅(qū)動FF產(chǎn)生的。異步時序電路的最大缺點是容易產(chǎn)生毛刺,在布局布線后仿真和用邏輯分析儀觀測實際信號時,這種毛刺尤其明顯。

同步時序電路的核心邏輯用各種各樣的觸發(fā)器實現(xiàn),電路的主要信號、輸出信號都是由某個時鐘沿驅(qū)動觸發(fā)器產(chǎn)生出來的。同步時序電路可以很好的避免毛刺,布局布線后仿真,和用 邏輯分析儀 采樣實際工作信號都沒有毛刺。

  • 是否時序電路一定比異步電路使用更多的資源呢? 從單純的ASCI設計來看,大約需要7個門來實現(xiàn)一個D觸發(fā)器,而一個門即可實現(xiàn)一個2輸入與非門,所以一般來說,同步時序電路比異步電路占用更大的面積。 (FPGA/CPLD中不同,主要是因為單元塊的計算方式)

  • 如何實現(xiàn)同步時序電路的延時? 異步電路產(chǎn)生延時的一般方法是插入一個Buffer、兩級與非門等, 這種延時調(diào)整手段是不適用同步時序設計思想的。 首先要明確一點HDL語法中的延時控制語法,是行為級的代碼描述,常用于仿真測試激勵,但是在電路綜合是會被忽略,并不能啟動延時作用。


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


  • 同步時序電路的時鐘如何產(chǎn)生? 時鐘的質(zhì)量和穩(wě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. 乒乓操作


“ 乒乓操作 ” 是一個常常應用于數(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ù)流運算處理模塊 ” 進行運算處理;在第 3 個緩沖周期通過 “ 輸入數(shù)據(jù)選擇單元 ” 的再次切換,將輸入的數(shù)據(jù)流緩存到 “ 數(shù)據(jù)緩沖模塊 1” ,同時將 “ 數(shù)據(jù)緩沖模塊 2” 緩存的第 2 個周期的數(shù)據(jù)通過 “ 輸入數(shù)據(jù)選擇單元 ” 切換,送到 “ 數(shù)據(jù)流運算處理模塊 ” 進行運算處理。如此循環(huán)。



典型的乒乓操作方法

乒乓操作的最大特點是,通過輸入數(shù)據(jù)選擇單元和輸出數(shù)據(jù)選擇單元、進行運算和處理。 把乒乓操作模塊當成一個整體,站在兩端看數(shù)據(jù),輸入數(shù)據(jù)和輸出數(shù)據(jù)流都是連續(xù)不斷的,沒有任何停頓,因此非常適合對數(shù)據(jù)流進行流水線式處理。所以乒乓操作常常應用于流水線式算法,完成數(shù)據(jù)的無縫緩沖和處理。
  
乒乓操作的第二個優(yōu)點是可以節(jié)約緩沖區(qū)空間。比如在WCDMA基帶應用中,1幀是由15個時隙組成的,有時需要將1整幀的數(shù)據(jù)延時一個時隙后處理,比較直接的方法就是將這幀數(shù)據(jù)緩存起來,然后延時一個時隙,進行處理。這時緩沖區(qū)的長度為1幀的數(shù)據(jù)長,假設數(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ù)流

另外,巧妙運用乒乓操作還可以達到用低速模塊處理高速數(shù)據(jù)流的效果。如圖 2 所示,數(shù)據(jù)緩沖模塊采用了雙口 RAM ,并在 DPRAM 后引入了一級數(shù)據(jù)預處理模塊,這個數(shù)據(jù)預處理可以根據(jù)需要的各種數(shù)據(jù)運算,比如在 WCDMA 設計中,對輸入數(shù)據(jù)流的解擴、解擾、去旋轉(zhuǎn)等。假設端口 A 的輸入數(shù)據(jù)流的速率為 100Mbps ,乒乓操作的緩沖周期是 10ms 。



6. 串并轉(zhuǎn)換設計技巧


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

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

其中, prl_temp 是并行輸出緩存寄存器, srl_in 是串行數(shù)據(jù)輸入。 對于排列順序有規(guī)定的串并轉(zhuǎn)換,可以用 case 語句判斷實現(xiàn)。 對于復雜的串并轉(zhuǎn)換,還可以用狀態(tài)機實現(xiàn)。 串并轉(zhuǎn)換的方法比較簡單,在此不必贅述。



7. 流水線操作設計思想


首先需要聲明的是,這里所講述的流水線是指一種處理流程和順序操作的設計思想,并非 FPGA 、 ASIC 設計中優(yōu)化時序所用的 “Pipelining” 。

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



流水線設計的結(jié)構(gòu)

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



流水線設計時序

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

在 WCDMA 設計中經(jīng)常使用到流水線處理的方法,如 RAKE 接收機、搜索器、前導捕獲等。流水線處理方式之所以頻率較高,是因為復制了處理模塊,它是面積換取速度思想的又一種具體體現(xiàn)。



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


數(shù)據(jù)接口的同步是 FPGA/CPLD 設計的一個常見問題,也是一個重點和難點,很多設計不穩(wěn)定都是源于數(shù)據(jù)接口的同步有問題。在電路圖設計階段,一些工程師手工加入 BUFT 或者非門調(diào)整數(shù)據(jù)延遲,從而保證本級模塊的時鐘對上級模塊數(shù)據(jù)的建立、保持時間要求。

還有一些工程師為了有穩(wěn)定的采樣,生成了很多相差 90 度的時鐘信號,時而用正沿打一下數(shù)據(jù),時而用負沿打一下數(shù)據(jù),用以調(diào)整數(shù)據(jù)的采樣位置。這兩種做法都十分不可取,因為一旦芯片更新?lián)Q代或者移植到其它芯片 組的芯片上,采樣實現(xiàn)必須重新設計。而且,這兩種做法造成電路實現(xiàn)的余量不夠,一旦外界條件變換 ( 比如溫度升高 ) ,采樣時序就有可能完全紊亂,造成電路癱瘓。

  • 輸入、輸出的延時 ( 芯片間、 PCB 布線、一些驅(qū)動接口元件的延時等 ) 不可測,或者有可能變動的條件下,如何完成數(shù)據(jù)同步? 對于數(shù)據(jù)的延遲不可測或變動,就需要建立同步機制,可以用一個同步使能或同步指示信號。 另外,使數(shù)據(jù)通過 RAM 或者 FIFO 的存取,也可以達到數(shù)據(jù)同步目的。


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

-END-




推薦閱讀



【01】FPGA 國內(nèi)廠商 VS 國外廠商
【02】FPGAer升職記!12年工程師從公司、成長、能力、面試剖析,想入行的必看!
【03】硬貨!拉普拉斯算子的FPGA實現(xiàn)方法
【04】FPGA 電源管理不簡單,這幾點要素要牢記
【05】FPGA硬核和軟核處理器的區(qū)別


免責聲明:整理文章為傳播相關(guān)技術(shù),版權(quán)歸原作者所有,如有侵權(quán),請聯(lián)系刪除

免責聲明:本文內(nèi)容由21ic獲得授權(quán)后發(fā)布,版權(quán)歸原作者所有,本平臺僅提供信息存儲服務。文章僅代表作者個人觀點,不代表本平臺立場,如有問題,請聯(lián)系我們,謝謝!

嵌入式ARM

掃描二維碼,關(guān)注更多精彩內(nèi)容

本站聲明: 本文章由作者或相關(guān)機構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內(nèi)容真實性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請及時聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車的華為或?qū)⒋呱龈蟮莫毥谦F公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

加利福尼亞州圣克拉拉縣2024年8月30日 /美通社/ -- 數(shù)字化轉(zhuǎn)型技術(shù)解決方案公司Trianz今天宣布,該公司與Amazon Web Services (AWS)簽訂了...

關(guān)鍵字: AWS AN BSP 數(shù)字化

倫敦2024年8月29日 /美通社/ -- 英國汽車技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開發(fā)耗時1.5...

關(guān)鍵字: 汽車 人工智能 智能驅(qū)動 BSP

北京2024年8月28日 /美通社/ -- 越來越多用戶希望企業(yè)業(yè)務能7×24不間斷運行,同時企業(yè)卻面臨越來越多業(yè)務中斷的風險,如企業(yè)系統(tǒng)復雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報道,騰訊和網(wǎng)易近期正在縮減他們對日本游戲市場的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會開幕式在貴陽舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導體

8月28日消息,在2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會上,華為常務董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機 衛(wèi)星通信

要點: 有效應對環(huán)境變化,經(jīng)營業(yè)績穩(wěn)中有升 落實提質(zhì)增效舉措,毛利潤率延續(xù)升勢 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務引領增長 以科技創(chuàng)新為引領,提升企業(yè)核心競爭力 堅持高質(zhì)量發(fā)展策略,塑強核心競爭優(yōu)勢...

關(guān)鍵字: 通信 BSP 電信運營商 數(shù)字經(jīng)濟

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺與中國電影電視技術(shù)學會聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會上宣布正式成立。 活動現(xiàn)場 NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會上,軟通動力信息技術(shù)(集團)股份有限公司(以下簡稱"軟通動力")與長三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉