本發明涉及一種集成電路驗證技術領域,特別是一種基于斷言的存儲器控制器接口時序參數化驗證系統。
背景技術:
隨著SoC越來越復雜,所使用的各個存儲器的類型以及訪問時序的復雜度也不斷增加,對其進行仿真驗證所需要的時間和人力資源也越來越多,在有限的項目時間內完成驗證任務的緊迫性越來越強。
對于存儲器時序驗證的傳統驗證方法,是通過抓取仿真過程中的存儲器接口訪問波形,然后通過人工確認的方式保證時序的正確性。
上述已有方式存在的缺點主要表現在:(1)耗時,需要耗費大量的時間抓取波形并確認時序。(2)不準確,人為因素不能保證時序驗證的正確性,容易出錯。
技術實現要素:
本發明的目的在于克服現有技術的上述不足,提供基于斷言的存儲器控制器接口時序參數化驗證系統,提供基于斷言的存儲器控制器接口時序參數化驗證系統,該方法能夠大量節省驗證時間,降低工作難度,并提高驗證的準確性。
本發明的上述目的是通過如下技術方案予以實現的:
基于斷言的存儲器控制器接口時序參數化驗證系統,包括配置單元、控制單元、斷言文件庫、驗證所需的斷言文件、待驗證存儲器控制器、連接單元、檢測單元:
配置單元:人工錄入配置參數,并將配置參數傳輸至斷言文件庫;
控制單元:人工錄入控制參數,并將控制參數傳輸至斷言文件庫;
斷言文件庫:包括多個人工預先錄入的斷言文件;接收配置單元傳來的配置參數;接收控制單元傳來的控制參數;根據配置參數的數值和控制參數的數值選擇驗證所需的斷言文件;
待驗證存儲器控制器:生成接口信號時序,通過連接單元將接口信號時序傳輸至驗證所需的斷言文件;接收檢測單元傳來的失敗匹配信息,并根據檢測單元傳來的失敗匹配信息對接口信號時序進行修改;
驗證所需的斷言文件:包括接口信號時序要求;接收待驗證存儲器控制器傳來的接口信號時序,對接口信號時序和驗證所需的斷言文件中的接口信號時序要求進行匹配,生成匹配信息,并將匹配信息傳輸至檢測單元;所述匹配信息包括匹配成功信號INFO_SUC、或匹配失敗信號INFO_FAIL和失敗匹配信息;
檢測單元:接收驗證所需的斷言文件傳來的匹配信息,對匹配信息進行檢測,當檢測到匹配成功信號INFO_SUC時,不做處理;當檢測到匹配失敗信號INFO_FAIL時,將失敗匹配信息傳輸至待驗證存儲器控制器;
直至所有匹配信息中全部為匹配成功信號時,驗證結束。
在上述的基于斷言的存儲器控制器接口時序參數化驗證系統,所述的配置參數包括:
type_prom為是否產生prom類型斷言;
type_sram為是否產生sram類型斷言;
type_sdram為是否產生sdram類型斷言;
bw_prom為prom存儲器位寬;
bw_sram為sram存儲器位寬;
bw_sdram為sdram存儲器位寬;
n_prom為prom存儲器數量;
n_sram為sram存儲器數量;
n_sdram為sdram存儲器數量;
rw_prom為prom讀等待周期數;
rw_sram為sram讀等待周期數;
ww_prom為prom寫等待周期數;
ww_sram為sram寫等待周期數;
cas_sdram為sdram的cas延時等待周期數;
type_mem為自定義設備類型;
n_mem為自定義設備數量;
bw_mem為自定義設備存儲器位寬;
info_suc為斷言成功信息;
info_fail為斷言失敗信息;
其中type_prom、type_sram、type_sdram、type_mem取值為0或1;bw_prom、bw_prom、bw_sdram、bw_mem取值為8或16或32或64中之一,n_prom、n_sram、n_sdram、n_mem取值為任一正整數。
在上述的基于斷言的存儲器控制器接口時序參數化驗證系統,所述的控制參數包括:
SVA_EN為待驗證存儲器控制器斷言功能使能參數,當其取值為1時,使能斷言功能,當其取值為0時,禁止斷言功能;
ASSERTSTART_PROM為PROM斷言啟動參數,當SVA_EN取值為1且當ASSERTSTART_PROM取值為1時,啟用驗證所需的斷言文件中的PROM斷言文件;當ASSERTSTART_PROM取值為0時,不啟用驗證所需的斷言文件中的PROM斷言文件;
ASSERTSTART_SRAM為SRAM斷言啟動參數,當SVA_EN取值為1且ASSERTSTART_SRAM取值為1時,啟用驗證所需的斷言文件中的SRAM斷言文件,當ASSERTSTART_SRAM取值為0時,不啟用驗證所需的斷言文件中的SRAM斷言文件;
ASSERTSTART_SDRAM為SDRAM斷言啟動參數,當SVA_EN取值為1且ASSERTSTART_SDRAM取值為1時,啟用驗證所需的斷言文件中的SDRAM斷言文件,當ASSERTSTART_SDRAM取值為0時,不啟用驗證所需的斷言文件中的SDRAM斷言文件;
MSG為測試程序中可配置的參數,當測試程序中設置MSG為ASSERT_SRAM TRUN_ON時,可設置驗證環境中的控制參數ASSERTSTART_SRAM為1,當測試程序中設置MSG為ASSERT_SRAMTRUN_OFF時,可設置驗證環境中的控制參數ASSERTSTART_SRAM為0;當測試程序中設置MSG為ASSERT_SDRAM TRUN_ON時,可設置驗證環境中的控制參數ASSERTSTART_SDRAM為1,當測試程序中設置MSG為ASSERT_SDRAM TRUN_OFF時,可設置驗證環境中的控制參數ASSERTSTART_SDRAM為0。
在上述的基于斷言的存儲器控制器接口時序參數化驗證系統,所述的驗證所需的斷言文件包括PROM斷言文件、SRAM斷言文件或SDRAM斷言文件中的一種或多種。
在上述的基于斷言的存儲器控制器接口時序參數化驗證系統,選擇配置參數中的類型、存儲器位寬、存儲器數量和等待周期數與多個人工預先錄入的斷言文件中相同的斷言文件作為驗證所需的斷言文件;根據SVA_EN、ASSERTSTART_PROM、ASSERTSTART_SRAM和ASSERTSTART_SDRAM的取值,判斷驗證所需的斷言文件中,PROM斷言文件、SRAM斷言文件和SDRAM斷言文件是否啟用。
在上述的基于斷言的存儲器控制器接口時序參數化驗證系統,所述的PROM斷言文件、SRAM斷言文件和SDRAM斷言文件均包括接口信號時序要求。
在上述的基于斷言的存儲器控制器接口時序參數化驗證系統,所述的接口信號時序包括:
PROM_RST[N_PROM]為PROM復位信號;
PROM_CLK[N_PROM]為PROM時鐘信號;
PROM_ADDR[N_PROM]為PROM地址信號;
PROM_DATA[N_PROM]為PROM數據信號;
PROM_SN[N_PROM]為PROM片選信號;
PROM_WRITEN[N_PROM]為PROM寫使能信號;
PROM_OEN[N_PROM]為PROM讀使能信號;
N_PROM為待驗證存儲器控制器所具有的PROM接口的數量;
SRAM_RST[N_SRAM]為SRAM復位信號;
SRAM_CLK[N_SRAM]為SRAM時鐘信號;
SRAM_ADDR[N_SRAM]為SRAM地址信號;
SRAM_DATA[N_SRAM]為SRAM數據信號;
SRAM_SN[N_SRAM]為SRAM片選信號;
SRAM_WRITEN[N_SRAM]為SRAM寫使能信號;
SRAM_OEN[N_SRAM]為SRAM讀使能信號;
N_SRAM為待驗證存儲器控制器所具有的SRAM接口的數量;
SDRAM_RST[N_SDRAM]為SDRAM復位信號;
SDRAM_CLK[N_SDRAM]為SDRAM時鐘信號;
SDRAM_SDCSN[N_SDRAM]為SDRAM片選信號;
SDRAM_SDRASN[N_SDRAM]為SDRAM行地址選擇信號;
SDRAM_SDCASN[N_SDRAM]為SDRAM列地址選擇信號;
SDRAM_SDWEN[N_SDRAM]為SDRAM寫使能信號;
SDRAM_SDDQM[N_SDRAM]為SDRAM字節選通信號;
N_SDRAM為待驗證存儲器控制器所具有的SDRAM接口的數量;
其中N_PROM、N_SRAM、N_SDRAM的個數可為任一正整數。
在上述的基于斷言的存儲器控制器接口時序參數化驗證系統,所述的接口信號時序要求為:
要求PROM復位信號PROM_RST[N_PROM取值為0或1;
要求PROM時鐘信號PROM_CLK[N_PROM]取值為0或1;
要求PROM地址信號PROM_ADDR[N_PROM]取值為0或1;
要求PROM數據信號PROM_DATA[N_PROM]取值為0或1;
要求PROM片選信號PROM_SN[N_PROM]取值為0或1;
要求PROM寫使能信號PROM_WRITEN[N_PROM]取值為0或1;
要求PROM讀使能信號PROM_OEN[N_PROM]取值為0或1;
要求SRAM復位信號SRAM_RST[N_SRAM]取值為0或1;
要求SRAM時鐘信號SRAM_CLK[N_SRAM]取值為0或1;
要求SRAM地址信號SRAM_ADDR[N_SRAM]取值為0或1;
要求SRAM數據信號SRAM_DATA[N_SRAM]取值為0或1;
要求SRAM片選信號SRAM_SN[N_SRAM]取值為0或1;
要求SRAM寫使能信號SRAM_WRITEN[N_SRAM]取值為0或1;
要求SRAM讀使能信號SRAM_OEN[N_SRAM]取值為0或1;
要求SDRAM復位信號SDRAM_RST[N_SDRAM]取值為0或1;
要求SDRAM時鐘信號SDRAM_CLK[N_SDRAM]取值為0或1;
要求SDRAM片選信號SDRAM_SDCSN[N_SDRAM]取值為0或1;
要求SDRAM行地址選擇信號SDRAM_SDRASN[N_SDRAM]取值為0或1;
要求SDRAM列地址選擇信號SDRAM_SDCASN[N_SDRAM]取值為0或1;
要求SDRAM寫使能信號SDRAM_SDWEN[N_SDRAM]取值為0或1;
要求SDRAM字節選通信號SDRAM_SDDQM[N_SDRAM]取值為0或1。
在上述的基于斷言的存儲器控制器接口時序參數化驗證系統,當接收待驗證存儲器控制器傳來的接口信號時序的取值與驗證所需的斷言文件中接口信號時序要求相同時,認為匹配,否則認為不匹配。
本發明與現有技術相比具有如下優點:
(1)本發明連接單元能夠把各種類型的存儲器控制器的接口信號連接到斷言文件庫接口,增加本發明的易用性,使本發明能夠重復利用,擴展應用范圍;
(2)本發明配置單元把斷言文件庫產生斷言所需確定的因素全部轉化為可配置的參數,使得操作更加簡單,容易掌握;
(3)本發明控制單元分別在驗證環境和測試程序中設置控制參數,是斷言的控制更加靈活多變,滿足更多的需求;
(4)本發明在斷言文件庫單元例化了各存儲器類型所需要使用的斷言文件,能使斷言的驗證更加充分,且避免編寫斷言過程中造成的錯誤;
(5)本發明檢測單元能夠自動檢測并報告失敗的斷言,節省大量的項目時間。
附圖說明
圖1為本發明驗證系統示意圖。
具體實施方式
下面結合附圖和具體實施例對本發明作進一步詳細的描述:
如圖1所示為驗證系統示意圖,由圖可知,基于斷言的存儲器控制器接口時序參數化驗證系統,包括配置單元、控制單元、斷言文件庫、驗證所需的斷言文件、待驗證存儲器控制器、連接單元、檢測單元:
配置單元:人工錄入配置參數,并將配置參數傳輸至斷言文件庫;其中,配置參數包括:
type_prom為是否產生prom類型斷言;
type_sram為是否產生sram類型斷言;
type_sdram為是否產生sdram類型斷言;
bw_prom為prom存儲器位寬;
bw_sram為sram存儲器位寬;
bw_sdram為sdram存儲器位寬;
n_prom為prom存儲器數量;
n_sram為sram存儲器數量;
n_sdram為sdram存儲器數量;
rw_prom為prom讀等待周期數;
rw_sram為sram讀等待周期數;
ww_prom為prom寫等待周期數;
ww_sram為sram寫等待周期數;
cas_sdram為sdram的cas延時等待周期數;
type_mem為自定義設備類型;
n_mem為自定義設備數量;
bw_mem為自定義設備存儲器位寬;
info_suc為斷言成功信息;
info_fail為斷言失敗信息;
其中type_prom、type_sram、type_sdram、type_mem取值為0或1;bw_prom、bw_prom、bw_sdram、bw_mem取值為8或16或32或64中之一,n_prom、n_sram、n_sdram、n_mem取值為任一正整數。
控制單元:人工錄入控制參數,并將控制參數傳輸至斷言文件庫;其中,控制參數包括:
SVA_EN為待驗證存儲器控制器斷言功能使能參數,當其取值為1時,使能斷言功能,當其取值為0時,禁止斷言功能;
ASSERTSTART_PROM為PROM斷言啟動參數,當SVA_EN取值為1且當ASSERTSTART_PROM取值為1時,啟用驗證所需的斷言文件中的PROM斷言文件;當ASSERTSTART_PROM取值為0時,不啟用驗證所需的斷言文件中的PROM斷言文件;
ASSERTSTART_SRAM為SRAM斷言啟動參數,當SVA_EN取值為1且ASSERTSTART_SRAM取值為1時,啟用驗證所需的斷言文件中的SRAM斷言文件,當ASSERTSTART_SRAM取值為0時,不啟用驗證所需的斷言文件中的SRAM斷言文件;
ASSERTSTART_SDRAM為SDRAM斷言啟動參數,當SVA_EN取值為1且ASSERTSTART_SDRAM取值為1時,啟用驗證所需的斷言文件中的SDRAM斷言文件,當ASSERTSTART_SDRAM取值為0時,不啟用驗證所需的斷言文件中的SDRAM斷言文件;
MSG為測試程序中可配置的參數,當測試程序中設置MSG為ASSERT_SRAM TRUN_ON時,可設置驗證環境中的控制參數ASSERTSTART_SRAM為1,當測試程序中設置MSG為ASSERT_SRAMTRUN_OFF時,可設置驗證環境中的控制參數ASSERTSTART_SRAM為0;當測試程序中設置MSG為ASSERT_SDRAM TRUN_ON時,可設置驗證環境中的控制參數ASSERTSTART_SDRAM為1,當測試程序中設置MSG為ASSERT_SDRAM TRUN_OFF時,可設置驗證環境中的控制參數ASSERTSTART_SDRAM為0。
斷言文件庫:包括多個人工預先錄入的斷言文件;接收配置單元傳來的配置參數;接收控制單元傳來的控制參數;根據配置參數的數值和控制參數的數值選擇驗證所需的斷言文件,驗證所需的斷言文件包括PROM斷言文件、SRAM斷言文件或SDRAM斷言文件中的一種或多種。
選擇驗證所需的斷言文件的方法為:選擇配置參數中的類型、存儲器位寬、存儲器數量和等待周期數與多個人工預先錄入的斷言文件中相同的斷言文件作為驗證所需的斷言文件;根據SVA_EN、ASSERTSTART_PROM、ASSERTSTART_SRAM和ASSERTSTART_SDRAM的取值,判斷驗證所需的斷言文件中,PROM斷言文件、SRAM斷言文件和SDRAM斷言文件是否啟用;PROM斷言文件、SRAM斷言文件和SDRAM斷言文件均包括接口信號時序要求。
待驗證存儲器控制器:生成接口信號時序,通過連接單元將接口信號時序傳輸至驗證所需的斷言文件;接收檢測單元傳來的失敗匹配信息,并根據檢測單元傳來的失敗匹配信息對接口信號時序進行修改;
其中,接口信號時序包括:
PROM_RST[N_PROM]為PROM復位信號;
PROM_CLK[N_PROM]為PROM時鐘信號;
PROM_ADDR[N_PROM]為PROM地址信號;
PROM_DATA[N_PROM]為PROM數據信號;
PROM_SN[N_PROM]為PROM片選信號;
PROM_WRITEN[N_PROM]為PROM寫使能信號;
PROM_OEN[N_PROM]為PROM讀使能信號;
N_PROM為待驗證存儲器控制器所具有的PROM接口的數量;
SRAM_RST[N_SRAM]為SRAM復位信號;
SRAM_CLK[N_SRAM]為SRAM時鐘信號;
SRAM_ADDR[N_SRAM]為SRAM地址信號;
SRAM_DATA[N_SRAM]為SRAM數據信號;
SRAM_SN[N_SRAM]為SRAM片選信號;
SRAM_WRITEN[N_SRAM]為SRAM寫使能信號;
SRAM_OEN[N_SRAM]為SRAM讀使能信號;
N_SRAM為待驗證存儲器控制器所具有的SRAM接口的數量;
SDRAM_RST[N_SDRAM]為SDRAM復位信號;
SDRAM_CLK[N_SDRAM]為SDRAM時鐘信號;
SDRAM_SDCSN[N_SDRAM]為SDRAM片選信號;
SDRAM_SDRASN[N_SDRAM]為SDRAM行地址選擇信號;
SDRAM_SDCASN[N_SDRAM]為SDRAM列地址選擇信號;
SDRAM_SDWEN[N_SDRAM]為SDRAM寫使能信號;
SDRAM_SDDQM[N_SDRAM]為SDRAM字節選通信號;
N_SDRAM為待驗證存儲器控制器所具有的SDRAM接口的數量;
其中N_PROM、N_SRAM、N_SDRAM的個數可為任一正整數。
驗證所需的斷言文件:包括接口信號時序要求;接收待驗證存儲器控制器傳來的接口信號時序,對接口信號時序和驗證所需的斷言文件中的接口信號時序要求進行匹配,當接收待驗證存儲器控制器傳來的接口信號時序的取值與驗證所需的斷言文件中接口信號時序要求相同時,認為匹配,否則認為不匹配。
當匹配后,生成匹配信息,并將匹配信息傳輸至檢測單元;所述匹配信息包括匹配成功信號INFO_SUC、或匹配失敗信號INFO_FAIL和失敗匹配信息;其中,接口信號時序要求為:
要求PROM復位信號PROM_RST[N_PROM取值為0或1;
要求PROM時鐘信號PROM_CLK[N_PROM]取值為0或1;
要求PROM地址信號PROM_ADDR[N_PROM]取值為0或1;
要求PROM數據信號PROM_DATA[N_PROM]取值為0或1;
要求PROM片選信號PROM_SN[N_PROM]取值為0或1;
要求PROM寫使能信號PROM_WRITEN[N_PROM]取值為0或1;
要求PROM讀使能信號PROM_OEN[N_PROM]取值為0或1;
要求SRAM復位信號SRAM_RST[N_SRAM]取值為0或1;
要求SRAM時鐘信號SRAM_CLK[N_SRAM]取值為0或1;
要求SRAM地址信號SRAM_ADDR[N_SRAM]取值為0或1;
要求SRAM數據信號SRAM_DATA[N_SRAM]取值為0或1;
要求SRAM片選信號SRAM_SN[N_SRAM]取值為0或1;
要求SRAM寫使能信號SRAM_WRITEN[N_SRAM]取值為0或1;
要求SRAM讀使能信號SRAM_OEN[N_SRAM]取值為0或1;
要求SDRAM復位信號SDRAM_RST[N_SDRAM]取值為0或1;
要求SDRAM時鐘信號SDRAM_CLK[N_SDRAM]取值為0或1;
要求SDRAM片選信號SDRAM_SDCSN[N_SDRAM]取值為0或1;
要求SDRAM行地址選擇信號SDRAM_SDRASN[N_SDRAM]取值為0或1;
要求SDRAM列地址選擇信號SDRAM_SDCASN[N_SDRAM]取值為0或1;
要求SDRAM寫使能信號SDRAM_SDWEN[N_SDRAM]取值為0或1;
要求SDRAM字節選通信號SDRAM_SDDQM[N_SDRAM]取值為0或1。
檢測單元:接收驗證所需的斷言文件傳來的匹配信息,對匹配信息進行檢測,當檢測到匹配成功信號INFO_SUC時,不做處理;當檢測到匹配失敗信號INFO_FAIL時,將失敗匹配信息傳輸至待驗證存儲器控制器;
直至所有匹配信息中全部為匹配成功信號時,驗證結束。
基于斷言的存儲器控制器接口時序參數化驗證系統有以下單元組成:連接單元,連接單元能夠把待驗證存儲器控制器的接口信號和斷言文件庫中對應的接口信號連接到一起;配置單元,配置單元中配置斷言文件庫中需要的存儲器類型、數量、斷言信息等參數;控制單元,控制單元中設置了控制斷言功能使能以及斷言信息輸出等控制參數;斷言文件庫單元,斷言文件庫單元能夠通過接收來各單元的參數產生滿足條件的斷言文件供驗證環境使用;檢測單元,檢測單元能夠通過斷言文件產生的信息來判斷斷言文件的檢測結果,通過這些檢測結果來判斷需要驗證的設計是否滿足要求。
讀取存儲器類型參數,對存儲器類型進行判斷,存儲器類型為1個或多個,此例中存儲器類型為SRAM。
根據存儲器類型讀取接口連接信號,將斷言文件庫中斷言所使用的默認的信號名和實際所使用的存儲器設計的信號名對應連接起來,如果在系統配置運行的過程中發現默認配置的信號類別不符合實際應用的存儲器信號類別,那么可以再對默認的信號類別進行增刪,使其符合和實際使用的存儲器的信號類別保持一致。此例中將斷言文件庫中SRAM斷言的信號名和實際使用的SRAM的信號逐一連接。
根據存儲器類型讀取配置參數內容,根據參數內容設置斷言文件庫的存儲器類型、數量、延時、斷言信息等參數內容,如果在系統配置運行的過程中發現默認的配置參數無法滿足實際應用的需求,那么可以再對默認的配置參數進行增刪,調整配置參數使其滿足實際使用需求,此例中將SRAM斷言的配置參數讀取到斷言文件庫中。
根據存儲器類型讀取控制參數內容,根據參數內容設置斷言控制功能來控制斷言功能的使能,斷言模塊的啟動等。如果在系統配置運行過程中發現默認的控制參數不能夠滿足實際斷言應用的控制需求,那么可以再對默認的控制參數進行增刪,調整配置參數使其滿足實際控制需求,此例中控制SRAM斷言需把SVA_EN取值為1使能斷言功能,把ASSERTSTART_SRAM取值為1啟用SRAM斷言文件,在測試程序中測試代碼前后分別把MSG賦值為“ASSERT_SRAM TRUN_ON”和“ASSERT_SRAM TRUN_OFF”來控制SRAM斷言文件的啟用和停用。
斷言文件庫產生斷言文件,此處需要注意的是如果在前面的步驟中對斷言的接口信號、配置參數、控制參數有變動的話,此時斷言文件庫中的斷言文件也需要做出相對應的變動。如果在系統運行過程中發現默認的斷言文件的設置無法完全的對待驗證存儲器控制器接口時序進行斷言,那么需要對斷言文件庫中的斷言文件進行增刪,以滿足接口時序驗證需求,此例中斷言文件庫中將產生PROM接口時序斷言文件。
對存儲器控制器接口時序進行斷言驗證后需要對結果進行檢測,根據配置參數中設置的斷言成功信息和斷言失敗信息即可查明接口時序的斷言結果狀態,如果斷言失敗說明驗證的存儲器控制器設計不滿足斷言時序,需更改設計錯誤,重新驗證直到斷言驗證通過。
本發明說明書中未作詳細描述的內容屬本領域技術人員的公知技術。