本發(fā)明涉及一種驗證全芯片網表截取方法,尤其是一種用于大容量FPGA電路的功能仿真的最優(yōu)網表的生成方法,屬于可編程邏輯器件的技術領域。
背景技術:
隨著半導體制造技術的不斷快速發(fā)展,芯片的集成度越來越高、功能也越來越強大,隨之而來的芯片驗證復雜度也不斷提高,一塊系統(tǒng)芯片的測試用例從數量上就足夠驚人,驗證工作在整個芯片研發(fā)過程中的重要性也越來越大。FPGA芯片中包括數字電路和模擬電路,包括定制設計的電路和半定制設計的電路,同時包含大量的可編程資源。為了驗證整個FPGA芯片的邏輯功能的正確性必須做大量的驗證工作,但是電路的規(guī)模越大,網表文件多達700MB,采用基于candence公司的ncverilog以及synosys公司的vcs的仿真工具,運行大容量電路的功能仿真,一次驗證所需要的時間可能長達一周,發(fā)現錯誤后重新驗證又需要花同樣的時間。同時,占用大量的服務器資源。因此,需要提出一種得到最優(yōu)網表方法,該方法既要節(jié)省仿真資源,又要能提高仿真器運行速度,提高驗證效率。
技術實現要素:
本發(fā)明的目的是克服現有技術中存在的不足,節(jié)省仿真資源,提高仿真器運行速度,提高驗證效率,提供一種大規(guī)模電路全芯片網表截取方法,該方法能夠根據不同的用例靈活動態(tài)配置網表。
按照本發(fā)明提供的技術方案,所述用于大容量FPGA電路功能仿真的最優(yōu)網表的生成方法執(zhí)行的基本過程如下:
步驟1:首先需要獲取所有單元名字以及頂層單元例化名字,生成全芯片的網表配置文件;
步驟2:然后根據FPGA預先配置邏輯功能所用布局布線資源,生成所需單元的配置資源,并通過配套FPGA軟件生成相應的配置文件;
步驟3:最后通過采取不同的配置文件得到最優(yōu)網表,具體為將所需資源的配置文件加入到全芯片網表中,通過腳本處理即生成FPGA電路所用資源的最優(yōu)網表。
具體的,步驟2通過FPGA預先配置一定的功能,定位到每個具體用例,并通過配套FPGA軟件,布局布線后,選擇各模塊單元使用情況,并定義需要定義的配置模塊,根據用例所用的模塊資源、布線資源以及配置資源,生成相應的配置文件。
所述模塊單元使用情況包括三種情況,其中單元名字后加“_NULL”表示此模塊為空,單元名字后加“_SWB”表示只使用此模塊的開關矩陣,單元名字后加“_ALL”表示利用了該模塊的資源。
將FPGA需要處理資源:可編程邏輯單元CLB、數字信號處理DSP、存儲單元BRAM,分為三種類型:CLB_ALL、CLB_NULL、CLB_SWB、DSP_ALL、DSP_NULL、DSP_SWB、BRAM_ALL、BRAM_NULL、BRAM_SWB,并描述需要定義配置資源的CLB_NULL、CLB_SWB、DSP_NULL、DSP_SWB、BRAM_SWB,BRAM_NULL,并通過配套FPGA軟件生成相應的配置文件。
本發(fā)明的優(yōu)點是:能根據驗證用例需求,利用FPGA預先配置才能實現一定的功能,通過采取不同的配置文件得到最優(yōu)網表。本發(fā)明具有靈活動態(tài)配置網表功能,能夠節(jié)省仿真資源,提高仿真器運行速度,提高驗證效率,最大限度的提高驗證電路的覆蓋率,能夠滿足大規(guī)模電路功能仿真的需求。
附圖說明
圖1大容量FPGA電路頂層單元結構示意圖。
圖2大容量FPGA電路資源利用簡圖。
圖3大容量全芯片電路最優(yōu)網表的生成流程圖。
圖4本發(fā)明大容量FPGA中所用BRAM資源結構示意圖。
具體實施方式
下面結合附圖和具體實施例對本發(fā)明作進一步說明。
為了能夠節(jié)省仿真資源,提高仿真器運行速度。本發(fā)明提出了一種用于大容量FPGA電路的功能仿真的最優(yōu)網表的生成方法。
如圖1所示,為大容量FPGA電路頂層單元結構示意圖,由于FPGA集成了可編程邏輯單元(CLB)、數字信號處理(DSP)、時鐘管理(CMT)、存儲單元(Block RAM,BRAM)、時鐘模塊(CLK)、系統(tǒng)控制模塊(CTRL)、高速接口等單元,其中開關矩陣Switch box(SWB)是連接CLB,DSP,BRAM,IO,CLK,高速接口等各個模塊之間的互連樞紐,它由大量的MUX開關(數據選擇器),配置SRAM(靜態(tài)隨機存取存儲器)和繞線組成,遍布于FPGA芯片各個部位,因此驗證整個FPGA芯片的邏輯功能的正確性所需要的網表文件很大,且一次驗證所需要的時間也很長。本發(fā)明可根據不同的用例,自動選出所用的資源,其中圖1陰影部分為某一具體用例所用到的資源,生成最優(yōu)的功能網表,來提升仿真速度和調試的效率。即可以利用FPGA預先配置一定的功能,通過采取不同的配置文件得到最優(yōu)網表。
大容量全芯片資源利用簡圖如圖2所示,本發(fā)明可從FPGA芯片網表中,自動選擇出所用單元資源,配置資源以及布線資源,生成最優(yōu)網表資源,可大大節(jié)省仿真資源,提高仿真器運行速度,提高驗證效率。
生成大容量全芯片電路最優(yōu)網表具體流程圖如圖3所示,首先由cadence公司的virtuoso軟件提取大規(guī)模全芯片電路的網表,通過腳本1,生成module.list,并查找大容量全芯片電路的網表中各功能模塊名,再根據頂層模塊的module名查找其子模塊的module,如此遞歸進行,直到將所有的這些模塊module以及子模塊module全部包含到全芯片的網表,生成全芯片網表的配置文件。該配置文件包含FPGA所有模塊單元名以及例化名,模塊單元主要分為需要處理資源主要為(CLB,DSP,BRAM),不需要處理的資源主要為(IO,CLK,CTRL)。
其次,根據FPGA電路所用資源,通過腳本2選擇需要配置資源,主要定位到每個用例,根據FPGA預先配置一定的功能,布局布線后,選擇各模塊單元使用情況,(一般分為三種情況,其中單元名后加“_NULL”表示此模塊為空,單元名后加“_SWB”表示只使用此模塊的開關矩陣Switch box,單元名后加“_ALL”表示利用了該模塊的資源),并定義需要定義的配置模塊。以BRAM為例,如圖4所示,單元名為BRAM表示資源利用了BRAM資源以及相鄰的SWB,BRAM_SWB為未使用BRAM資源,使用相鄰SWB的布線資源,BRAM_NULL表示未使用BRAM資源以及SWB。將FPGA需要處理資源(CLB,DSP,BRAM)分為三種類型(CLB_ALL、CLB_NULL、CLB_SWB、DSP_ALL、DSP_NULL、DSP_SWB、BRAM_ALL、BRAM_NULL、BRAM_SWB)并描述需要定義配置資源的CLB_NULL、CLB_SWB、DSP_NULL、DSP_SWB、BRAM_SWB,BRAM_NULL,由配套FPGA軟件生成相應的配置文件。
最后,通過腳本3,根據相應的配置文件搜索到需要優(yōu)化的單元的例化名,自動優(yōu)化單元,產生所用資源的最優(yōu)網表文件。該最優(yōu)網表生成方法,只針對具體的case用例,選擇所用的FPGA資源,可大大提高電路仿真速度。
所述腳本1、腳本2、腳本3均為在FPGA中編寫的程序。
本發(fā)明能根據驗證用例需求,利用FPGA預先配置才能實現一定的功能,通過采取不同的配置文件得到最優(yōu)網表。本發(fā)明具有靈活動態(tài)配置網表功能,能夠節(jié)省仿真資源,提高仿真器運行速度,提高驗證效率,最大限度的提高驗證電路的覆蓋率,能夠滿足大容量電路功能仿真的需求。