文獻(xiàn)標(biāo)識(shí)碼: A
DOI:10.16157/j.issn.0258-7998.199806
中文引用格式: 王雷,王晨光,吳斌. 基于硬件加速器的高性能芯片仿真與驗(yàn)證[J].電子技術(shù)應(yīng)用,2019,45(8):61-62,67.
英文引用格式: Wang Lei,Wang Chenguang,Wu Bin. Debugging a high-performance WLAN chip with palladium XP emulator[J]. Application of Electronic Technique,2019,45(8):61-62,67.
0 引言
隨著超大規(guī)模集成電路的發(fā)展,芯片數(shù)字電路的規(guī)模時(shí)鐘保持快速增長(zhǎng)的態(tài)勢(shì)。這一發(fā)展趨勢(shì)在給電路設(shè)計(jì)帶來(lái)了巨大挑戰(zhàn)的同時(shí),也使得電路的仿真驗(yàn)證相比之前更為困難。當(dāng)前在子模塊設(shè)計(jì)階段,設(shè)計(jì)人員主要采用軟件模擬(Software Simulation)進(jìn)行初步驗(yàn)證,但是在整個(gè)芯片層面如果依然采用軟件模擬,其耗時(shí)非常長(zhǎng),往往模擬單一幀的時(shí)間需要數(shù)個(gè)小時(shí)甚至數(shù)十個(gè)小時(shí);而如果采用FPGA驗(yàn)證,對(duì)于全芯片設(shè)計(jì)的綜合時(shí)間需要數(shù)個(gè)小時(shí),而且在實(shí)際運(yùn)行中出現(xiàn)問(wèn)題難以快速定位,每次添加觀測(cè)信號(hào)都需要重新綜合。使用新的驗(yàn)證工具來(lái)更好地進(jìn)行錯(cuò)誤定位和修正后驗(yàn)證成為了保證芯片按時(shí)完成設(shè)計(jì)的關(guān)鍵[1-2]。
1 測(cè)試芯片簡(jiǎn)介
本項(xiàng)目所要仿真驗(yàn)證的設(shè)計(jì)是一款基于IEEE 802.11 AC(Wi-Fi 5)標(biāo)準(zhǔn)的無(wú)線通信基帶芯片,采用了4×4 Multiple Input Multiple Output(MIMO),256 QAM信道調(diào)制模式等多種技術(shù),可以實(shí)現(xiàn)協(xié)議層最高1.2 Gb/s的吞吐率。該芯片內(nèi)集成了JESD204B接口、PCIE 2.0接口、下層媒體介入層(low Media Access Control,low MAC)模塊、發(fā)送機(jī)、接收機(jī)等模塊。在FPGA原型綜合中使用了超過(guò)200k ALM,35k的寄存器單元和2 Mb以上的存儲(chǔ)器資源,整體芯片等效門超過(guò)了1 000萬(wàn)。該芯片整體的架構(gòu)如圖1所示,主控端通過(guò)PCIE接口與芯片通信,而模擬和射頻芯片則通過(guò)JESD204B接口進(jìn)行通信。發(fā)送機(jī)部分主要包括擾碼生成、交織、反傅里葉變換、調(diào)制器等模塊;接收機(jī)部分則包括濾波器、同步器、傅里葉變換、信道估計(jì)、MIMO檢查、去交織、維特比解碼和去擾碼等模塊。
該芯片設(shè)計(jì)主要規(guī)格指標(biāo)如下:
(1)具有4根天線,支持最高4個(gè)空間流動(dòng)發(fā)送接收;
(2)向下兼容802.11a/b/g/n;
(3)支持802.11AC 20M/40M/80MHz 3種帶寬;
(4)支持多種調(diào)制編碼模式,最高支持256 QAM,支持短GI,物理層可實(shí)現(xiàn)最高速率1.7 Gb/s。
2 硬件仿真與加速器
在電路的開發(fā)階段,主要采用Verilog可綜合語(yǔ)句進(jìn)行電路表達(dá),使用非可綜合語(yǔ)句進(jìn)行測(cè)試環(huán)境的搭建。該方法是軟件模擬中常用的方式,保證了芯片各個(gè)子模塊能夠快速地完成初步開發(fā)。但是在整體調(diào)試階段,如果還是采用軟件模擬的方式,耗時(shí)非常長(zhǎng),而且只能使用非常簡(jiǎn)單的測(cè)試用例。如果采用FPGA原型系統(tǒng)進(jìn)行驗(yàn)證,雖然整體驗(yàn)證系統(tǒng)可以全速運(yùn)行,但是在發(fā)生運(yùn)行異常需要尋找設(shè)計(jì)中錯(cuò)誤點(diǎn)的時(shí)候,往往需要修改觀測(cè)信號(hào),而每次修改都意味著需重新綜合整個(gè)設(shè)計(jì)。在調(diào)試開始的階段,整體設(shè)計(jì)中不完善的部分還非常多,如果只采用軟件模擬和FPGA硬件仿真,其調(diào)試效率無(wú)法達(dá)到一個(gè)合理的速度。
在這種情況下,采用硬件仿真加速器就成為了一個(gè)非常合理的選擇。它在仿真速度上介于軟件模擬和FPGA原型系統(tǒng)之間,但是對(duì)內(nèi)部信號(hào)的觀測(cè)與下載要比FPGA方便,能夠提供與軟件模擬相類似的波形觀測(cè)能力,且在修改RTL代碼后重新綜合的時(shí)間也與軟件模擬相近,要比同一款芯片進(jìn)行FPGA綜合的時(shí)間減少很多。
Cadence公司的Palladium XP硬件仿真加速器是一款業(yè)內(nèi)領(lǐng)先的仿真加速器。其工作模式主要可分為軟件模擬加速(Simulation Acceleration,SA)與全系統(tǒng)仿真(In-Circuit Emulation,ICE)。在SA模式下,待測(cè)芯片(Die Under Test,DUT)部分下載到硬件仿真器后仿真運(yùn)行,而不可綜合的測(cè)試代碼部分還是運(yùn)行在服務(wù)器上由軟件模擬實(shí)現(xiàn)。這種方式的好處在于可以不用修改原來(lái)測(cè)試代碼。而在ICE模式下,DUT和測(cè)試代碼均需要下載到仿真器上,因此測(cè)試代碼也需要符合可綜合的要求。
3 仿真代碼修改與ICE模式仿真實(shí)現(xiàn)
在電路子模塊的開發(fā)階段,設(shè)計(jì)人員積累了較多不可綜合的測(cè)試代碼,因此希望能夠在硬件仿真階段繼續(xù)使用之前的大部分測(cè)試代碼,所以選用SA模式進(jìn)行硬件仿真。但是在測(cè)試過(guò)程中發(fā)現(xiàn),由于測(cè)試部分依然運(yùn)行在服務(wù)器上,其運(yùn)行速率的瓶頸受限于服務(wù)器的性能,依然難以實(shí)現(xiàn)更為快速的仿真測(cè)試。從仿真時(shí)間來(lái)看,雖然相比全部由軟件模擬可以減小90%的仿真時(shí)間,但是依然難以滿足本項(xiàng)目對(duì)仿真效率的要求。
為了進(jìn)一步提高測(cè)試效率,需要對(duì)測(cè)試代碼進(jìn)行可綜合性修改。通過(guò)對(duì)仿真器說(shuō)明文檔的研究,發(fā)現(xiàn)對(duì)于仿真器的可綜合代碼要求與FPGA或者其他綜合工具的要求有較多不同之處[3]。特別是其對(duì)task、initial、for語(yǔ)句的支持使得測(cè)試代碼整體架構(gòu)不需要作過(guò)多的調(diào)整,依然采用initial塊控制測(cè)試用例的先后順序,task語(yǔ)句定義具體測(cè)試用例的方式來(lái)進(jìn)行。當(dāng)然相比軟件模擬中對(duì)測(cè)試語(yǔ)句基本無(wú)限制相比,依然需要對(duì)測(cè)試代碼進(jìn)行諸多修改以滿足可硬件加速器可綜合的要求。修改中發(fā)現(xiàn)的主要修改點(diǎn)和注意點(diǎn)包括:
(1)在同一個(gè)initial塊及其內(nèi)部調(diào)用的task必須采用同一個(gè)時(shí)鐘信號(hào)進(jìn)行同步;
(2)不支持“#延時(shí)”的寫法,可以通過(guò)插入若干個(gè)時(shí)鐘周期來(lái)控制兩條相鄰指令的間隔;
(3)task內(nèi)可以調(diào)用同一module內(nèi)的task,但是不能調(diào)用子模塊內(nèi)定義的task;
(4)task內(nèi)可以檢測(cè)子模塊內(nèi)的信號(hào),但是不能改變此類信號(hào)的賦值;
(5)wait指令只能對(duì)電平信號(hào)使用,不能進(jìn)行邊沿觸發(fā),可以通過(guò)在后面增加一個(gè)時(shí)鐘邊沿來(lái)保證同步;
(6)task內(nèi)盡量使用非阻塞賦值,信號(hào)的先后時(shí)序則通過(guò)@(posedge clk)來(lái)實(shí)現(xiàn);
(7)如果采用for循環(huán)進(jìn)行操作,要注意for循環(huán)的控制語(yǔ)句理論上能夠?qū)崿F(xiàn)的最大周期數(shù),如果語(yǔ)句內(nèi)某些信號(hào)無(wú)法滿足該最大周期數(shù),則會(huì)綜合出錯(cuò)。
通過(guò)對(duì)相關(guān)測(cè)試代碼的修改,最終使得整個(gè)DUT和測(cè)試代碼均可完成仿真綜合并下載至仿真加速器內(nèi)進(jìn)行運(yùn)行,成功地提高了整個(gè)系統(tǒng)的運(yùn)行速度。在ICE模式下一個(gè)1 000幀的測(cè)試用例只需要20 min便可運(yùn)行完成,相比原有的軟件模擬提高了400倍的整體運(yùn)行效率。主要模塊的信號(hào)也可全部下載下來(lái),大大提高了代碼錯(cuò)誤定位的速度。
4 結(jié)論
在目前的超大規(guī)模芯片設(shè)計(jì)過(guò)程中,電路調(diào)試與驗(yàn)證所需的人員和時(shí)間往往超過(guò)了電路設(shè)計(jì)階段的人員及時(shí)間。因此在整體芯片的開發(fā)過(guò)程中必須重視芯片驗(yàn)證的效率。而合理地使用硬件仿真加速器就是一個(gè)能夠大大提高芯片調(diào)試與驗(yàn)證效率的方法。
而對(duì)于設(shè)計(jì)人員而言,在開發(fā)階段如果能夠考慮今后驗(yàn)證的需求,設(shè)計(jì)更為符合可綜合語(yǔ)句要求的測(cè)試用例,也能夠更好地兼顧設(shè)計(jì)階段模擬和后續(xù)仿真的需求,從而提高整體的開發(fā)進(jìn)度。
參考文獻(xiàn)
[1] 柏穎,馬玲芝,郭嘉,等.基于硬件仿真加速平臺(tái)的PCIE系統(tǒng)級(jí)調(diào)測(cè)試方法[J].電子技術(shù)應(yīng)用,2017,43(8):28-31.
[2] 蘇一萌.基于Palladium XP的Emulation運(yùn)行性能和資源消耗的優(yōu)化方法[J].中國(guó)集成電路,2012,11(162):65-67.
[3] UXE User Guide(Product Version 15.1)[M].Cadence,2016.
作者信息:
王 雷,王晨光,吳 斌
(中國(guó)科學(xué)院微電子研究所,北京100029)