文獻(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ǔ)器資源,,整體芯片等效門(mén)超過(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 硬件仿真與加速器
在電路的開(kāi)發(fā)階段,,主要采用Verilog可綜合語(yǔ)句進(jìn)行電路表達(dá),,使用非可綜合語(yǔ)句進(jìn)行測(cè)試環(huán)境的搭建。該方法是軟件模擬中常用的方式,,保證了芯片各個(gè)子模塊能夠快速地完成初步開(kāi)發(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)試開(kāi)始的階段,整體設(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)
在電路子模塊的開(kāi)發(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í)”的寫(xiě)法,可以通過(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í)間,。因此在整體芯片的開(kāi)發(fā)過(guò)程中必須重視芯片驗(yàn)證的效率。而合理地使用硬件仿真加速器就是一個(gè)能夠大大提高芯片調(diào)試與驗(yàn)證效率的方法,。
而對(duì)于設(shè)計(jì)人員而言,,在開(kāi)發(fā)階段如果能夠考慮今后驗(yàn)證的需求,設(shè)計(jì)更為符合可綜合語(yǔ)句要求的測(cè)試用例,,也能夠更好地兼顧設(shè)計(jì)階段模擬和后續(xù)仿真的需求,,從而提高整體的開(kāi)發(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)