国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于仲裁的FPGA資源優(yōu)化設計

2019-12-04 04:24馬干軍
艦船電子對抗 2019年5期
關鍵詞:支路信號處理使用權

馬干軍

(中國船舶重工集團公司第七二三研究所,江蘇 揚州 225101)

0 引 言

在現(xiàn)場可編程門陣列(FPGA)的開發(fā)設計中,運行速度和資源消耗是2個很有代表性的指標。運行速度,一般可以用數(shù)據(jù)吞吐率來衡量。但對于給定的某款FPGA,其資源數(shù)量是確定的。因此資源消耗優(yōu)化,是指在保證性能(運行速度)的前提下,所用設計資源能夠占到該款FPGA資源的80%左右,以充分發(fā)揮該款FPGA的最佳性能。

在減少資源消耗的方法上,其核心思想是以時間換空間,也就是在多個時鐘周期內(nèi)反復使用同一資源[1]。比如,基于多倍時鐘的折疊(滿足時鐘速率高于處理數(shù)據(jù)速率),基于多通道的復用,基于控制邏輯的復用,基于資源共享的復用(一般通過改變多路復用器的位置來實現(xiàn))等。圖1是一種常見的復用方案。但是這個方案存在一個限制,如果N較大或數(shù)據(jù)速率較高,那么工作時鐘的頻率就會急劇增加,這在現(xiàn)有的FPGA中是難以接受的。從可實現(xiàn)的角度,適當增加其中的信號處理單元數(shù)量,就可以大大緩解硬件實現(xiàn)難度,同時又可以盡可能地避免資源的閑置浪費。

