軟件無(wú)線電或通信調(diào)制解調(diào)器等信號(hào)處理系統(tǒng)的質(zhì)量取決于所選用的硬件平臺(tái)性能。早期在設(shè)計(jì)方面的探索使設(shè)計(jì)師可以在寄存器傳輸級(jí)(RTL)和軟件實(shí)現(xiàn)之前洞悉面臨的挑戰(zhàn),了解性能與功耗改善所需的架構(gòu)決策以及軟硬件的劃分。
另外,早期的設(shè)計(jì)探索還有助于架構(gòu)方面的設(shè)計(jì)決策,從而為規(guī)劃當(dāng)前和未來(lái)需求提供便利。設(shè)計(jì)師還可以進(jìn)一步拓展這些設(shè)計(jì)探索,以便開(kāi)展故障分析,并確定進(jìn)行驗(yàn)證的測(cè)試用例。
本文介紹的系統(tǒng)級(jí)建模和仿真方法,可以用來(lái)在設(shè)計(jì)流程早期為軟件無(wú)線電或高速通信調(diào)制解調(diào)器設(shè)計(jì)信號(hào)處理平臺(tái)的架構(gòu)。
問(wèn)題
先進(jìn)的高速信號(hào)處理平臺(tái)等大多數(shù)復(fù)雜系統(tǒng)都會(huì)經(jīng)歷昂貴的重復(fù)設(shè)計(jì),超過(guò)70%的重復(fù)時(shí)間是由于設(shè)計(jì)決策錯(cuò)誤或?qū)π枨蟮恼`解。此外,影響這些復(fù)雜系統(tǒng)的因素有很多,如低處理時(shí)延、低功耗、可配置能力和資源限制等。早期的設(shè)計(jì)探索有助于克服這些問(wèn)題。
設(shè)計(jì)師和架構(gòu)師有幾種開(kāi)展設(shè)計(jì)探索和分析的方法可供選擇。雖然分析法可以提供有關(guān)最壞情況下執(zhí)行時(shí)間的重要信息,但多數(shù)情況下這在實(shí)際應(yīng)用中并不會(huì)發(fā)生。物理測(cè)試方法也許能提供精確的信息,但對(duì)于軟件無(wú)線電或高速通信調(diào)制解調(diào)器等復(fù)雜系統(tǒng)來(lái)說(shuō)是不可行的。
解決方案
利用離散事件仿真,設(shè)計(jì)師和架構(gòu)師可在較短的時(shí)間內(nèi)根據(jù)成百上千個(gè)使用案例、任務(wù)調(diào)度和系統(tǒng)配置,對(duì)目標(biāo)系統(tǒng)進(jìn)行評(píng)估。離散事件建模和仿真不僅有助于構(gòu)建特別復(fù)雜的仿真模型,而且能夠幫助架構(gòu)師和設(shè)計(jì)師運(yùn)行更多的用例。
此外,硬件架構(gòu)組件與框架的預(yù)構(gòu)建和有效庫(kù)有助于軟件架構(gòu)的建模。它們可以提高系統(tǒng)模型的精度,縮短構(gòu)建仿真模型的時(shí)間。
這種方法允許設(shè)計(jì)師:
● 專注于結(jié)果的分析和解釋,而不用關(guān)心模型的構(gòu)建;
● 采用不同的應(yīng)用配置來(lái)執(zhí)行仿真, 以便進(jìn)行平臺(tái)選擇,做出軟硬件決策,了解外設(shè)、性能以及目標(biāo)架構(gòu)上軟件線程的分配,從而優(yōu)化產(chǎn)品架構(gòu)。
解決方案實(shí)現(xiàn)
對(duì)信號(hào)處理平臺(tái)的設(shè)計(jì)進(jìn)行探索,目的是為了了解處理延時(shí)、現(xiàn)場(chǎng)可編程門(mén)陣列(FPGA)緩沖器要求、數(shù)據(jù)包長(zhǎng)度對(duì)性能的影響以及硬件平臺(tái)配置的識(shí)別。進(jìn)一步擴(kuò)展這種探索,可以理解每個(gè)信號(hào)處理函數(shù)的資源使用情況,比如尋峰、相關(guān)器、加權(quán)乘法和累加器。
離散事件仿真模型使用以下組件:
·4個(gè)5MHz的ADC通道;
·512字節(jié)和1024字節(jié)長(zhǎng)度的數(shù)據(jù)包;
·233MHz的FIFO;
·深度為1024的緩沖器;
·初始時(shí)鐘速率為125MHz的FPGA。改變FPGA時(shí)鐘速率可滿足延時(shí)要求;
·運(yùn)行在167MHz的外部DDR內(nèi)存;
·運(yùn)行在260MHz的ADSP TS201。使用VisualSim Architect的預(yù)構(gòu)建可配置庫(kù)以圖形化的方式構(gòu)建模型。使用Visual Sim的“System- Resource”庫(kù)塊對(duì)處理器、內(nèi)存、FPGA資源、總線和互連進(jìn)行建模。模數(shù)轉(zhuǎn)換器(ADC)被建模為流量發(fā)生器,負(fù)責(zé)產(chǎn)生5MHz的數(shù)字樣本。
在這個(gè)系統(tǒng)設(shè)計(jì)中,我們?yōu)槊總€(gè)函數(shù)都考慮了抽象細(xì)節(jié)。利用這些細(xì)節(jié),通過(guò)集成matlab/simulink/C/ C++模塊,可以創(chuàng)建精細(xì)模型。對(duì)每個(gè)函數(shù)來(lái)說(shuō),我們已經(jīng)考慮了運(yùn)行在系統(tǒng)發(fā)生器中的現(xiàn)有Verilog代碼的時(shí)序值和標(biāo)準(zhǔn)發(fā)布值。加權(quán)輸入總和被轉(zhuǎn)發(fā)給數(shù)字信號(hào)處理器進(jìn)行顯示處理和浮點(diǎn)FFT,處理后的結(jié)果數(shù)據(jù)被寫(xiě)進(jìn)幀緩沖器用于顯示。建議的系統(tǒng)平臺(tái)框圖如圖1所示,VisualSim仿真模型如圖2所示。
圖1:系統(tǒng)框架(來(lái)源:Mirabilis設(shè)計(jì)項(xiàng)目報(bào)告)。
圖2:信號(hào)處理平臺(tái)的VisualSim模型(來(lái)源:Micabilis設(shè)計(jì)項(xiàng)目報(bào)告)。
分析與報(bào)告
模型的構(gòu)建花了兩個(gè)人時(shí),仿真在擁有4GB RAM的2.6GHz微軟Windows 10平臺(tái)上執(zhí)行,仿真的實(shí)際時(shí)間為900ms。VisualSim花了25s完成一次仿真。根據(jù)數(shù)據(jù)包大小得出算法處理結(jié)束的時(shí)間,并在功耗和性能之間做出折衷,是設(shè)計(jì)時(shí)要重點(diǎn)考慮的問(wèn)題。
分析1
這個(gè)設(shè)計(jì)將緩沖器深度選為“數(shù)據(jù)包長(zhǎng)度的”兩倍,長(zhǎng)度為512字節(jié)的包的信號(hào)處理時(shí)延有望在20ms以下。
圖3顯示的仿真報(bào)告表明,最大處理延時(shí)是24.52ms,這說(shuō)明在FPGA上實(shí)現(xiàn)信號(hào)處理功能需要花更多的周期。克服這個(gè)挑戰(zhàn)的解決方案是要么提高FPGA的時(shí)鐘速率,要么修改算法。我們決定提高FPGA的時(shí)鐘速率作為初步的解決方案。
圖4:系統(tǒng)功耗(來(lái)源:Mirabilis設(shè)計(jì)項(xiàng)目報(bào)告)。
隨著后續(xù)的研究,我們發(fā)現(xiàn)如果將FPGA的時(shí)鐘速率從125MHz提高到170MHz,系統(tǒng)就能滿足20ms的延時(shí)要求,而且我們發(fā)現(xiàn)平均功耗(6.2W) 只增加了1.1W。
延時(shí)圖形如圖5所示,功耗圖形如圖6所示。
圖6:系統(tǒng)功耗(來(lái)源:Mirabilis設(shè)計(jì)項(xiàng)目報(bào)告)。
考慮到有可能需要支持增加包長(zhǎng),我們將數(shù)據(jù)包長(zhǎng)度從512字節(jié)增加到了2048字節(jié)以作進(jìn)一步分析。我們發(fā)現(xiàn),功耗沒(méi)有明顯的變化,但最大處理延時(shí)從期望的20ms左右增加到了76ms,系統(tǒng)的平均功耗為7.8W。
圖7:處理延時(shí)(來(lái)源:Mirabilis設(shè)計(jì)項(xiàng)目報(bào)告)。
我們還觀察了某些函數(shù)的緩沖器占用情況。表1表明,針對(duì)上述所有場(chǎng)景,每個(gè)函數(shù)緩沖器占用情況是一致的( 緩沖器占用以包數(shù)計(jì)量)。這意味著這種算法實(shí)現(xiàn)沒(méi)有為了支持不同的數(shù)據(jù)包大小而進(jìn)行優(yōu)化,而且如果設(shè)計(jì)要求不同的包大小,這種實(shí)現(xiàn)也是不可行的。
表1,緩沖器要求
分析2
在這次探索中,我們?yōu)槊總€(gè)ADC通道的每個(gè)函數(shù)建立了專用資源模型。
我們通過(guò)查看處理延時(shí)圖形和平均功耗圖形來(lái)評(píng)估系統(tǒng)配置。
處理延時(shí)如圖8所示,平均功耗如圖9所示。
圖8:處理延時(shí)(來(lái)源:Mirabilis設(shè)計(jì)項(xiàng)目報(bào)告)。
由于每個(gè)ADC通道的每個(gè)函數(shù)都有專門(mén)的FPGA資源,因此,與分析1 所示的平均系統(tǒng)功耗相比,這次系統(tǒng)的功耗增加了很多。不過(guò)平均的端到端延時(shí)小于10.8ms,尋峰延時(shí)為11.1ms。
圖9:平均功耗(來(lái)源:Mirabilis設(shè)計(jì)項(xiàng)目報(bào)告)。
這表明,如果每個(gè)ADC 通道都考慮使用專門(mén)的FPGA資源, 即使FPGA時(shí)鐘速率較低也能滿足性能要求。不足之處就是FPGA資源要求更高了,而且平均功耗增加了100%。
小結(jié)
使用建模和仿真方法進(jìn)行早期的設(shè)計(jì)探索可以驗(yàn)證實(shí)現(xiàn)信號(hào)處理的硬件能力和效率,從而確保所選的架構(gòu)有足夠的處理能力來(lái)滿足系統(tǒng)在性能、功耗和可靠性方面的要求。利用VisualSim性能建模可以幫助我們估計(jì)資源要求、性能和功耗統(tǒng)計(jì)數(shù)據(jù), 進(jìn)而做出正確的設(shè)計(jì)決策。
在研究過(guò)程中我們發(fā)現(xiàn),系統(tǒng)架構(gòu)師可以通過(guò)“分析1”做出平衡系統(tǒng)性能和功耗的設(shè)計(jì)決策。“分析2” 則表明,即使用較低的時(shí)鐘速率也可以實(shí)現(xiàn)系統(tǒng)性能,但要求更多的FPGA資源,并且功耗要求增加了幾乎一倍。
通過(guò)構(gòu)建硬件資源的周期精確模型并進(jìn)行微架構(gòu)級(jí)的研究,上述探索還能進(jìn)一步擴(kuò)展。
編輯:hfy
-
FPGA
+關(guān)注
關(guān)注
1631文章
21810瀏覽量
606821 -
緩沖器
+關(guān)注
關(guān)注
6文章
1983瀏覽量
45724 -
調(diào)制解調(diào)器
+關(guān)注
關(guān)注
3文章
862瀏覽量
39053 -
無(wú)線電
+關(guān)注
關(guān)注
60文章
2150瀏覽量
116948
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
通信和電信>xDSL 調(diào)制解調(diào)器/DSLAM
線纜調(diào)制解調(diào)器的原理是什么?
嵌入式系統(tǒng)上的調(diào)制解調(diào)器通信該怎樣去實(shí)現(xiàn)呢?
調(diào)制解調(diào)器(MODEM)介紹
調(diào)制解調(diào)器(Modem)
什么是Modem(調(diào)制解調(diào)器)
調(diào)制解調(diào)器(Modem),調(diào)制解調(diào)器(Modem)是什么意思
調(diào)制解調(diào)器(Modem)是什么_調(diào)制解調(diào)器(Modem)有什么功能?

什么是手機(jī)調(diào)制解調(diào)器_調(diào)制解調(diào)器的作用是什么
基于VHDL的MSK調(diào)制解調(diào)器的建模與設(shè)計(jì)

評(píng)論