欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

一種自動調度邏輯仿真與代碼覆蓋率分析的方法與系統(tǒng)的制作方法

文檔序號:6428316閱讀:242來源:國知局
專利名稱:一種自動調度邏輯仿真與代碼覆蓋率分析的方法與系統(tǒng)的制作方法
技術領域
本發(fā)明涉及系統(tǒng)仿真領域,尤指一種自動調度邏輯仿真與代碼覆蓋率分析的方法與系統(tǒng)。
背景技術
在大規(guī)模邏輯(FPGA/ASIC)驗證中,仿真與代碼覆蓋率分析是其中一個重要過程。
其基本執(zhí)行流程如下(1)預編譯(Instrumentation)——對被測邏輯整合,產(chǎn)生適合代碼覆蓋率分析的文件;(2)仿真(Simulation)——仿真用例的執(zhí)行過程,其過程中加入代碼覆蓋率分析;(3)代碼覆蓋率結果分析(Reporting)——合并多個仿真用例執(zhí)行后產(chǎn)生代碼覆蓋率數(shù)據(jù),并產(chǎn)生代碼覆蓋率報告。
一般來說,每個邏輯項目驗證都會需要多個仿真用例的支持。如何完成整個邏輯項目驗證中多個仿真用例的聯(lián)合仿真與代碼覆蓋率分析過程,業(yè)界有許多開展技術。
現(xiàn)有技術一GUI技術,這是基本技術。簡要介紹如下(1)首先,邏輯驗證人員在代碼覆蓋率分析工具的GUI環(huán)境下,根據(jù)個人的經(jīng)驗和判斷,主要通過選擇對話框、確認按鈕的步步引導,完成預編譯過程;(2)然后,在仿真過程的GUI環(huán)境下,依據(jù)類似的操作過程,完成仿真用例的執(zhí)行過程;(3)最后,在代碼覆蓋率分析工具的GUI環(huán)境下,依據(jù)類似的操作過程,完成代碼覆蓋率結果的分析,并給出覆蓋率分析報告。
現(xiàn)有技術一的缺點缺點1配置都是測試執(zhí)行時臨時進行的,其效果完全取決于執(zhí)行者個人的經(jīng)驗和技術水平;缺點2執(zhí)行過程難以統(tǒng)一,好的經(jīng)驗不易積累和共享,不易形成標準化的運作流程;缺點3每個測試執(zhí)行都要人工參與,邏輯驗證人員無法從這些機械重復的事務中解放出來。
現(xiàn)有技術二局部意義的腳本化技術。
腳本化技術是多數(shù)邏輯驗證人員經(jīng)常采用的技術。一般來說,常用仿真工具和代碼覆蓋率分析工具都支持腳本化技術(如TCL等)。通過編寫腳本,可以使預編譯過程、各個仿真用例仿真過程或代碼覆蓋率結果分析過程的執(zhí)行實現(xiàn)自動化。
但是,現(xiàn)有技術的“局部意義的腳本化技術”,實現(xiàn)的是某個局部階段的腳本化,并非邏輯驗證中仿真與代碼覆蓋率分析全流程的腳本化。
現(xiàn)有技術二的缺點該技術還限制于“局部意義的腳本化技術”,解決了局部范圍的腳本化,但無法解決邏輯仿真與代碼覆蓋率分析全流程自動化。仿真前的預編譯過程,以及仿真后的代碼覆蓋率結果分析過程,還需要人工參與啟動。盡管每個仿真用例可以通過腳本實現(xiàn)自動執(zhí)行,但啟動每個仿真用例的工作還需要邏輯驗證人員手工參與。仿真用例數(shù)目越多,邏輯驗證人員參與的工作量越大。

