驗證處理,從而完成多路幀數(shù)據(jù)驗證處理。相對于現(xiàn)有技術(shù)在設計驗證平臺中實現(xiàn)多路幀隨機數(shù)的產(chǎn)生時,大多會一個一個地重復定義transact1n結(jié)構(gòu),通過不斷地包裹來實現(xiàn)多路巾貞隨機數(shù)據(jù)的產(chǎn)生,再在驗證平臺中加載給不同的幀數(shù)據(jù)信號。本發(fā)明提供的多路幀隨機數(shù)據(jù)驗證處理方法簡化了驗證平臺加載受約束的隨機激勵,減少了驗證平臺中調(diào)用UVM庫時的不確定性,提高了系統(tǒng)運行的穩(wěn)定性。
【附圖說明】
[0044]圖1為本發(fā)明多路幀隨機數(shù)據(jù)驗證處理方法一實施例的流程示意圖;
[0045]圖2為本發(fā)明多路幀隨機數(shù)據(jù)驗證處理方法中driver組件進行數(shù)據(jù)處理一實施例的細化流程示意圖;
[0046]圖3為本發(fā)明多路幀隨機數(shù)據(jù)驗證處理方法中driver組件進行數(shù)據(jù)處理另一實施例的細化流程示意圖;
[0047]圖4為本發(fā)明多路幀隨機數(shù)據(jù)驗證處理裝置一實施例的功能模塊示意圖;
[0048]圖5為本發(fā)明多路幀隨機數(shù)據(jù)驗證處理裝置另一實施例的功能模塊示意圖。
[0049]本發(fā)明目的的實現(xiàn)、功能特點及優(yōu)點將結(jié)合實施例,參照附圖做進一步說明。
【具體實施方式】
[0050]應當理解,此處所描述的具體實施例僅僅用以解釋本發(fā)明,并不用于限定本發(fā)明。
[0051]本發(fā)明提供一種多路幀隨機數(shù)據(jù)驗證處理方法,參照圖1,在一實施例中,該多路幀隨機數(shù)據(jù)驗證處理方法包括:
[0052]步驟S10,搭建通用驗證平臺,預設transact1n組件、sequence組件、sequencer組件、driver組件、monitor組件、scoreboard組件及各組件的派生關(guān)系;
[0053]本實施例中,上述通用驗證平臺可以采用UVM驗證方法學搭建的一個通用驗證平臺,在該驗證平臺當中預設多個組件,并設置各個組件之間的派生關(guān)系。具體地,預設的組件類型可根據(jù)實際需要進行設置,例如在本實施例中,可預設transact1n組件、sequence組件、sequencer 組件、driver 組件、monitor 組件和 scoreboard 組件。
[0054]步驟S20,所述transact1n組件獲取目標驗證數(shù)據(jù)包中每一數(shù)據(jù)包的包結(jié)構(gòu)信息,并將每一數(shù)據(jù)包的包結(jié)構(gòu)信息以預置參數(shù)類型打包發(fā)送至sequence組件;
[0055]在預設各組件及組件的派生關(guān)系后;由transact1n組件獲取用戶設置的對驗證數(shù)據(jù)包中每一數(shù)據(jù)包的包結(jié)構(gòu)信息,具體地,該包結(jié)構(gòu)信息包括:包頭、靜荷、負載、開銷字節(jié)位及數(shù)據(jù)包的約束條件,并將每一數(shù)據(jù)包的包結(jié)構(gòu)信息以transact1n參數(shù)類型發(fā)送給sequence 組件。
[0056]步驟S30,所述sequence組件根據(jù)所述每一數(shù)據(jù)包的包結(jié)構(gòu)信息生成隨機數(shù),且每一數(shù)據(jù)包對應的所有隨機數(shù)形成幀數(shù)據(jù);
[0057]具體地,可通過控制EDA (Electronic Design Automat1n)工具的仿真時間的需要,獲取與每一數(shù)據(jù)包相匹配數(shù)量的隨機數(shù),將每一數(shù)據(jù)包對應的所有隨機數(shù)打包形成幀數(shù)據(jù),并將該巾貞數(shù)據(jù)發(fā)送給sequencer組件。
[0058]步驟S40,所述sequencer組件接收所述巾貞數(shù)據(jù),并通過預置的TLM端口發(fā)送所述中貞數(shù)據(jù)至driver組件;
[0059]在sequencer 組件和 driver 組件之間,會有 TLM (transact1n level modeling)端口來進行不斷的數(shù)據(jù)傳送和接受。sequencer組件實時接收sequence產(chǎn)生的巾貞數(shù)據(jù),并負責把巾貞數(shù)據(jù)傳遞給driver組件。
[0060]步驟S50,所述driver組件在每接收到所述sequencer組件發(fā)送的一巾貞數(shù)據(jù)時,將接收到的當前幀數(shù)據(jù)進行隨機數(shù)抓取處理,得到多路隨機數(shù)據(jù);并將所述多路隨機數(shù)據(jù)一一對應賦值給預置臨時變量后,將所述預置臨時變量賦值到被調(diào)用任務的賦值語句中,以將所述預置臨時變量加載至待驗證模塊;
[0061]具體地,在定義的main_phase 任務中從 TLM (transact1n level modeling)端口不斷地接收來自sequencer組件傳輸?shù)慕碡憯?shù)據(jù),UVM中有三種類型的端口,可以使用這些端口來設置。然后將接收到的幀數(shù)據(jù)通過參數(shù)傳遞到一個獨立的驅(qū)動任務,從而將數(shù)據(jù)加載至待驗證模塊(DUT)中。
[0062]步驟S60,所述monitor組件檢測所述待驗證模塊輸出的檢測數(shù)據(jù)信息;
[0063]上述monitor組件負責監(jiān)測待驗證模塊輸出的檢測數(shù)據(jù)信息,并將檢測的檢測數(shù)據(jù)信息輸出至scoreboard組件。
[0064]步驟S70,所述scoreboard組件對所述monitor組件檢測獲得的所述檢測數(shù)據(jù)信息進行驗證處理。
[0065]上述scoreboard組件接收monitor組件傳輸?shù)臋z測數(shù)據(jù)信息,并將該檢測數(shù)據(jù)信息進行相應的驗證處理,得到驗證結(jié)果,并輸出顯示給用戶。
[0066]本發(fā)明實施例通過transact1n組件獲取目標驗證數(shù)據(jù)包中每一數(shù)據(jù)包的包結(jié)構(gòu)信息,并將每一數(shù)據(jù)包的包結(jié)構(gòu)信息以預置參數(shù)類型打包發(fā)送至sequence組件;由述sequence組件根據(jù)所述每一數(shù)據(jù)包的包結(jié)構(gòu)信息生成隨機數(shù),且每一數(shù)據(jù)包對應的所有隨機數(shù)形成巾貞數(shù)據(jù);并通過driver組件在每接收到所述sequencer組件發(fā)送的一巾貞數(shù)據(jù)時,將接收到的當前幀數(shù)據(jù)進行隨機數(shù)抓取處理,得到多路隨機數(shù)據(jù);并將所述多路隨機數(shù)據(jù)一一對應賦值給預置臨時變量后,將所述預置臨時變量賦值到被調(diào)用任務的賦值語句中,以將所述預置臨時變量加載至待驗證模塊;最后由scoreboard組件對所述monitor組件檢測獲得的所述檢測數(shù)據(jù)信息進行驗證處理,從而完成多路幀數(shù)據(jù)驗證處理。相對于現(xiàn)有技術(shù)在設計驗證平臺中實現(xiàn)多路幀隨機數(shù)的產(chǎn)生時,大多會一個一個地重復定義transact1n結(jié)構(gòu),通過不斷地包裹來實現(xiàn)多路巾貞隨機數(shù)據(jù)的產(chǎn)生,再在驗證平臺中加載給不同的幀數(shù)據(jù)信號。本發(fā)明提供的多路幀隨機數(shù)據(jù)驗證處理方法簡化了驗證平臺加載受約束的隨機激勵,減少了驗證平臺中調(diào)用UVM庫時的不確定性,提高了系統(tǒng)運行的穩(wěn)定性。
[0067]進一步地,參照圖2,基于上述實施例,本實施例中,上述步驟S50包括:
[0068]步驟S51,所述driver組件在每接收到所述sequence組件發(fā)送的一巾貞數(shù)據(jù)時,將接收到的當前幀數(shù)據(jù)打包至預置的數(shù)組內(nèi);
[0069]步驟S52,在所述數(shù)組內(nèi)提取數(shù)據(jù),得到多路隨機數(shù)據(jù);
[0070]步驟S53,將所述多路隨機數(shù)據(jù)一一對應賦值給預置臨時變量,并打包形成多路幀隨機數(shù)據(jù);
[0071]步驟S54,啟動加載任務將所述多路幀隨機數(shù)據(jù)加載至所述待驗證模塊的輸入端。
[0072]具體地,在定義的main_phase 任務中從 TLM (transact1n level modeling)端口不斷地接收來自sequencer組件傳輸?shù)膸瑪?shù)據(jù),UVM中有三種類型的端口,可以使用這些端口來設置。然后將接收到的幀數(shù)據(jù)通過參數(shù)傳遞到一個獨立的驅(qū)動任務,為了方便處理幀里面的數(shù)據(jù),本發(fā)明實施例中把接收到的幀數(shù)據(jù)打包到一個數(shù)組中,把數(shù)據(jù)字段打包成byte為單位的數(shù)據(jù)流,形成多路幀隨機數(shù)據(jù),之后,調(diào)用函數(shù)再把數(shù)據(jù)一個個地灌輸給待驗證模塊。例如,在driver組件的驅(qū)動巾貞數(shù)據(jù)任務里添加一個for循環(huán),并通過在每一巾貞的數(shù)組里面隨機地提取隨機數(shù)據(jù),實現(xiàn)數(shù)據(jù)的再次隨機組合來二次產(chǎn)生多路隨機數(shù)據(jù)。在再次隨機組合完畢后,定義若干臨時變量和相等數(shù)量的調(diào)用任務。在數(shù)組數(shù)據(jù)提取形成的多路隨機數(shù)據(jù)一一賦值給對應的臨時變量后,可以把這些臨時變量賦值到被調(diào)用任務的賦值語句中;然后把臨時變量的數(shù)據(jù)加載給DUT的pins,從而實現(xiàn)多路幀隨機數(shù)據(jù)的加載。
[0073]進一步地,參照圖3,基于上述實施例,本實施例中,上述步驟S34之后還包括:
[0074]步驟S55,所述driver組件根據(jù)所述多路幀隨機數(shù)據(jù)中的幀頭或幀尾統(tǒng)計所述多路幀隨機數(shù)據(jù)的路數(shù)。
[0075]本實施例中,在加載臨時變量的時候,比如幀頭或者幀尾數(shù)據(jù)信號,可以設置一個判斷條件,判斷第一個數(shù)據(jù)是否為32位的f6f6f628,若是,則每一幀數(shù)據(jù)的循環(huán)時把計數(shù)信號自動加1,從而實現(xiàn)對多路幀隨機數(shù)據(jù)的路數(shù)統(tǒng)計。在統(tǒng)計完成后,還可將統(tǒng)計的結(jié)果進行輸出顯示,供用戶查看。
[0076]進一步地,基于上述實施例,本實施例中,上述步驟S10還包括預設reference_model組件;
[0077]所述步驟S70之前還包括:
[0078]所述referencejnodel組件獲取所述多路幀隨機數(shù)據(jù);并按照所述待驗證模塊相同的功能對所述多路幀隨機數(shù)據(jù)進行數(shù)據(jù)處理后得到期望數(shù)據(jù)信息;
[0079]所述步驟70包