国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

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

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

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


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