發(fā)明內(nèi)容
本發(fā)明提供一種自動調度邏輯仿真與代碼覆蓋率分析的方法與系統(tǒng),實現(xiàn)邏輯仿真與代碼覆蓋率分析全流程自動化。
本發(fā)明提供的自動調度邏輯仿真與代碼覆蓋率分析的方法,包括下列步驟11)使用一主模塊對被測邏輯進行預編譯,產(chǎn)生適合代碼覆蓋率分析的預編譯文件;12)所述主模塊調度用戶提供的全部仿真用例,生成一仿真用例索引目錄;13)所述主模塊根據(jù)上述仿真用例索引目錄順序執(zhí)行各仿真用例,對被測邏輯進行仿真測試;14)所述主模塊根據(jù)預編譯文件得到各仿真用例執(zhí)行后的代碼覆蓋率結果并保存。
根據(jù)本發(fā)明的上述方法,還包括有下列步驟將代碼覆蓋率結果輸出給一代碼覆蓋率結果分析模塊,由該結果分析模塊實現(xiàn)仿真用例執(zhí)行后被測邏輯的代碼覆蓋率結果分析并給出分析報告。
根據(jù)本發(fā)明的上述方法,所述主模塊在計算機中通過腳本語言實現(xiàn),仿真用例的運行是由腳本進行控制;其中主模塊執(zhí)行各仿真用例的具體方法為順序調度執(zhí)行每個用例目錄下的啟動腳本;在啟動腳本中進行該仿真用例所需的相關配置;順序調度激勵產(chǎn)生、仿真執(zhí)行、結果分析腳本,完成該仿真用例的執(zhí)行。
根據(jù)本發(fā)明的上述方法,其特征在于所述主模塊對被測邏輯項目和仿真用例進行路徑設置并創(chuàng)建目錄結構,將被測邏輯和仿真用例拷貝到相應路徑下保存;自動生成仿真用例名稱列表;主模塊自動搜索仿真用例名稱,寫入到仿真用例索引目錄,并彈出圖形用戶界面,供用戶選擇是否需要進行仿真用例修改。
根據(jù)本發(fā)明的上述方法,所述主模塊設置有代碼覆蓋率分析的控制開關,供用戶選擇是否需要對代碼覆蓋率進行分析。
本發(fā)明提供一種自動調度邏輯仿真與代碼覆蓋率分析的系統(tǒng),包括一主模塊實現(xiàn)對系統(tǒng)中各模塊的調度;一預編譯模塊實現(xiàn)被測邏輯的預編譯過程;一用戶模塊包括被測邏輯、總線功能模型和若干仿真用例,由用戶提供;一代碼覆蓋率結果分析模塊實現(xiàn)仿真用例執(zhí)行后被測邏輯的代碼覆蓋率結果分析及報告功能;所述主模塊調度預編譯模塊對被測邏輯進行預編譯,產(chǎn)生適合代碼覆蓋率分析的預編譯文件;所述主模塊調度用戶提供的仿真用例,由總線功能模型模擬周圍器件和邏輯接口,向被測邏輯提供所需的各種激勵,進行仿真測試,并將測試結果送入結果分析模塊中進行分析。
本發(fā)明的上述系統(tǒng),還包括有一工具支持模塊提供調度邏輯仿真與代碼覆蓋率分析過程中需要用到的一些典型功能,由所述主模塊進行調度;一仿真配置模塊提供仿真過程中需要的配置項,由所述主模塊進行調度。
采用本發(fā)明的方法與系統(tǒng),能夠實現(xiàn)邏輯仿真與代碼覆蓋率分析全流程自動化。


