北京智芯微電子科技有限公司 郝 嚴(yán) 馮文楠
提出了一種面向OFDM(Orthogonal Frequency Division Multiplexing,正交頻分復(fù)用技術(shù))系統(tǒng)物理層關(guān)鍵算法邏輯設(shè)計(jì)功能的聯(lián)合仿真驗(yàn)證平臺(tái)。該平臺(tái)將原本使用SystemVerilog驗(yàn)證語(yǔ)言搭建的驗(yàn)證環(huán)境(運(yùn)行于數(shù)字邏輯仿真工具Synopsys公司的VCS中)和復(fù)雜數(shù)字信號(hào)算法處理的參考模型(運(yùn)行于算法仿真工具M(jìn)athworks公司的Matlab中),通過(guò)直接編程接口(Direct Programming Interface,DPI)以C++作為橋梁進(jìn)行連接。通過(guò)實(shí)際仿真驗(yàn)證比較,使用這種方法搭建的聯(lián)合仿真驗(yàn)證平臺(tái)相比傳統(tǒng)仿真驗(yàn)證平臺(tái),在執(zhí)行相同數(shù)量測(cè)試用例條件下,仿真驗(yàn)證時(shí)間縮短15%以上;在不增加Matlab參考模型修改成本基礎(chǔ)上,可對(duì)各關(guān)鍵參數(shù)進(jìn)行隨機(jī)化賦值,相關(guān)參數(shù)的觸發(fā)覆蓋率(triggering coverge)理論可以達(dá)到100%。
在數(shù)字IC(Integrated Circuit,集成電路)設(shè)計(jì)流程中,針對(duì)DUT(Design Under Test,被驗(yàn)證設(shè)計(jì))的仿真驗(yàn)證環(huán)節(jié)十分重要,其貫穿RTL(Register Transfer Level,寄存器傳輸級(jí))邏輯設(shè)計(jì)、門(mén)級(jí)(Gate Level)電路設(shè)計(jì)始末。驗(yàn)證人員需對(duì)被驗(yàn)證設(shè)計(jì)的功能、性能、可靠性安全性等方面進(jìn)行仿真驗(yàn)證,將發(fā)現(xiàn)的異常部分反饋于設(shè)計(jì)人員進(jìn)行確認(rèn)和修改,再對(duì)修改后的部分進(jìn)行回歸驗(yàn)證,通過(guò)反復(fù)迭代,直至DUT在仿真驗(yàn)證過(guò)程中再未發(fā)現(xiàn)異常。
隨著時(shí)代發(fā)展,驗(yàn)證工具、驗(yàn)證方法學(xué)和驗(yàn)證思路都在不斷推陳出新,以應(yīng)對(duì)愈發(fā)復(fù)雜的數(shù)字邏輯設(shè)計(jì)的仿真驗(yàn)證工作,旨在盡可能多的在芯片設(shè)計(jì)前期、中期暴露出潛在的問(wèn)題,最大程度減少設(shè)計(jì)成本。
本課題介紹了一種新的驗(yàn)證思路,利用仿真工具的先進(jìn)技術(shù)手段和驗(yàn)證方法學(xué)的架構(gòu)優(yōu)勢(shì)完成仿真驗(yàn)證工作,旨在執(zhí)行仿真驗(yàn)證過(guò)程中,更大發(fā)揮仿真工具和驗(yàn)證方法學(xué)的優(yōu)勢(shì),提升仿真覆蓋率,降低問(wèn)題遺漏率,節(jié)約人力成本。
OFDM(Orthogonal Frequency Division Multiplexing)即正交頻分復(fù)用技術(shù),由MCM(Multi-Carrier Modulation,多載波調(diào)制)發(fā)展而來(lái)。OFDM技術(shù)是多載波傳輸方案的實(shí)現(xiàn)方式之一,它的調(diào)制和解調(diào)是分別基于IFFT和FFT來(lái)實(shí)現(xiàn)的,是實(shí)現(xiàn)復(fù)雜度最低、應(yīng)用最廣的一種多載波傳輸方案(張捷.低壓電力線載波通信信道特性研究[J].電子科技大學(xué),2013:TN913,6)。
在通信系統(tǒng)中,信道所能提供的帶寬通常比傳送一路信號(hào)所需的帶寬要寬得多。如果一個(gè)信道只傳送一路信號(hào)是非常浪費(fèi)的,為了能夠充分利用信道的帶寬,就可以采用頻分復(fù)用的方法。
OFDM主要思想是:將信道分成若干正交子信道,將高速數(shù)據(jù)信號(hào)轉(zhuǎn)換成并行的低速子數(shù)據(jù)流,調(diào)制到在每個(gè)子信道上進(jìn)行傳輸。正交信號(hào)可以通過(guò)在接收端采用相關(guān)技術(shù)來(lái)分開(kāi),這樣可以減少子信道之間的相互干擾(ISI)。每個(gè)子信道上的信號(hào)帶寬小于信道的相關(guān)帶寬,因此每個(gè)子信道上可以看成平坦性衰落,從而可以消除碼間串?dāng)_,而且由于每個(gè)子信道的帶寬僅僅是原信道帶寬的一小部分,信道均衡變得相對(duì)容易。
OFDM系統(tǒng)收發(fā)信機(jī)工作原理如圖1所示:
圖1 OFDM系統(tǒng)收發(fā)信機(jī)工作原理示意圖
如圖1所示,OFDM系統(tǒng)收/發(fā)信機(jī)的主要組成部分為:QAM(Quadrature Amplitude Modulation,正交振幅調(diào)制)調(diào)制/解調(diào)模塊、串并/并串變換模塊、IFFT/FFT模塊、插入/移除保護(hù)間隔模塊、插入/移除同步序列模塊、插入信道估計(jì)序列/信道估計(jì)模塊和組幀/解幀模塊部分(張有兵,何海波,吳昕,周擁華,程時(shí)杰.低壓電力線載波通信中信道模型的研究[J].電力系統(tǒng)保護(hù)與控制,2002:TM764)。
低壓電力線寬帶載波(Low voltage broadband power line carrier communication--LVPLC)通信是利用低壓電力配電線(380/220V用戶線)作為信息傳輸媒介進(jìn)行語(yǔ)音或數(shù)據(jù)傳輸?shù)囊环N特殊通信方式,通過(guò)載波方式將模擬或數(shù)字信號(hào)進(jìn)行高速傳輸?shù)募夹g(shù)。最大特點(diǎn)是不需要重新架設(shè)網(wǎng)絡(luò),只要有電線,就能進(jìn)行數(shù)據(jù)傳遞,在自動(dòng)抄表、照明控制、智能小區(qū)、智能大廈、家庭網(wǎng)絡(luò)、家居智能控制、家庭安防等方面被廣泛應(yīng)用。該技術(shù)是把載有信息的高頻信號(hào)加載于電流,然后利用各種等級(jí)的電力線傳輸(中國(guó)低壓電力線載波通信專用頻段為3-500kHz),接受信息的調(diào)制解調(diào)器再把高頻信號(hào)從電流中分離出來(lái),并傳送到電力線寬帶用戶終端(計(jì)算機(jī)、電視或電話機(jī)和智能電表、開(kāi)關(guān)、變臺(tái))。低壓電力線從來(lái)就不是一種理想的通信介質(zhì),但隨著技術(shù)的不斷進(jìn)步,特別是調(diào)制技術(shù)及微電子技術(shù)的發(fā)展,使得低壓PLC的實(shí)用化成為可能。
合適的物理層調(diào)制方式對(duì)在電力線載波信道中實(shí)現(xiàn)可靠的數(shù)據(jù)傳輸十分重要。OFDM正交多載波調(diào)制是一種先進(jìn)的調(diào)制技術(shù),已成為新一代電力線載波通信的主流技術(shù)。在500kHz頻段內(nèi)實(shí)現(xiàn)的OFDM電力線載波通信系統(tǒng)通常稱為窄帶OFDM系統(tǒng)(相對(duì)于工作在2-30MHz的寬帶OFDM載波系統(tǒng)-BPLC)。OFDM將工作帶寬劃分成多個(gè)相互正交的子載波(通常數(shù)百個(gè)甚至上千個(gè))。經(jīng)過(guò)信道編碼后的數(shù)據(jù)映射到這些子載波上同時(shí)傳送。與上述傳統(tǒng)的調(diào)制技術(shù)相比,OFDM載波技術(shù)具有以下優(yōu)勢(shì):
●抗噪聲及抗干擾能力強(qiáng),通信可靠、穩(wěn)定;
●對(duì)電力線信道的變化具有自適應(yīng)能力,當(dāng)個(gè)別子載波受到干擾時(shí)仍可能成功通信;
●數(shù)據(jù)速率高,通常在幾十kbps以上。
在數(shù)字IC(Integrated Circuit,集成電路)設(shè)計(jì)流程中,針對(duì)DUT(Design Under Test,被驗(yàn)證設(shè)計(jì))的仿真驗(yàn)證環(huán)節(jié)十分重要,其貫穿RTL(Register Transfer Level,寄存器傳輸級(jí))邏輯設(shè)計(jì)、門(mén)級(jí)(Gate Level)電路設(shè)計(jì)始末。驗(yàn)證人員需對(duì)被驗(yàn)證設(shè)計(jì)的功能、性能、可靠性安全性等方面進(jìn)行仿真驗(yàn)證,將發(fā)現(xiàn)的異常部分反饋于設(shè)計(jì)人員進(jìn)行確認(rèn)和修改,再對(duì)修改后的部分進(jìn)行回歸驗(yàn)證,通過(guò)反復(fù)迭代,直至DUT在仿真驗(yàn)證過(guò)程中再未發(fā)現(xiàn)異常。
在對(duì)DUT仿真驗(yàn)證過(guò)程中,驗(yàn)證人員常通過(guò)數(shù)字邏輯仿真工具(如Cadence公司的Xcelium、Synopsys公司的VCS、Mentor公司的ModelSim等)、算法仿真工具(如Mathworks公司的Matlab、Maplesoft公司的Maple、Wolfram Research公司的Mathematica等)等工具協(xié)助仿真驗(yàn)證其功能的正確性,各類工具均有其優(yōu)缺點(diǎn),例如:
使用數(shù)字邏輯仿真工具,可通過(guò)搭建仿真驗(yàn)證環(huán)境對(duì)DUT的正確性進(jìn)行驗(yàn)證,結(jié)合驗(yàn)證方法學(xué),可以對(duì)設(shè)計(jì)進(jìn)行更多隨機(jī)化(Randomize)測(cè)試,能夠更加充分覆蓋被驗(yàn)證設(shè)計(jì)。但是由于其仿真機(jī)理是通過(guò)電腦CPU(Central Processing Unit,中央處理器)模擬硬件環(huán)境,硬件環(huán)境中的并行操作、復(fù)雜算法會(huì)導(dǎo)致驗(yàn)證速度大大降低,面對(duì)大型設(shè)計(jì)中若干秒功能仿真,很可能要花數(shù)小時(shí)乃至數(shù)天的時(shí)間。
算法仿真工具針對(duì)復(fù)雜算法開(kāi)發(fā)的設(shè)計(jì)可以更加得心應(yīng)手,相關(guān)深度優(yōu)化的算法軟件包可以被直接調(diào)用,驗(yàn)證速度更快。算法環(huán)境基于C語(yǔ)言,功能可以更加靈活。但由于其功能所限,尚無(wú)法對(duì)RTL設(shè)計(jì)代碼或門(mén)級(jí)網(wǎng)表文件直接進(jìn)行驗(yàn)證。
目前,在仿真驗(yàn)證階段,驗(yàn)證人員大都僅使用某一類仿真驗(yàn)證工具,或者非同時(shí)使用數(shù)字邏輯仿真工具和算法仿真工具。同時(shí),各類工具互相有依托,設(shè)計(jì)開(kāi)發(fā)過(guò)程中難免會(huì)出現(xiàn)在不同的開(kāi)發(fā)階段中脫節(jié)的情況,致使項(xiàng)目周期加長(zhǎng)。而且,由于不同驗(yàn)證人員的經(jīng)驗(yàn)和思路不同,在使用仿真驗(yàn)證工具時(shí)也會(huì)出現(xiàn)交互上的偏差,導(dǎo)致問(wèn)題遺漏率增大。
綜上,針對(duì)上述兩類仿真驗(yàn)證工具,需要有一種更加新穎的使用方式,專注于提升定位問(wèn)題的精準(zhǔn)度、功能/算法的覆蓋率等方面。因此,聯(lián)合使用數(shù)字邏輯仿真工具和算法仿真工具,取長(zhǎng)補(bǔ)短,可以大大提升目前仿真效率。
在傳統(tǒng)的仿真平臺(tái)中,算法仿真工具通過(guò)算法仿真模型生成相關(guān)的多組數(shù)據(jù)(例如激勵(lì)數(shù)據(jù),過(guò)程數(shù)據(jù)、響應(yīng)數(shù)據(jù)等)作為驗(yàn)證用例,數(shù)字邏輯仿真工具通過(guò)編譯驗(yàn)證環(huán)境,導(dǎo)入該驗(yàn)證用例,作為發(fā)送給DUT的激勵(lì)數(shù)據(jù),中間過(guò)程比對(duì)數(shù)據(jù),接收DUT輸出結(jié)果比對(duì)數(shù)據(jù)等,確認(rèn)DUT功能、性能的正確性(任志勝,林平分.電力線載波通信系統(tǒng)的物理層仿真方法的研究[J].科技信息,2013:TN913,6)。
聯(lián)合仿真平臺(tái)的工作流程圖如圖2所示:
圖2 聯(lián)合仿真驗(yàn)證平臺(tái)工作流程圖
通過(guò)比較,在傳統(tǒng)的仿真平臺(tái)中,數(shù)字邏輯仿真工具僅編譯執(zhí)行控制部分驗(yàn)證環(huán)境和DUT,算法部分驗(yàn)證環(huán)境均由驗(yàn)證用例代替,而驗(yàn)證用例事先由算法仿真工具生成。因此,在聯(lián)合仿真驗(yàn)證平臺(tái)中,數(shù)字邏輯仿真工具的執(zhí)行速度似乎會(huì)更高;算法仿真工具和數(shù)字邏輯仿真工具可分別在不同的服務(wù)器CPU核心執(zhí)行,效率似乎也會(huì)更高。
但實(shí)際還需考慮更多因素。首先,驗(yàn)證用例由數(shù)據(jù)算法仿真工具事先生成,如需要對(duì)驗(yàn)證用例做更多的隨機(jī)化,勢(shì)必要生成更多的驗(yàn)證用例,且隨著隨機(jī)化參數(shù)的增多,生成驗(yàn)證用例的數(shù)量會(huì)呈指數(shù)增長(zhǎng),仿真效率會(huì)降低;其次,算法仿真工具和數(shù)字邏輯仿真工具雖然可以分別在不同的服務(wù)器CPU核心執(zhí)行,但由于驗(yàn)證用例需要先由算法仿真工具生成好,才可被數(shù)字邏輯仿真工具調(diào)用,且生成驗(yàn)證用例的速度和執(zhí)行驗(yàn)證用力的速度不同,難以實(shí)現(xiàn)并行工作,其仿真時(shí)間依然等于生成驗(yàn)證用例時(shí)間+執(zhí)行用例時(shí)間。
聯(lián)合仿真平臺(tái)的結(jié)構(gòu)示意圖如圖3所示:
圖3 聯(lián)合仿真驗(yàn)證平臺(tái)結(jié)構(gòu)示意圖
在聯(lián)合仿真驗(yàn)證平臺(tái)中,算法仿真模型由算法仿真工具生成,由于數(shù)字邏輯仿真工具需要執(zhí)行帶有算法仿真模塊的驗(yàn)證環(huán)境和DUT,其仿真速度會(huì)略慢于傳統(tǒng)仿真平臺(tái),但是由于節(jié)省了生成用例的時(shí)間,總體仿真時(shí)間能夠縮短20%以上。同時(shí),由于聯(lián)合仿真驗(yàn)證平臺(tái)已經(jīng)執(zhí)行算法仿真模塊,當(dāng)需要對(duì)用例的某些參數(shù)進(jìn)行更多的隨機(jī)化時(shí),僅需要在驗(yàn)證環(huán)境中對(duì)參數(shù)做隨機(jī)化操作即可(可通過(guò)隨機(jī)化賦值:result=$randomize(min,max),結(jié)合修改隨機(jī)化種子指令:+ntb_random_seed_automatic(以VCS數(shù)字邏輯仿真工具為例)),修改環(huán)境的復(fù)雜度大大降低,且無(wú)需執(zhí)行額外的驗(yàn)證用例,僅需增加執(zhí)行原有用例的次數(shù)即可。
DPIGEN是Matlab工具中的指令,可將指定的function文件轉(zhuǎn)化為以DPI Component為橋梁的sv驗(yàn)證模型(Jack Erickson.SystemVerilog DPI component generation from a MATLAB FFT.Mathworks,2016;Jack Erickson.HDL Verifier SystemVerilog DPI component generation with Synopsys VCS.MathWorks,2017)。
以O(shè)FDM工程中的FFT算法模塊舉例,該文件名為fft_cal.m,代碼如下:
在該文件所在目錄下打開(kāi)Matlab工具,并執(zhí)行指令:
即可生成算法模型文件(fft_cal.m)轉(zhuǎn)化成c程序文件(fft_cal_dpi.c)、網(wǎng)表文件(fft_cal_dpi.h)、Systemverilog仿真模型(fft_cal_dpi.sv)等文件。生成的仿真模塊可以被Mentor公司的Modelsim、Cadence公司的Incisive和Synopsys公司的VCS支持。
上述指令的結(jié)構(gòu)為:dpigen–arg{arg}fcn
其中:dpigen是指令的主體,-arg后面為輸入數(shù)據(jù)的類型,func是待轉(zhuǎn)換Matlab中function的名字。
dpigen指令的后綴還有其他部分,可通過(guò)help dpigen指令查閱。
通過(guò)對(duì)關(guān)鍵算法模塊進(jìn)行DPIGEN轉(zhuǎn)換,仿真結(jié)果如下:
表1 執(zhí)行時(shí)間比對(duì)(單位:小時(shí))
通過(guò)仿真,總用時(shí)節(jié)省3.66小時(shí)(15.07%)。
表2 執(zhí)行覆蓋率比對(duì)
通過(guò)仿真,增加隨機(jī)化的單條用例的覆蓋率可以有明顯上升,結(jié)合查看覆蓋率報(bào)告,與隨機(jī)化參數(shù)相關(guān)的分支覆蓋率均達(dá)到100%。由于增加隨機(jī)化條件,仿真時(shí)間亦需要更長(zhǎng)。
通過(guò)實(shí)際仿真驗(yàn)證進(jìn)行比較,使用新方法搭建的聯(lián)合仿真驗(yàn)證平臺(tái)相比傳統(tǒng)仿真驗(yàn)證平臺(tái),在執(zhí)行相同數(shù)量測(cè)試用例條件下,仿真驗(yàn)證時(shí)間能夠縮短15%以上;在不增加Matlab參考模型修改成本基礎(chǔ)上,可對(duì)各關(guān)鍵參數(shù)進(jìn)行隨機(jī)化賦值,相關(guān)參數(shù)的觸發(fā)覆蓋率(triggering coverge)理論可以達(dá)到100%。
同時(shí),傳統(tǒng)仿真驗(yàn)證平臺(tái)和聯(lián)合仿真驗(yàn)證平臺(tái)的選取需要結(jié)合DUT的具體功能:比如當(dāng)DUT內(nèi)部算法部分簡(jiǎn)單或不含算法時(shí),僅通過(guò)SVTB即可完成對(duì)DUT全部功能的仿真驗(yàn)證工作,則無(wú)需采用聯(lián)合仿真驗(yàn)證平臺(tái);當(dāng)DUT內(nèi)部包含復(fù)雜的算法模塊,需要外部結(jié)合算法仿真工具協(xié)同進(jìn)行仿真驗(yàn)證時(shí),可以嘗試搭建聯(lián)合仿真驗(yàn)證平臺(tái),減輕搭建算法模型的工作量,增大驗(yàn)證用例的隨機(jī)化程度,提升仿真驗(yàn)證覆蓋率,減小問(wèn)題遺漏的幾率。