前言
00
一般來(lái)說(shuō),面積是一個(gè)設(shè)計(jì)所消耗的目標(biāo)器件的硬件資源數(shù)量或者ASIC芯片的面積。速度是指設(shè)計(jì)在芯片上穩(wěn)定運(yùn)行時(shí)所能夠達(dá)到的最高頻率,這個(gè)頻率由設(shè)計(jì)的時(shí)序狀況決定。
面積和速度是對(duì)立統(tǒng)一的矛盾體 ,既想要設(shè)計(jì)面積最小,又想運(yùn)行頻率最高,這是不現(xiàn)實(shí)的??茖W(xué)的設(shè)計(jì)目標(biāo)應(yīng)該是在滿足設(shè)計(jì)時(shí)序要求(包含對(duì)設(shè)計(jì)最高頻率的要求)的前提下,占用最小的芯片面積,或者在所規(guī)定的面積下,使設(shè)計(jì)的時(shí)序余量更大,頻率更高。
一個(gè)設(shè)計(jì)如果時(shí)序余量較大,所能跑的頻率遠(yuǎn)遠(yuǎn)高于設(shè)計(jì)要求,能通過(guò)功能模塊復(fù)用減少整個(gè)設(shè)計(jì)所消耗的芯片面積,用速度的優(yōu)勢(shì)對(duì)換面積的節(jié)約。
一個(gè)設(shè)計(jì)的時(shí)序要求很高,普通方法達(dá)不到設(shè)計(jì)頻率,可以通過(guò)將數(shù)據(jù)流串并轉(zhuǎn)換,并行復(fù)制多個(gè)操作模塊,對(duì)整個(gè)設(shè)計(jì)采取“乒乓操作”和“串并轉(zhuǎn)換”的思想進(jìn)行處理,在芯片輸出模塊處再對(duì)數(shù)據(jù)進(jìn)行“并串轉(zhuǎn)換”。
串并轉(zhuǎn)換 并串轉(zhuǎn)換
01
例如輸入數(shù)據(jù)流的速率是450Mbit/s,而在FPGA上設(shè)計(jì)的數(shù)據(jù)處理模塊的處理速度最大為150Mbit/s,在這種情況就應(yīng)該利用“面積換速度”的思想,至少?gòu)?fù)制3個(gè)處理模塊。首先將輸入數(shù)據(jù)進(jìn)行串并轉(zhuǎn)換,然后利用這3個(gè)模塊并行處理分配的數(shù)據(jù),最后將處理結(jié)果并串轉(zhuǎn)換以滿足數(shù)據(jù)速度的要求。
乒乓操作
02
“乒乓操作”是一個(gè)常常應(yīng)用于數(shù)據(jù)流控制的處理技巧,乒乓操作的結(jié)構(gòu)如下圖所示:
數(shù)據(jù)緩沖模塊一般是常用的存儲(chǔ)單元,例如雙口RAM(DPRAM)、單口RAM(SPRAM)、FIFO等。
第一個(gè)緩沖周期:將輸入的數(shù)據(jù)流緩存到數(shù)據(jù)緩沖模塊1;
第二個(gè)緩沖周期:通過(guò)輸入數(shù)據(jù)選擇單元的切換,將輸入數(shù)據(jù)緩存到數(shù)據(jù)緩沖模塊2,同時(shí)數(shù)據(jù)緩沖模塊1通過(guò)輸出數(shù)據(jù)選擇單元輸出數(shù)據(jù);
第三個(gè)緩沖周期:通過(guò)輸入數(shù)據(jù)選擇單元的切換,將輸入數(shù)據(jù)緩存到數(shù)據(jù)緩沖模塊1,同時(shí)數(shù)據(jù)緩沖模塊2通過(guò)輸出數(shù)據(jù)選擇單元的切換輸出數(shù)據(jù);
如此循環(huán),直到輸入結(jié)束。
乒乓操作有兩個(gè)優(yōu)點(diǎn):1、完成數(shù)據(jù)的無(wú)縫緩沖與處理;2、節(jié)約緩沖區(qū)空間。
完成數(shù)據(jù)的無(wú)縫緩沖與處理 :從上面乒乓操作的描述中可以看出,數(shù)據(jù)基本上是源源不斷地輸入輸出,只不過(guò)是中間的過(guò)程用了流水線式的設(shè)計(jì)來(lái)處理。根據(jù)這個(gè)優(yōu)點(diǎn)可以 用低速模塊處理高速數(shù)據(jù)流 ,其核心思想還是通過(guò)串并轉(zhuǎn)換實(shí)現(xiàn)面 積換速度 。
節(jié)約緩沖區(qū)空間 :例如需要將一幀的數(shù)據(jù)延時(shí)一個(gè)時(shí)隙后處理,最直接的辦法就是將這幀數(shù)據(jù)緩存起來(lái),然后延時(shí)一個(gè)時(shí)隙進(jìn)行處理,這時(shí)緩沖區(qū)的長(zhǎng)度是一幀數(shù)據(jù)的長(zhǎng)度。如果使用乒乓操作,用8個(gè)時(shí)隙完成一幀數(shù)據(jù)的傳輸,只需要兩個(gè)小的緩沖區(qū)即可,一個(gè)緩沖區(qū)是1/8幀數(shù)據(jù)的大小,其核心思想是 速度換面積 。
流水線設(shè)計(jì)
03
流水線設(shè)計(jì)大家應(yīng)該都不陌生,福特發(fā)明了流水線提高了工人的效率,硬件電路也因?yàn)榱魉€而元?dú)鉂M滿。
流水線特點(diǎn): 通過(guò)插入寄存器,將長(zhǎng)的串行邏輯鏈分成較小的部分;當(dāng)系統(tǒng)運(yùn)算是串行的時(shí)候,利用時(shí)鐘控制,使運(yùn)算依照順序接續(xù)進(jìn)行;在任何給定時(shí)刻,大部分電路都在工作。
流水線好處: 每一部分延時(shí)較小,可以使用更快的時(shí)鐘;大部分電路同時(shí)進(jìn)行運(yùn)算,可以提高數(shù)據(jù)通過(guò)量。
電路的最高頻率取決于最長(zhǎng)組合邏輯鏈路的延遲值,所以減少最長(zhǎng)組合邏輯鏈的延遲值,有利于提高電路速度。我們先來(lái)看一下不使用流水線的電路有什么問(wèn)題:
可以從上面的圖看出,組合邏輯鏈會(huì)有很大部分的閑置電路,根據(jù)這個(gè)基礎(chǔ)我們來(lái)分析一下計(jì)算log(|a+b|)的硬件電路:
計(jì)算最小周期,即計(jì)算出電路最大頻率,對(duì)照電路的最小周期主要是加法器延時(shí)+求絕對(duì)值延時(shí)+求對(duì)數(shù)延時(shí),因?yàn)橐粋€(gè)部分電路在工作時(shí),另一個(gè)部分的電路在閑置;
而流水線電路的最小周期主要是?。臃ㄆ餮訒r(shí),求絕對(duì)值延時(shí),求對(duì)數(shù)延時(shí))的最大值,可以看出流水線電路比原來(lái)的電路頻率大約快3倍左右,因?yàn)榱魉€是每一個(gè)部分的電路都在工作,效率大大提高。
接下來(lái)我們來(lái)看一下流水線與非流水線電路的比較,以4級(jí)流水線為例。
以上是4級(jí)流水線的結(jié)構(gòu)圖, 要注意的是流水線是按照延遲劃分的,不是按照功能劃分的 。具體流水線與非流水線電路的性能比較如下:
根據(jù)上面的性能比較表格,可以得知,具體使用流水線好還是非流水線好,還是要根據(jù)實(shí)際情況計(jì)算比較,一般來(lái)說(shuō)流水線會(huì)較好。
另外, 流水線分割點(diǎn)及級(jí)數(shù)的確定要考慮的因素:
①單元延遲時(shí)間及時(shí)鐘頻率的大小決定了數(shù)據(jù)通過(guò)速率;
②過(guò)多的級(jí)數(shù)不一定能產(chǎn)生最快的結(jié)果;
③太多寄存器的插入會(huì)導(dǎo)致芯片面積增加,布線困難,時(shí)鐘偏差增加;
-
FPGA設(shè)計(jì)
+關(guān)注
關(guān)注
9文章
428瀏覽量
27324 -
加法器
+關(guān)注
關(guān)注
6文章
183瀏覽量
30746 -
RTL
+關(guān)注
關(guān)注
1文章
389瀏覽量
61034 -
DPRAM
+關(guān)注
關(guān)注
0文章
2瀏覽量
11084 -
ASIC芯片
+關(guān)注
關(guān)注
2文章
92瀏覽量
24268
發(fā)布評(píng)論請(qǐng)先 登錄
速度面積互換設(shè)計(jì)原則簡(jiǎn)析
FPGA設(shè)計(jì)思想,速度和面積互換原則不可忽視
Labview 之面向?qū)ο缶幊獭?里面有個(gè)例子 和視頻教程地址
FPGA設(shè)計(jì)基本原則及設(shè)計(jì)思想
FPGA設(shè)計(jì)的指導(dǎo)原則有哪些?需要注意什么?
FPGA設(shè)計(jì)的指導(dǎo)原則
設(shè)計(jì)復(fù)用的RTL指導(dǎo)原則
FPGA設(shè)計(jì)的指導(dǎo)原則
FPGA設(shè)計(jì)的十五條原則詳細(xì)解析
淺談FPGA設(shè)計(jì)的基本原則
FPGA的指導(dǎo)性原則詳細(xì)資料說(shuō)明

PyTorch教程3.2之面向?qū)ο蟮脑O(shè)計(jì)實(shí)現(xiàn)

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

評(píng)論