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