圖1為本發(fā)明系統(tǒng)結構圖;圖2為本發(fā)明方法實施例流程圖;圖3為本發(fā)明方法實施例中的目錄結構示意圖。
具體實施例方式
圖1為本發(fā)明的邏輯仿真與代碼覆蓋率分析系統(tǒng)結構示意圖,虛線框內(nèi)為“用戶提供部分”。
如圖所示,主模塊主要實現(xiàn)一些環(huán)境變量的配置,以及對各子模塊的調度功能。
工具支持模塊提供調度邏輯仿真與代碼覆蓋率分析過程中需要用到的一些典型功能,由所述主模塊進行調度;例如支持用戶自由選擇是否需要啟動代碼覆蓋率分析、支持自動搜索邏輯代碼文件并允許用戶根據(jù)特定需求來調整需要進行覆蓋率分析的邏輯文件、支持自動搜索仿真用例集并根據(jù)用戶特定需求來調整本次仿真中需要執(zhí)行的仿真用例、支持仿真編譯過程的選擇、支持自動創(chuàng)建與配置仿真目錄、支持文件到列表的轉換、支持文件的批量拷貝與刪除,等等。
仿真配置提供仿真過程中需要的配置項,由所述主模塊進行調度。例如配置代碼覆蓋率分析所需的設計文件、配置待加載的原始覆蓋率文件、配置仿真后保存的結果覆蓋率文件、配置仿真過程中代碼覆蓋率分析的一些其它特殊屬性,等等。
預編譯模塊實現(xiàn)被測邏輯的預編譯過程,例如支持用戶對所有邏輯代碼批量選擇所需的代碼覆蓋率類型、支持用戶根據(jù)邏輯代碼的重要性差異而選擇不同分析深度的代碼覆蓋率類型、支持用戶對不同的語句類型和邏輯操作符選擇是否進行代碼覆蓋率分析,等等。
代碼覆蓋率結果分析模塊實現(xiàn)仿真用例執(zhí)行后被測邏輯的代碼覆蓋率結果分析及報告功能,例如支持每個仿真用例的結果覆蓋率文件與其名稱一致、支持仿真用例集中所有結果覆蓋率文件的自動合并、支持用戶選擇所關心的代碼覆蓋率類型并給出覆蓋率報告、支持用戶選擇所關心的類型進行代碼文件的排序,等等。
用戶提供部分主要包括被測邏輯(DUT)、共享模型、BFM(Bus FunctionalModel,總線功能模型)、仿真用例等內(nèi)容。
被測邏輯邏輯仿真測試活動中所關注的被測對象,其主要形式是面向可編程邏輯芯片的可綜合RTL代碼;
共享模型其代碼形式和DUT類似,該部分可以是一些已成熟的設計,或由芯片商等提供的一些商用IP模塊,和DUT一起構成完整的邏輯。這部分在邏輯測試活動中不是主要的關注對象,一般也不再進行代碼覆蓋率分析;BFM總線功能模型,是仿真測試平臺(TestBench)的一個重要組成部分,模擬周圍器件和邏輯的接口,向邏輯提供所需的各種激勵,并捕獲邏輯的響應結果,送入結果分析模塊中進行分析。BFM可以由可綜合的語言編寫,也可以由C、C++、SystemC等高級語言編寫;仿真用例在仿真活動中執(zhí)行的測試用例,仿真用例的運行是由腳本控制的。其中包括一個啟動腳本、可能有一個或多個激勵產(chǎn)生腳本、仿真執(zhí)行腳本、結果分析腳本等,啟動腳本順序調度激勵產(chǎn)生、仿真執(zhí)行、結果分析等腳本。對于每個仿真用例,其啟動腳本的名稱都相同,便于主模塊(調度算法模塊)對其進行調度執(zhí)行;但其配置參數(shù)有差別,分別實現(xiàn)不同的仿真控制,完成不同的功能測試。
如圖2所示,為本發(fā)明方法一具體實施例的流程圖,其中主模塊為用腳本語言實現(xiàn)的計算機程序,包括如下具體步驟(1)主模塊設置邏輯項目路徑,創(chuàng)建圖3所示的目錄結構,一并參見圖3,包括一級目錄project_name——具體邏輯項目的名稱;二級目錄bfm——存放仿真BFM文件;rm——存放仿真所需的參考模型,為可選項;rtl——存放被測邏輯;sim——仿真環(huán)境所在目錄,包括四個三級目錄;sim_work——仿真工作庫;cov_work——代碼覆蓋率分析工作庫;
report——存放代碼覆蓋率報告;log——存放過程中產(chǎn)生的一些有用log信息;另外,sim目錄還存放仿真配置文件、預編譯腳本、代碼覆蓋率結果分析腳本。
tests——仿真用例所在目錄。包含多個三級目錄。推薦三級目錄命名與具體仿真用例名稱一致,每個仿真用例的啟動腳本名稱統(tǒng)一(例如,可統(tǒng)一為start.tcl)。
tools——存放仿真及代碼覆蓋率分析過程中可能用到的工具腳本。
(2)主模塊提供用戶瀏覽器界面,以此將被測邏輯(DUT)、BFM、共享模型、仿真配置模塊、預編譯模塊、代碼覆蓋率結果分析模塊、仿真用例等從其它地方拷貝到相應路徑下,也可以由用戶手工追加并分別配置;(3)主模塊設置代碼覆蓋率分析過程控制,即配置是否進行代碼覆蓋率分析的控制開關(code_cov_flag),其值為“0”或“1”;(4)如果代碼覆蓋率分析的控制開關為“0”,則轉到步驟(20),否則執(zhí)行步驟(5);(5)自動查找.\rtl目錄下的邏輯代碼文件,并將其索引寫入到一個索引文件(instr_index.f);(6)主模塊彈出對話框,詢問用戶是否需要修改這個索引文件(即是否要對索引文件中列出的所有邏輯代碼文件進行代碼覆蓋率分析);如果需要修改,執(zhí)行步驟(7),否則轉至步驟(8);(7)通過文本編輯器打開該文件,供用戶修改,用戶修改完畢、保存退出后,可按“確認”按鈕,程序向下執(zhí)行至(8);修改過程中“確認”按鈕無效;(8)彈出是否進行“預編譯”過程選擇按鈕,供用戶選擇是否進行預編譯。如果邏輯代碼沒有更改,預編譯過程只需要進行一次即可;如果選擇進行預編譯,則程序向下執(zhí)行(9),否則轉向(10);
(9)啟動預編譯模塊,依據(jù)該模塊中所進行的相關配置,產(chǎn)生相應的預編譯文件;(10)彈出“仿真編譯選擇”按鈕,用戶根據(jù)需要選擇是否進行仿真編譯,如否,則轉至步驟(12);(11)如果代碼覆蓋率分析控制開關為1,則編譯預編譯代碼,用戶也可根據(jù)需要選擇共享模型、BFM模塊,調用仿真編譯腳本,選擇執(zhí)行編譯過程,之后按“確認”按鈕,程序進行相關操作;(12)主模塊自動搜索仿真用例集.\tests下面的仿真用例名稱,并寫入到仿真用例索引列表(tst_index.f);(13)主模塊彈出圖形用戶界面,供用戶選擇是否需要進行修改仿真用例列表,如果是,執(zhí)行步驟(14);否則,轉至步驟(15);(14)通過文本編輯器打開該索引文件,供用戶修改;用戶修改完畢、保存退出后,按“確認”按鈕,程序向下執(zhí)行,修改過程中“確認”按鈕無效;(15)依據(jù)修改后的仿真用例索引文件(tst_index.f),給各仿真用例設定標號N,初始化N=1;(16)主模塊,順序調度執(zhí)行每個用例目錄下的啟動腳本;在啟動腳本中進行該仿真用例所需的相關配置,并順序調度激勵產(chǎn)生、仿真執(zhí)行、結果分析等腳本,完成該仿真用例的執(zhí)行;(17)保存當前仿真用例執(zhí)行后的覆蓋率結果文件;(18)判斷N是否為索引文件尾,如果索引中的所有用例執(zhí)行完畢,則轉向(19),否則,使N=N+1,轉至步驟(16);(19)調度代碼覆蓋率結果分析模塊,依據(jù)所進行的配置,給出全部仿真用例執(zhí)行完畢后總的代碼覆蓋率結果報告;(20)程序結束。
通過上述自動調度方法,可以實現(xiàn)邏輯項目路徑及相關目錄的配置、被測邏輯中需進行代碼覆蓋率分析的文件的重定義、預編譯過程的調度、仿真編譯過程的選擇、需執(zhí)行的仿真用例的重定義、仿真用例的自動執(zhí)行、各仿真用例執(zhí)行后的代碼覆蓋率結果文件的重命名、代碼覆蓋率結果數(shù)據(jù)的合并,及代碼覆蓋率分析報告的產(chǎn)生。
在上述方法中,對于用戶可能需要改變的配置項,通過“工具支持模塊”,提供相應的GUI(Graphic User Interface,圖形用戶界面)接口,供用戶根據(jù)需要自由配置。
這樣,既可給用戶很大的自由度,根據(jù)實際需要進行相應的配置,也保證了不需要用戶配置部分的自動、高效執(zhí)行。在設計好仿真用例的情況下,通過主模塊的自動調度,可以將所有仿真用例的仿真和代碼覆蓋率分析過程自動執(zhí)行完畢,并提供給用戶一份完整的代碼覆蓋率分析報告。
本發(fā)明方法中的各模塊,可以通過腳本語言(如TCL等)實現(xiàn),也可以通過C語言實現(xiàn)。
以上所述,僅為本發(fā)明較佳的具體實施方式
,但本發(fā)明的保護范圍并不局限于此,任何熟悉本技術領域的技術人員在本發(fā)明揭露的技術范圍內(nèi),可輕易想到的變化或替換,都應涵蓋在本發(fā)明的保護范圍之內(nèi)。因此,本發(fā)明的保護范圍應該以權利要求書的保護范圍為準。
權利要求
1.一種自動調度邏輯仿真與代碼覆蓋率分析的方法,包括下列步驟11)使用一主模塊對被測邏輯進行預編譯,產(chǎn)生適合代碼覆蓋率分析的預編譯文件;12)所述主模塊調度用戶提供的全部仿真用例,生成一仿真用例索引目錄;13)所述主模塊根據(jù)上述仿真用例索引目錄順序執(zhí)行各仿真用例,對被測邏輯進行仿真測試;14)所述主模塊根據(jù)預編譯文件得到各仿真用例執(zhí)行后的代碼覆蓋率結果并保存。
2.如權利要求1所述的方法,其特征在于還包括有下列步驟將代碼覆蓋率結果輸出給一代碼覆蓋率結果分析模塊,由該結果分析模塊實現(xiàn)仿真用例執(zhí)行后被測邏輯的代碼覆蓋率結果分析并給出分析報告。
3.如權利要求2所述的方法,其特征在于所述主模塊在計算機中通過腳本語言實現(xiàn),仿真用例的運行是由腳本進行控制;其中主模塊執(zhí)行各仿真用例的具體方法為順序調度執(zhí)行每個用例目錄下的啟動腳本;在啟動腳本中進行該仿真用例所需的相關配置;順序調度激勵產(chǎn)生、仿真執(zhí)行、結果分析腳本,完成該仿真用例的執(zhí)行。
4.如權利要求3所述的方法,其特征在于所述主模塊對被測邏輯項目和仿真用例進行路徑設置并創(chuàng)建目錄結構,將被測邏輯和仿真用例拷貝到相應路徑下保存;自動生成仿真用例名稱列表;主模塊自動搜索仿真用例名稱,寫入到仿真用例索引目錄,并彈出圖形用戶界面,供用戶選擇是否需要進行仿真用例修改。
5.如權利要求4所述的方法,其特征在于所述主模塊設置有代碼覆蓋率分析的控制開關,供用戶選擇是否需要對代碼覆蓋率進行分析。
6.一種自動調度邏輯仿真與代碼覆蓋率分析的系統(tǒng),其特征在于包括一主模塊實現(xiàn)對系統(tǒng)中各模塊的調度;一預編譯模塊實現(xiàn)被測邏輯的預編譯過程;一用戶模塊包括被測邏輯、總線功能模型和若干仿真用例,由用戶提供;一代碼覆蓋率結果分析模塊實現(xiàn)仿真用例執(zhí)行后被測邏輯的代碼覆蓋率結果分析及報告功能;所述主模塊調度預編譯模塊對被測邏輯進行預編譯,產(chǎn)生適合代碼覆蓋率分析的預編譯文件;所述主模塊調度用戶提供的仿真用例,由總線功能模型模擬周圍器件和邏輯接口,向被測邏輯提供所需的各種激勵,進行仿真測試,并將測試結果送入結果分析模塊中進行分析。
7.如權利要求6所述的系統(tǒng),其特征在于所述系統(tǒng)還包括有一工具支持模塊提供調度邏輯仿真與代碼覆蓋率分析過程中需要用到的一些典型功能,由所述主模塊進行調度;一仿真配置模塊提供仿真過程中需要的配置項,由所述主模塊進行調度。
全文摘要
本發(fā)明有關一種自動調度邏輯仿真與代碼覆蓋率分析的方法與系統(tǒng),包括11)使用一主模塊對被測邏輯進行預編譯,產(chǎn)生適合代碼覆蓋率分析的預編譯文件;12)所述主模塊調度用戶提供的全部仿真用例,生成一仿真用例索引目錄;13)所述主模塊根據(jù)上述仿真用例索引目錄順序執(zhí)行各仿真用例,對被測邏輯進行仿真測試;14)所述主模塊根據(jù)預編譯文件得到各仿真用例執(zhí)行后的代碼覆蓋率結果并保存。采用本發(fā)明的方法與系統(tǒng),能夠實現(xiàn)邏輯仿真與代碼覆蓋率分析全流程自動化。
文檔編號G06F11/00GK1744092SQ200410079030
公開日2006年3月8日 申請日期2004年9月4日 優(yōu)先權日2004年9月4日
發(fā)明者張凱峰, 葉芬, 徐爭 申請人:華為技術有限公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
资中县| 彰武县| 万安县| 朝阳县| 临清市| 沾益县| 双桥区| 拉孜县| 五华县| 门源| 林州市| 天峻县| 上蔡县| 五家渠市| 扶余县| 漳浦县| 阳曲县| 乃东县| 舞钢市| 永和县| 景谷| 碌曲县| 和静县| 尚义县| 河南省| 台东市| 莱西市| 静宁县| 慈溪市| 长沙县| 二手房| 乐都县| 城口县| 改则县| 邵阳县| 普洱| 河北省| 铁力市| 咸丰县| 吴江市| 英山县|