當輸入的N路數(shù)據(jù)速率較高,且至多僅有M路數(shù)據(jù)(M

雖然都會對信號處理單元重復使用,但這里的仲裁與一般的復用有著明顯的區(qū)別,各支路對信號處理單元的使用并不是確定的、固定時長的,也與一般的總線仲裁[2]存在差異,并不是多對一的使用申請,和總線矩陣[3]也存在一定的差異。

本文將就前文提出的資源優(yōu)化問題展開討論,明確設計需求,并提出一種切實可行的仲裁實現(xiàn)方法,以減少FPGA資源的消耗,提高資源使用效率。

1 需求分析

在討論仲裁的實現(xiàn)之前,再回顧上節(jié)所提出的問題。設有N條支路,任意時刻至多有M條支路的數(shù)據(jù)有效,需要進行信號處理。設有M個信號處理單元,每個處理單元功能一致,均可處理任意一條支路的數(shù)據(jù)。需要解決的問題就是,如何使得任意時刻存在有效信號的支路,去獲得已有的M個信號處理單元的使用權,完整并不冗余地得到任意時刻有效支路信號處理后的數(shù)據(jù)。換言之,任意時刻,一條支路至多獲得一個信號處理單元的使用權;如果存在閑置的信號處理單元(即未被特定支路獲取使用權),那么當有支路請求信號處理時應當給予分配。

在此基礎上,還有一些衍生出的問題。其一,請求響應時間。每當有支路請求信號處理單元的使用權時,仲裁機制對此的響應時間是否一致。本文以為各支路請求被響應的時間應當保持一致,且盡可能短。這樣既有利于保持待處理數(shù)據(jù)的完整性,也不會破壞支路間的數(shù)據(jù)關聯(lián)性。其二,優(yōu)先級。如果有多條支路同時請求信號處理單元的使用權,那么應當按照一定的優(yōu)先級進行響應;如果有多個信號處理單元閑置,那么應當按照一定的優(yōu)先級進行分配使用。其三,請求溢出。從信號處理的角度,應當使得任意時刻需要處理的支路均得到處理,但從均衡資源的角度考慮,已有的資源有時可能無法處理所有的有效支路,這時就需要考慮支路的取舍。一種是保持已用信號處理單元的使用權不變,按照新發(fā)生的請求支路的優(yōu)先級,獲取閑置的信號處理單元的使用權,忽略低優(yōu)先級的支路請求(不予分配信號處理單元的使用權);另一種是比較正在使用以及請求使用信號處理單元的所有有效支路的優(yōu)先級,強制釋放低優(yōu)先級的使用權,并分配高優(yōu)先級的有效支路。2種方法均可選,本文著眼于保持數(shù)據(jù)處理的連貫性,采用第1種實現(xiàn)。

本節(jié)最后討論一下資源的使用情況。設一個信號處理單元的資源消耗為X,如果不進行資源優(yōu)化,那么N路的資源消耗大約為NX;如果采用本文的方案,那么資源消耗大約為MX。

2 電路設計

2.1 仲裁系統(tǒng)設計

仲裁的主要流程如圖2所示,主要分為2個部分:一個是根據(jù)支路有效按照一定的策略進行資源(信號處理單元)的調(diào)用;另一個是根據(jù)資源調(diào)用情況將支路數(shù)據(jù)送至相應的資源端口。其中,第一部分主要分為兩大塊:請求的處理及查詢,資源的釋放及使用??梢钥闯觯麄€電路以資源的使用及釋放為循環(huán),這也是仲裁的意義所在。

圖2 仲裁主要流程

下面進一步明確仲裁模塊的主要輸入輸出端口。需要有支路有效指示信號An(n=0,1,…,N-1,An∈{0,1})作為仲裁的輸入,用于請求信號處理單元的使用權。當An=1時,表示支路n的數(shù)據(jù)有效并請求信號處理;當An=0時,表示支路n數(shù)據(jù)無效并不請求信號處理。需要有信號處理單元使用指示Om(m=0,1,…,M-1,Om∈{0,1})以及使用該單元的請求支路來源號Sm(m=0,1,…,M-1,Sm∈{0,1,…,N-1})作為仲裁的輸出,用于數(shù)據(jù)選通及信號處理。當Om=1時,表示信號處理單元m被使用且使用該單元的請求支路為Sm;當Om=0時,表示信號處理單元m未被使用。當N=3,M=2時,一個簡單的仲裁輸入輸出示意如圖3所示(僅作示意,忽略了請求響應時間)。

圖3 一個仲裁的例子

2.2 關鍵電路實現(xiàn)

(1) 允許請求

對于請求端,即使支路有效(An=1),也應當根據(jù)實際需求,按照一定策略允許該支路發(fā)出請求與否。

如圖4所示,所有支路均需要長期使用某信號處理單元,即使該支路中間一段無效,但仍不希望中斷并重新分配使用的信號處理單元,這時就不能允許這里的第2次支路有效時發(fā)出請求(如T1處)。可以稱這種允許請求的策略為屏蔽式的,即當屏蔽未被解除時,不再允許同一支路的再次請求。引入屏蔽指示信號Mn,n=0,1,…,N-1,Mn∈{0,1}。當Mn=0時,表示屏蔽支路n發(fā)出請求;當Mn=1時,表示允許支路n發(fā)出請求。

圖4 一種請求的允許策略示意

當然,也可以不引入屏蔽,允許多次請求,如圖3所示。3個支路均有2次有效,都被允許發(fā)出請求,只是支路1的第2次請求(時刻9處)由于可用資源不足未被響應。

(2) 優(yōu)先級

在仲裁過程中,可能會出現(xiàn)多個支路同時發(fā)出請求或者多個信號處理單元同時空閑的情形,這時如何處理就會出現(xiàn)優(yōu)先級的問題。

特別地,以資源有限但同時發(fā)生的請求較多為例。如圖3所示,支路0、支路1第2次有效時被允許發(fā)出請求,但空閑資源只有信號處理單元1,另一個信號處理單元0已被稍早發(fā)出請求的支路2占用。如果不改變信號處理單元0的使用權,那么顯然支路0、支路1對信號處理單元1的使用權存在競爭。這時可以約定一個優(yōu)先級,認為支路0的請求優(yōu)先級大于支路1的,那么就應當優(yōu)先響應支路0的請求,將信號處理單元1的使用權分配給支路0。

那么,如何處理支路1的請求呢?如果以優(yōu)先級為第一準則,認為支路1的優(yōu)先級高于支路2,那么可以將信號處理單元0的使用權強制變更為支路1所有,丟棄支路2的數(shù)據(jù)處理。如果以既有使用權為第一準則,不改變在忙資源的使用權,那么可以丟棄支路1的數(shù)據(jù)處理,或者另作它用。

下面討論多個資源同時空閑的情形,以請求有限但資源較多為例。如圖3所示,支路2第2次有效時被允許發(fā)出請求,這時的資源均處于空閑狀態(tài)。從忙閑的角度,信號處理單元0和單元1均可以被分配給支路2使用,但只能有一個單元被分配,這時單元0和單元1實質(zhì)上也存在一個競爭關系??梢约s定一個優(yōu)先級,認為單元0的優(yōu)先級大于單元1,那么就應當將單元0的使用權分配給支路2,單元1仍保持空閑狀態(tài)。

(3) 查詢請求

可以看到,仲裁輸出中Sm表示的是支路序號。不論支路請求是否被響應,有必要獲取被允許的請求所在的支路序號。在進行查詢請求前,可以將每次請求的上升沿作為請求的查詢點,查詢新增請求,避免對同一請求的多次查詢。

設某時刻同時發(fā)生的新請求總數(shù)為L,且發(fā)出新請求的支路序號為Rl,l=0,1,…,L-1,Rl∈{0,1,…,N-1}。如圖3所示,僅在時刻1、3、7、9處發(fā)生了新請求:時刻1的新增請求總數(shù)L=2,請求來自支路0、1,R0=0,R1=1;時刻3的新增請求總數(shù)L=1,請求來自支路2,R0=2;時刻7的新增請求總數(shù)L=1,請求來自支路2,R0=2;時刻9的新增請求總數(shù)L=2,請求來自支路0、1,R0=0,R1=1。

考慮到處理的實時性,減少請求響應時間,有必要在較短的時間內(nèi)得到L和Rl。如果N較小,羅列所有可能的情形,通過查表即可以實現(xiàn)。但在實際應用中,N的值往往使得所需構筑的表非常大??梢圆捎梅侄尾⑿刑幚?,將N分成若干個小段,對各小段進行查表,再依次匯總,得到完整的L和Rl。如圖5所示,N=16,分成4個小段,對第1個小段(支路0~3)、第2個小段(支路4~7)、第3個小段(支路8~11)及第4個小段(支路12~15)分別查表得到相應的分段請求總數(shù)和分段請求來源;再對第1個小段、第2個小段查詢結果匯總得到支路0~7的分段請求總數(shù)和分段請求來源,對第3個小段、第4個小段查詢結果匯總得到支路8~15的分段請求總數(shù)和分段請求來源;再次匯總,就得到了所有支路0~15的請求總數(shù)L和請求來源Rl。

圖5 一個查詢請求的例子

在實現(xiàn)該電路時,可以結合資源總數(shù)M做一定的簡化。在各分段查詢請求的過程中,如果請求總數(shù)超過資源總數(shù),即L>M,那么可以結合前節(jié)所述的優(yōu)先級,略去超過資源總數(shù)的請求(一般是略去優(yōu)先級較低的),簡化查詢電路。

(4) 資源使用

在獲取到發(fā)生的請求總數(shù)L和發(fā)出請求的支路序號Rl后,就可以根據(jù)當前資源使用情況Om,結合優(yōu)先級,進行資源的分配使用,盡可能地響應支路請求。

如果請求總數(shù)L不大于當前可用資源(Om=0)總數(shù),那么將請求的支路序號Rl賦給Sm,并將相應的Om置1;如果請求總數(shù)L大于當前可用資源總數(shù),那么可以將一部分Rl(略去優(yōu)先級較低的Rl)賦給Sm,并將相應的Om置1。例如,如圖6(a)所示,M=4,新增請求總數(shù)等于可用資源總數(shù),因此按照一定的優(yōu)先級可得,將R0=5賦給S1,將R1=9賦給S2;如圖6(b)所示,M=4,新增請求總數(shù)大于可用資源總數(shù),因此按照一定的優(yōu)先級可得,將R0=5賦給S1,將R1=9賦給S2,但略去了R3=10這個請求。

圖6 資源使用更新示意圖

(5) 資源釋放

當使用資源的某個支路不再請求使用資源時,就要考慮如何釋放該支路的資源使用權。可以根據(jù)當前Om、Sm和An,按照一定策略,閑置特定資源,也就是將相應Om置0。

如果支路使用資源的時長和支路有效時長一致,那么當支路有效指示信號由1變0時,應當及時釋放該支路的資源使用權。具體地,如果Om=1,那么當ASm由1變0時,應使得Om=0。

如果支路使用資源的時長大于支路有效時長,一種可選的策略是在所有支路均無效到存在支路有效時,短暫釋放所有資源的使用權。

3 實例應用

設有一信道化應用,支路總數(shù)為32。對其信道信號有效的支路進行基于卷積調(diào)制的噪聲干擾[4],要求可支持不少于4路的同時干擾,其中信道化后的每路數(shù)據(jù)速率為80 MHz。應系統(tǒng)設計需求,要求在不影響性能的情況下,優(yōu)化資源消耗。

如果不做任何資源優(yōu)化,對32路數(shù)據(jù)均做干擾處理,僅在處理后做選取修正,那么資源消耗如圖7所示??梢钥吹?,相較于可用的數(shù)字信號處理(DSP)資源,該功能消耗了大量的硬件資源,這對其他功能的實現(xiàn)是極其不利的。

圖7 未優(yōu)化前的主要資源消耗

由于支路的數(shù)據(jù)速率較高,信道總數(shù)也較多,簡單的復用無法滿足要求,可采用本文所述方法,例化4次干擾處理模塊,進行仲裁,則所消耗的資源將大大減少,且易于實現(xiàn),如圖8所示。

圖8 優(yōu)化后的主要資源消耗

可以看到,優(yōu)化前后的資源消耗,在類別上所體現(xiàn)出的減少比例并不完全相同。其中,干擾模塊的DSP資源減少近88%,這是符合期望的(32路降低為4路);但干擾模塊的Slice資源卻僅減少約67%,這主要是新增了一些輔助電路,也和布局布線有所關聯(lián)。從整體來看,雖然仲裁模塊使用了部分Slice資源,但相對于優(yōu)化前,Slice資源仍然減少了約56%。

仲裁實現(xiàn)時的時序圖如圖9所示。在本例中,不引入屏蔽,允許多次請求;優(yōu)先級以中間信道為先,具體的優(yōu)先級為信道16>15>17>14>18>13>19>12>20>11>21>10>22>9>23>8>24>7>25>6>26>5>27>4>28>3>29>2>30>1>31>0;查詢新增請求時,按照優(yōu)先級高低,至多只查詢4個,其余忽略;資源使用時,若請求數(shù)目超出可用資源,忽略低優(yōu)先級的。

圖9 仲裁時序示意圖

如圖9所示,仲裁時間為2個節(jié)拍,如時刻1信道18有效,則在時刻3僅分配了單元0用以處理該信道信號;在時刻3信道18無效,而信道16有效,則在時刻5接著將單元0分配給信道16用以處理信號。若信道有效狀態(tài)不改變,該信道被分配的情形不變,如在時刻5除信道16仍然有效,新增信道14、19、12有效,則在時刻7單元0仍用于處理信道16,并按優(yōu)先級將單元1、2、3分別分配給信道14、19、12用以處理信號。在時刻7所有信道均無效,則在時刻9所有單元均空閑(此時Om均為0)。在時刻9新增信道4、8、10、18、20有效,按優(yōu)先級為18>20>10>8>4,故在時刻11將4個單元分別分配給信道18、20、10、8用以處理信號。在時刻11信道4、8、10、20有效,注意到信道4已在上一時刻被忽略,在本時刻不屬于新增的,故仍不做查詢分配,因此在時刻13仍然僅是將單元1、2、3分配給信道20、10、8用以處理信號。板上驗證發(fā)現(xiàn)功能達到要求。

4 結束語

在FPGA設計過程中,提高速度和降低面積(資源消耗)的努力方向往往是相反的,這就需要根據(jù)實際設計需求做好權衡,優(yōu)化時序,提高電路性能。

本文從一個實際工程問題展開論述,提出了一種可行的FPGA硬件資源的優(yōu)化方法。在分析系統(tǒng)設計需求的基礎上,通過仲裁實現(xiàn)資源的使用與釋放循環(huán),在不影響電路功能的前提下優(yōu)化了資源消耗,基本滿足了設計要求。

猜你喜歡
支路信號處理使用權
包裝過程稱量信號處理方法研究
衛(wèi)星軌道資源使用權的繼受問題研究
船舶環(huán)狀冷媒水系統(tǒng)冬季工況運行模擬分析
依法收回的土地使用權重新出讓如何辦理登記
支路不對稱發(fā)電機故障下定子電磁力仿真分析
抽水蓄能機組定子支路數(shù)應用與研究
機動車剎車燈自檢裝置
旅游共享經(jīng)濟的基本特征、運行機制與發(fā)展對策
中國亟需明確土地使用權期限問題
舒兰市| 新田县| 三都| 河东区| 准格尔旗| 紫云| 凤台县| 乌兰浩特市| 建湖县| 勐海县| 武宁县| 永平县| 甘南县| 贵州省| 乌恰县| 永春县| 玉林市| 岗巴县| 阿瓦提县| 漠河县| 郎溪县| 光山县| 桂东县| 广州市| 永丰县| 嘉兴市| 新河县| 阆中市| 长葛市| 舒兰市| 扎囊县| 乐安县| 合作市| 周口市| 丰宁| 从化市| 乌审旗| 新田县| 贺州市| 会东县| 江孜县|