胡 凱,叢紅艷,閆 華,張艷飛,李 涌
(1.中科芯集成電路有限公司,江蘇無錫 214072;2.中微億芯有限公司,江蘇無錫 214072)
現(xiàn)場可編程門陣列(FPGA)芯片集成資源的數(shù)量和設計的復雜性日漸提高,研發(fā)周期和面市時間的壓力使實現(xiàn)驗證的完整性和高效性受到挑戰(zhàn)。為了驗證整個FPGA 芯片邏輯功能的正確性,必須做大量的驗證工作,驗證工作量已經占到芯片整個研制流程工作量的60%~80%[1-3]。Flash 系列FPGA 芯片集成了基本功能模塊(VERSATILE)、系統(tǒng)配置模塊(CFG)、靜態(tài)隨機存取存儲器(SRAM)、時鐘管理模塊(CCC)、輸入輸出模塊(IO)等。在Flash 系列FPGA 芯片驗證中(也稱為FPGA 芯片的系統(tǒng)級驗證),驗證重點及難點主要集中在驗證芯片集成的正確性及配置過程和全局信號的連線的正確性。
FPGA 芯片系統(tǒng)級驗證側重于不同子系統(tǒng)之間的信號交互以及實現(xiàn)不同驗證場景的驗證用例,為了提高驗證覆蓋率,驗證對象需要包含大量的驗證用例,所消耗的驗證時間很長,而配置下載時間即下載位流文件約占整個驗證時間的2/3,因此,如何對Flash 系列FPGA 芯片設計中的復雜驗證對象進行驗證、提高驗證功能覆蓋率已經成為縮短總體產品驗證時間所面對的挑戰(zhàn)。為了加快仿真速度,提高驗證效率,本文提出了一種加速Flash 系列FPGA 芯片的系統(tǒng)級驗證方法。
全芯片驗證平臺如圖1 所示,其主要包括驗證激勵、縮減后的配置位流文件、被測電路(DUT)、參考模型和監(jiān)測器,DUT 為待驗證的全芯片電路網表,縮減后的配置位流文件通過DUT 的配置數(shù)據(jù)輸入接口輸入到DUT 中,將相對應的驗證激勵通過DUT 的通用數(shù)據(jù)輸入接口輸入到DUT 中,同時驗證激勵通過DUT 的通用數(shù)據(jù)輸入接口輸入到參考模型,利用監(jiān)測器監(jiān)測DUT 的輸出是否與參考模型的期望值一致[4-6]。采用此方法的優(yōu)點是驗證對象為全芯片電路,模塊功能簡單且占用配置位流幀數(shù)較少的驗證用例,可以顯著降低驗證時間,提高驗證效率。但是對于全芯片電路功能復雜、占用配置位流幀數(shù)較多的驗證用例,采用此方法不能有效提高驗證效率,驗證時間依然很長。
圖1 全芯片驗證平臺
FPGA 芯片中的邏輯資源排布結構及其幀分布如圖2 所示,F(xiàn)PGA 芯片中的邏輯資源主要包括VERSATILE 和互連線資源。配置位流的第1 幀對應芯片頂部的第1 行電路,最后1 幀對應芯片底部最后1 行電路,完成第1 幀到最后1 幀的全部配置碼流的下載耗時較長。在2U 服務器,即1 TB 內存、Intel(R)Xeon(R) Gold 6254 CPU@3.10 GHz,萬兆網絡硬盤,10 TB 存儲容量條件下,采用1 個簡單的移位寄存器完成全部配置位流下載,需要7~8 d 時間,如果驗證用例包含的芯片資源較多,那么仿真驗證的時間會更長。
圖2 FPGA 芯片中的邏輯資源排布結構及其幀分布
某一驗證用例需要的邏輯資源為第M~N 幀,位流截取方法是將第M 幀作為配置寄存器字段的第1 幀,將第N 幀作為配置寄存器字段的最后1 幀,第M~N幀的數(shù)據(jù)即是需要配置寄存器的字段,刪除配置寄存器字段的第1~M-1 幀以及第N+1 幀至最后1 幀,得到所需要的配置位流文件,這樣就可以根據(jù)驗證對象是芯片電路的某些區(qū)域來選擇配置位流文件大小,大大縮短仿真驗證時間[7-8]。對于覆蓋率驅動驗證,所用資源較多的、位流文件較大的驗證用例,采用該方法的缺點是不能有效提高驗證效率,仿真耗時仍然很大[9]。
通過解析配置位流文件可以得出配置位流與芯片電路之間的映射關系,即字/位線(WL/BL)分布規(guī)律,解析并使用腳本實現(xiàn)比特流的規(guī)律提取,該方法針對單個驗證用例解析配置位流文件,可以有效縮短仿真時間,提高仿真效率,使得FPGA 全芯片集成驗證的配置時間大大縮短。針對FPGA 全芯片集成驗證時的大量驗證用例,該方法通過維護一個特征參數(shù)庫、利用觸發(fā)參數(shù)觸發(fā)每個驗證用例進行仿真驗證,可以減少人工重復作業(yè)時間,實現(xiàn)仿真環(huán)境自動化。
以某一款Flash 系列FPGA 芯片為例,1 幀配置碼流共計2912 bit 配置數(shù)據(jù),對應數(shù)據(jù)移位寄存器(DSR)電路的每1 BL 輸出位,在不了解全芯片F(xiàn)lash單元的WL/BL 坐標的情況下,以幀為單位,每打開1個WL,就賦值相應的2912 個DSR 電路的BL 輸出位。這種方法相當于逐幀賦值配置碼流,統(tǒng)計DSR 電路的所有BL 輸出信號與2912 位配置碼流的每一位對應關系,通過腳本實現(xiàn)每1 幀的賦初值操作,大大減少了下載和配置位流數(shù)據(jù)的時間,因此可以有效縮短仿真驗證時間,提高仿真驗證效率,縮短了FPGA 全芯片系統(tǒng)級驗證時間。具體流程如圖3 所示:(1)梳理DSR 電路所有BL 信號的位線順序,即電路BL 信號與svf 文件幀數(shù)據(jù)的映射關系;(2)根據(jù)svf 文件幀數(shù)據(jù)與電路BL 信號映射關系編寫腳本,實現(xiàn)賦值每1幀數(shù)據(jù)的功能;(3)梳理CFG、地址移位寄存器(ASR)、DSR 均屬于配置電路的一部分輸出信號類型,根據(jù)ASR、DSR、CFG 與其他電路之間的互連關系,將互連信號分為WL 信號、BL 信號、全局信號、控制信號(如BL 中繼控制信號、IO 初始化配置信號)等;(4)根據(jù)配置電路輸出信號分類,對相應信號做配置,完成前后2 種狀態(tài)的賦初值,模擬配置完成前后的信號狀態(tài),保證芯片除配置電路以外的部分實現(xiàn)正常的功能;(5)完成上述關系梳理及腳本編寫后,通過全芯片驗證環(huán)境調試,根據(jù)賦值的配置位流對FPGA 進行集成功能驗證。
圖3 目標驗證用例的流程
用面向對象的驗證語言System Verilog,建立Verilog+CDL 的混合驗證環(huán)境(協(xié)同仿真環(huán)境)。采用Synopsys 公司的VCS 的仿真工具設計仿真驗證[10]。
1)單個應用61 階有限脈沖響應(FIR)濾波器,位流截取方法與配置位流文件的解析方法驗證結果如圖4 所示,DUT 輸出與參考模型輸出結果一致,功能驗證正確。
2)單個應用61 階FIR 濾波器用例仿真運行結果和時間如圖5 所示,采用位流截取方法驗證FIR 濾波器的時間約為37.58 h,而采用配置位流文件的解析方法驗證FIR 濾波器的時間為725.72 s,大大縮短了驗證時間。
3)在2U 服務器條件下,多個用例驗證仿真時間結果如表1 所示。從表1 可以看出,基于覆蓋率驅動的驗證,在需要運行多個功能復雜的用例條件下,配置位流文件的解析方法是位流截取方法速度的180~200倍,大大提高了驗證效率。
圖4 位流截取方法與賦值配置位流文件的解析方法功能驗證結果
圖5 單個用例位流截取方法與配置位流文件的解析方法運行時間比較
表1 多個用例驗證時間比較
本文對Flash 系列FPGA 芯片集成驗證方法進行了研究,針對所用資源多、功能復雜的驗證用例位流截取方法驗證周期長、驗證效率低的問題,提出了使用配置位流文件的解析方法,該驗證方法可以根據(jù)驗證用例需求,賦值相應的配置位流,減少下載和配置位流數(shù)據(jù)的時間,從而大大減少仿真時間,提高驗證效率,最大限度提高驗證電路的覆蓋率,滿足大規(guī)模電路功能仿真的需求。該方法已成功應用于Flash 系列FPGA 芯片電路功能驗證工程實踐中。