一種超大規(guī)模集成電路門級網(wǎng)表仿真的加速方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及計(jì)算機(jī)應(yīng)用技術(shù),是一種超大規(guī)模集成電路門級網(wǎng)表仿真的加速方法,它屬于超大規(guī)模集成電路仿真驗(yàn)證領(lǐng)域。
【背景技術(shù)】
[0002]芯片設(shè)計(jì)實(shí)現(xiàn)大致分為前端邏輯設(shè)計(jì)綜合與后端物理設(shè)計(jì)綜合兩個(gè)部分。其中,后端物理設(shè)計(jì)實(shí)現(xiàn)包括時(shí)鐘樹綜合、布局布線、功耗分析、物理驗(yàn)證和可制造性設(shè)計(jì)等多個(gè)步驟。在芯片設(shè)計(jì)中,前端邏輯的定義、開發(fā)、綜合、集成和驗(yàn)證固然重要。但是隨著半導(dǎo)體制造工藝的發(fā)展,一塊芯片要去流片,進(jìn)而量產(chǎn),其后端物理設(shè)計(jì)實(shí)現(xiàn)顯得非常關(guān)鍵。
[0003]為了保證芯片功能和實(shí)現(xiàn)的正確性,驗(yàn)證將貫穿于芯片的整個(gè)設(shè)計(jì)實(shí)現(xiàn)過程。驗(yàn)證是在設(shè)計(jì)過程中確認(rèn)所設(shè)計(jì)的電路功能的正確性。驗(yàn)證可以通過軟件仿真(SoftwareSimulat1n)、硬件加速器驗(yàn)證(Hardware Emulat1n)和形式驗(yàn)證(Formal Verificat1n)等方法進(jìn)行,它是在流片之前要做的工作。
[0004]軟件仿真是指利用仿真激勵,通過仿真軟件,對SoC體系結(jié)構(gòu)進(jìn)行功能驗(yàn)證。軟件仿真分為前端仿真和后端仿真。前端仿真是指對SoC的RTL代碼進(jìn)行仿真,主要驗(yàn)證體系結(jié)構(gòu)功能的正確性。后端仿真是指利用時(shí)序信息文件(Standard Delay File,sdf),對SoC的門級網(wǎng)表(Gate Level Netlist)進(jìn)行仿真,主要驗(yàn)證體系結(jié)構(gòu)實(shí)現(xiàn)的正確性,重點(diǎn)是驗(yàn)證時(shí)序是否收斂。
[0005]隨著SoC設(shè)計(jì)技術(shù)手段的發(fā)展和越來越多樣化的應(yīng)用需求,SoC體系結(jié)構(gòu)越來越復(fù)雜,芯片規(guī)模越來越龐大。超大規(guī)模集成電路門級網(wǎng)表的仿真驗(yàn)證難度越來越大,所消耗的時(shí)間越來越長,嚴(yán)重阻礙驗(yàn)證工作的進(jìn)展,是設(shè)計(jì)人員和驗(yàn)證人員十分頭疼的工作。
[0006]例如,以一個(gè)64核128G內(nèi)存的服務(wù)器作為驗(yàn)證平臺,驗(yàn)證目標(biāo)是一個(gè)約I億門級的SoC網(wǎng)表,配合時(shí)序信息文件,仿真工具編譯過程需要約40分鐘;仿真運(yùn)行時(shí),處理器讀取并執(zhí)行一條指令需要約5分鐘。那么,執(zhí)行一個(gè)配置100個(gè)寄存器的程序,約250條指令,后仿需要約20個(gè)小時(shí)。不難看出,超大規(guī)模集成電路門級網(wǎng)表的仿真速度十分緩慢,需要有方法加速該過程,提高驗(yàn)證效率。
【發(fā)明內(nèi)容】
[0007]為了解決超大規(guī)模集成電路門級網(wǎng)表的仿真速度十分緩慢的問題,本發(fā)明提出了一種超大規(guī)模集成電路門級網(wǎng)表仿真的加速方法,可以極大程度縮短了超大規(guī)模集成電路門級網(wǎng)表的仿真時(shí)間,提高了驗(yàn)證效率。
[0008]本發(fā)明提出的一種超大規(guī)模集成電路門級網(wǎng)表仿真的加速方法,包括
[0009]步驟1,對集成電路各個(gè)模塊的驗(yàn)證程序進(jìn)行單獨(dú)設(shè)計(jì),并篩選有效的寄存器進(jìn)行配置形成精簡的仿真激勵;
[0010]步驟2,對寄存器進(jìn)行配置,利用精簡的仿真激勵,對SOC的RTL級代碼進(jìn)行仿真驗(yàn)證,設(shè)置關(guān)鍵寄存器和關(guān)鍵時(shí)間點(diǎn),獲取并保存關(guān)鍵寄存器在關(guān)鍵時(shí)間點(diǎn)的輸出值;
[0011]步驟3,依據(jù)保存的關(guān)鍵寄存器在關(guān)鍵時(shí)間點(diǎn)的輸出值,篩選出輸出值與初始值不同的關(guān)鍵寄存器;
[0012]步驟4,門級網(wǎng)表仿真運(yùn)行開始后,在集成電路對應(yīng)模塊完成復(fù)位之后并在工作之前的時(shí)間內(nèi),利用獲取的關(guān)鍵寄存器的輸出值的對步驟3中篩選的關(guān)鍵寄存器進(jìn)行賦值,然后繼續(xù)進(jìn)行門級網(wǎng)表仿真工作。
[0013]優(yōu)選的,步驟2中所述的關(guān)鍵寄存器是電路各個(gè)模塊的功能配置寄存器;所述的關(guān)鍵時(shí)間點(diǎn)是電路各個(gè)模塊的功能配置寄存器配置完畢的時(shí)刻。
[0014]優(yōu)選的,步驟3中篩選出輸出值與初始值不同的關(guān)鍵寄存器后,根據(jù)門級網(wǎng)表的命名規(guī)則,將所述的關(guān)鍵寄存器的每一位輸出值賦值為非初始化值。
[0015]優(yōu)選的,步驟2中關(guān)鍵寄存器輸出值成功獲取后,后續(xù)各種基于該狀態(tài)進(jìn)行仿真驗(yàn)證的工作開始后,在集成電路對應(yīng)模塊完成復(fù)位之后并在工作之前的時(shí)間內(nèi),利用獲取的關(guān)鍵寄存器的輸出值的對相應(yīng)的寄存器進(jìn)行賦值,代替寄存器配置過程。
[0016]本發(fā)明對集成電路各個(gè)模塊的驗(yàn)證程序進(jìn)行單獨(dú)設(shè)計(jì),并篩選有效的寄存器進(jìn)行配置形成精簡的仿真激勵,可以很輕松的完成一定程度的網(wǎng)表仿真加速工作;關(guān)鍵寄存器輸出值成功捕獲后,后續(xù)各種基于該狀態(tài)進(jìn)行仿真驗(yàn)證的工作,均可以省略一系列寄存器配置的過程,極大程度縮短了超大規(guī)模集成電路門級網(wǎng)表的仿真時(shí)間,提高了驗(yàn)證效率。
【附圖說明】
[0017]圖1是本發(fā)明的方法流程示意圖;
[0018]圖2是本發(fā)明加速效果的對比示意圖。
【具體實(shí)施方式】
[0019]為了使本發(fā)明的技術(shù)方案和優(yōu)點(diǎn)更加易于理解,以下結(jié)合具體實(shí)施案例和附圖,對本發(fā)明作進(jìn)一步的詳細(xì)說明。
[0020]本發(fā)明的一種超大規(guī)模集成電路門級網(wǎng)表仿真的加速方法,如圖1所示包括以下步驟:
[0021]步驟1,對集成電路各個(gè)模塊的驗(yàn)證程序進(jìn)行單獨(dú)設(shè)計(jì),并篩選有效的寄存器進(jìn)行配置形成精簡的仿真激勵;
[0022]由于時(shí)間的限制,超大規(guī)模集成電路門級網(wǎng)表仿真驗(yàn)證目標(biāo)主要是關(guān)鍵路徑或關(guān)鍵IP,驗(yàn)證SoC在后端設(shè)計(jì)實(shí)現(xiàn)后,通路是否滿足時(shí)序,IP是否可以正常啟動等。通常情況,門級網(wǎng)表仿真驗(yàn)證都是利用不同子模塊最簡單基礎(chǔ)的仿真激勵。復(fù)雜的仿真激勵,例如大規(guī)模的數(shù)據(jù)搬運(yùn)與計(jì)算等,通常在RTL級軟件仿真或硬件加速器仿真驗(yàn)證階段使用。
[0023]針對超大規(guī)模集成電路門級網(wǎng)表仿真,必須精簡仿真激勵,提高程序的有效性。精簡原則如下:
[0024](I)提高模塊驗(yàn)證的獨(dú)立性。在前端仿真驗(yàn)證或回歸驗(yàn)證時(shí),設(shè)計(jì)人員通常會將多個(gè)模塊、多個(gè)功能的仿真激勵集成到一個(gè)驗(yàn)證程序。但是在門級網(wǎng)表仿真驗(yàn)證時(shí),需要精簡仿真激勵,盡量單獨(dú)驗(yàn)證各個(gè)模塊,減少不必要的模塊串聯(lián)驗(yàn)證。這樣可以并行驗(yàn)證多個(gè)模塊,提高工作效率。
[0025](2)在驗(yàn)證IP時(shí),不配置對于本次驗(yàn)證功能無影響的寄存器,不配置與初始化值相同的寄存器。這樣可以提高驗(yàn)證程序的有效性,減少無用功。
[0026](3)在驗(yàn)證數(shù)據(jù)通路時(shí),傳輸?shù)臄?shù)據(jù)量盡量少。因?yàn)榇罅?、重?fù)性的驗(yàn)證工作應(yīng)該在速度較快的驗(yàn)證平臺上進(jìn)行,例如硬件加速器。在門級網(wǎng)表仿真時(shí),需要明確該驗(yàn)證的主要目的,即芯片后端實(shí)現(xiàn)是否滿足時(shí)序要求,盡量覆蓋更多的通路。
[0027]該步驟是一個(gè)相對獨(dú)立且簡單的步驟,可以單獨(dú)使用,在一定程度上提高門級網(wǎng)表的仿真速度。
[0028]步驟2,對寄存器進(jìn)行配置,利用精簡的仿真激勵,對SOC的RTL級代碼進(jìn)行仿真驗(yàn)證,設(shè)置關(guān)鍵寄存器和關(guān)鍵時(shí)間點(diǎn),獲取并保存關(guān)鍵寄存器在關(guān)鍵時(shí)間點(diǎn)的輸出值;
[0029]此步驟一方面驗(yàn)證精簡后的仿真激勵是否正確,另一方面盡快獲取關(guān)鍵時(shí)間點(diǎn)時(shí),關(guān)鍵寄存器的輸出。關(guān)鍵寄存器和關(guān)鍵時(shí)間點(diǎn)的選取依據(jù)不同驗(yàn)證對象和不同驗(yàn)證需求而定。通常情況下,關(guān)鍵寄存器是集成電路各個(gè)模塊的功能配置寄存器。關(guān)鍵時(shí)間點(diǎn)是集成電路各個(gè)模塊的功能配置寄存器配置完畢的時(shí)刻。如果驗(yàn)證對象是自主設(shè)計(jì)研發(fā)或源代碼公開可見,功能配置寄存器所屬的模塊一般很容易定位。同樣,根據(jù)驗(yàn)證對象的設(shè)計(jì)手冊,一般很容易確定關(guān)鍵時(shí)間點(diǎn),例如驗(yàn)證對象功能使能的時(shí)刻,或驗(yàn)證對象初始化完成的時(shí)刻。
[0030]步驟3,依據(jù)保存的關(guān)鍵寄存器在關(guān)鍵時(shí)間點(diǎn)的輸出值,篩選出輸出值與初始值不同的關(guān)鍵寄存器;
[0031]根據(jù)門級網(wǎng)表的命名規(guī)則,將這些寄存器的每一位輸出值賦值為非初始化值。另夕卜,由于在邏輯綜合和物理實(shí)