精品国产人成在线_亚洲高清无码在线观看_国产在线视频国产永久2021_国产AV综合第一页一个的一区免费影院黑人_最近中文字幕MV高清在线视频

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

重復使用UVM RTL驗證測試進行門級仿真詳細過程介紹

PCB線路板打樣 ? 來源:LONG ? 2019-08-09 15:25 ? 次閱讀

當我們驗證片上系統(SoC)嵌入了具有多個數字外設的微處理器以及可能的模擬模塊時,我們希望檢查所有實現的功能和可能的極端情況,以最大限度地縮短驗證時間。多種技術和方法的混合用于改進功能驗證并提取覆蓋等級的度量:基于通用驗證方法(UVM)的形式驗證和隨機約束測試增加了發現錯誤的可能性。有時我們為RTL驗證創建一個完美有效的測試,但發現它不能在門級仿真期間重復使用,因為UVM監視器掛在內部SoC信號上,這些信號在實現階段后可能會消失或改變。

本文將描述創建有效的自檢模型是多么容易,這些測試既簡單又可以在門級模擬過程中重復使用。令人驚訝的是,通過改變數據流,我們可以為測試平臺帶來好處,降低記分板的復雜性,這也意味著更少的測試開發時間。

流程基于實例化UVM驗證用于檢查接口的組件,例如SPI,I 2 C,& UART,但它也可以擴展到更復雜的接口。

SoC驗證流程

最有效的SoC驗證是基于內部總線內部,特定內部模塊和主SoC接口上的多個UVM驗證組件(UVM VC)的實例化。這些UVM VC用作總線協議檢查器(例如,AMBA檢查器);串行協議檢查器和主動主控器(例如,I 2 C,SPI,UART,JTAG,SATA,PCIe)。

基于UVM開發的測試應該是自檢的;必須通過檢查器驗證每個操作,激勵和事務,如果不匹配,會引發一個“標志”,停止模擬并發出模擬器控制臺上顯示的錯誤消息并寫入日志文件。

通信接口(例如,SPI)的驗證需要使用由在總線上獲取事務的收集器形成的UVM VC,用于檢查協議合規性的監視器以及生成的生成的總線功能模型(BFM)交易。 SoC和外部UVM VC之間交換的數據通過名為記分板的模塊進行驗證。

此記分板至少有兩個端口,其中添加的對象與第二個相匹配 - 參考。如果不匹配,則發出錯誤。在門級仿真期間必須重復使用這種檢查器以刺激關鍵路徑。圖1顯示了驗證測試平臺的簡單框圖,該平臺使用多個檢查器進行有效的驗證方法。

重復使用UVM RTL驗證測試進行門級仿真詳細過程介紹

圖1:典型的UVM驗證測試平臺

黃色塊是UVM VC。總線監視器是一個只有監視器和檢查器的無源組件。

用于測試串行外設的通用數據流是將數據從UVM VC發送到微處理器并檢查數據是否有到達目的地(微處理器)。在第二步中,我們將數據從微處理器發送到UVM VC,檢查正確的數據是否已到達目的地(UVM VC)。

圖2顯示了數據記分板<的示例/i>用于全雙工同步通信(例如,SPI)。 UVM VC和外圍總線上的監視器(被動)用于將數據發送到記分板:UVM VC發送的數據被添加到記分板 TX路徑,當它們到達外圍設備時,將通過總線監視器發送到相同的記分板進行匹配。來自外圍設備的數據被添加到記分板 RX路徑中,并與UVM VC被動監視器接收的數據相匹配。

重復使用UVM RTL驗證測試進行門級仿真詳細過程介紹

圖2:全雙工同步外設示例

此方法的主要缺點是門級仿真的可移植性。在實施階段,RTL中可用的內部信號可能會在優化的網表中消失,UVM VC模塊的綁定變得困難,有時甚至不可能(例如,在合成期間刪除未使用的端口)。

新的SoC驗證流程

新流程的基本概念是記分板中檢查的數據不應來自內部SoC節點上綁定的監視器(參見圖2)。因此,修改了測試平臺配置,以便僅使用UVM VC(主動和被動)進行頂層綁定的數據檢查。內部監視器(綁定在SoC內部節點上的監視器)僅用于RTL仿真,檢查總線的合規性并跟蹤覆蓋范圍。

此時,有必要更改數據在UVM VC和SoC外設之間交換數據包的流程。主要要求是:

數據隨機化

門級模擬的可移植性

易用性

由UVM VC生成并由外圍設備接收的隨機約束數據分組被SoC用于生成出站分組。為了增加隨機化,SoC中的微處理器計算接收數據的CRC并將結果用作要傳輸的數據。

記分板將從UVM獲取數據VC,在將它們添加到數據列表之前,它將計算CRC。從外圍設備返回的數據將直接添加到記分板以進行匹配過程。圖3顯示了這個新流程的一個示例。

重復使用UVM RTL驗證測試進行門級仿真詳細過程介紹

圖3:數據檢查的新方法

計算CRC非常簡單;對于記分板,可以使用內置函數(偽方法),例如,可以使用 e 語言:

list_bytes 。crc_32(來自字節,字節數)

list_bytes 。crc_8(來自字節,字節數)

它逐字節讀取列表返回位或字節列表的CRC函數的整數值。可以計算CRC,定義起始字節(通過第一個參數 from byte )和選定的字節數(通過第二個參數字節數)。

32位CRC的生成多項式為:

x 32 + x 26 + x 23 + x 22 + x 16 + x 12 + x 11 + x 10 + x 8 + x 7 + x 5 + x 4 + x 2 + x +1

8位CRC的生成多項式為:

x 8 + x 2 + x + 1

類似的函數用于SoC中微處理器執行的 C 代碼:


POLY_GEN8為0x03。可以使用POLY_GEN32 = 0x2608EDB為CRC32擴展該功能。

使用此方法可以極大地簡化記分板上的數據管理;由于數據檢查是在串行接口上進行的,因此它與微處理器總線的數據大小無關,可以是8,16,32位或更多。以下是記分板的示例。

重復使用UVM RTL驗證測試進行門級仿真詳細過程介紹



全雙工同步接口

如果是全雙工同步接口,例如SPI,我們可以有兩種可能的模式:外設是從機,或外設是主機。

當外設是從機時,事務由外部UVM VC啟動。全雙工模式意味著必須同時發送和接收數據。由于我們希望避免在SoC側生成數據(在 C 代碼上沒有有線數據),因此有效數據存在系統延遲。此延遲應在記分板上實現,以便正確比較交換的數據。

重復使用UVM RTL驗證測試進行門級仿真詳細過程介紹

圖4:全雙工數據序列用于從模式

圖4顯示了在主(UVM VC)和從(外設)之間交換的數據序列的示例。由外圍設備發送的第一個符號對于記分板“不關心”,因此被釋放。微處理器需要一些時間從緩沖區獲取數據并計算CRC。一段時間后,數據準備就緒,交換繼續從UVM VC隨機生成和來自外圍側的偽隨機數據(在D x 上計算的CRC)。

我們可以通過使用傳統的“不關心”數據(例如,零)來進行自動符號同步。當然,這些數據不應由UVM VC生成。 SoC上的外設將發送零直到CRC數據準備就緒,并且UVM VC以足夠的零符號終止以完成記分板中的匹配。

當外圍設備是主設備時,事務通過微處理器自行啟動。

重復使用UVM RTL驗證測試進行門級仿真詳細過程介紹

圖5:主模式的全雙工數據序列

數據流與奴隸模式的情況非常相似。圖5顯示了在主(外設)和從(UVM VC)之間交換的數據序列的示例。外圍設備發送的第一個符號對于記分板“不關心”。 UVM VC用隨機符號D x 回復,微處理器用它來計算外圍設備發送的偽隨機數據。如上所述,黃色突出顯示的符號是在記分板中比較的符號。

半雙工接口

如果是半雙工接口,例如I 2 C,我們可以有兩種可能的模式:外設是從機,或外設是主機。

外設是slave,事務由外部UVM VC啟動。半雙工模式基于通信協議,其中主設備發送命令請求數據作為回復或將數據發送到專用從設備。

對于全雙工模式,有必要定義良好的流程這樣可以避免 C 代碼中的數據(非隨機)并使數據檢查變得簡單:

通過發送write命令啟動事務。 UVM VC將開始發送數據包。在計算CRC之后,這些數據被添加到記分板中。

接收的數據被DUT用作“回復讀取”命令。微處理器計算接收數據的CRC并準備數據包以進行回復。

UVM VC發送讀命令。外圍設備開始發送先前準備的數據。這些數據將添加到記分板中以進行匹配。

圖6顯示了此數據握手的簡單圖表。

重復使用UVM RTL驗證測試進行門級仿真詳細過程介紹

圖6:從模式的半雙工數據交換

主模式

當外圍設備是主設備時,事務通過微處理器自行啟動。

在這種情況下,為了利用UVM VC的隨機約束特性,協議必須

通過發送讀命令啟動事務。 UVM VC將開始作為回復發送數據包。在計算CRC之后,這些數據被添加到記分板中。

接收的數據被DUT用作“寫入數據”命令。微處理器計算接收數據的CRC并為下一步準備數據包。

外設發送寫命令,然后開始發送先前準備的數據。這些數據將添加到記分板中以進行匹配。

圖7顯示了此數據握手的簡單圖表。

重復使用UVM RTL驗證測試進行門級仿真詳細過程介紹

圖7:主模式的半雙工數據交換

復雜協議

相同的方法可以也可用于USB以太網等復雜協議。概念是相同的:對于全雙工通信,初始符號是“不關心”(空符號),然后DUT使用接收的樣本來計算CRC并將數據發回。

對于半雙工,數據交換由UVM VC啟動,然后DUT使用接收的數據包構建傳輸數據包。

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 仿真
    +關注

    關注

    50

    文章

    4048

    瀏覽量

    133431
  • PCB打樣
    +關注

    關注

    17

    文章

    2968

    瀏覽量

    21660
  • 華強PCB
    +關注

    關注

    8

    文章

    1831

    瀏覽量

    27727
  • 華強pcb線路板打樣

    關注

    5

    文章

    14629

    瀏覽量

    42990
收藏 人收藏

    評論

    相關推薦

    RTL仿真與門仿真

    調用了modelsim進行仿真,發現有毛刺,后來才知道有RTL仿真,運行后波形很好。想問下如
    發表于 08-08 22:57

    關于RTL仿真仿真求助~

    `剛剛本科畢業,假期導師要求做一個設計。實驗室沒有做過FPGA的學長只好問網上的各位了。寫好的FPGA代碼進行RTL仿真波形是符合要求的,如下圖。但是做
    發表于 08-06 12:12

    IC驗證UVM驗證平臺加入objection機制和virtual interface機制“(七)

    機制來控制驗證平臺的關閉。細心的讀者可能發現,在上節的例子中,并沒有如**《IC驗證"一個簡單的UVM驗證平臺"是如何搭建的(五)》**所示顯式地調用 finish語句來結束
    發表于 12-09 18:28

    數字IC驗證之“UVM”基本概述、芯片驗證驗證計劃(1)連載中...

    ,這決定了芯片的用途以及芯片的功能,然后從市場需求到高層算法,算法的目的是建立芯片的功能模型,然后從高層算法到芯片的架構,從芯片的架構到具體rtl代碼的實現,對rtl代碼進行綜合就得到了
    發表于 01-21 15:59

    數字IC驗證之“什么是UVM”“UVM的特點”“UVM提供哪些資源”(2)連載中...

    原文鏈接:https://zhuanlan.zhihu.com/p/345775995大家好,我是一哥,上章內容主要講述兩個內容,芯片驗證以及驗證計劃。那本章我們主要講述的內容有介紹什么是uv
    發表于 01-21 16:00

    數字IC驗證之“典型的UVM平臺結構”(3)連載中...

    應用的過程中,將uvm的組件封裝起來,可以將這些封裝的組件呢作為一個整體進行重用,在進行芯片或者是系統
    發表于 01-22 15:32

    數字IC驗證之“構成uvm測試平臺的主要組件”(4)連載中...

      大家好,我是一哥,上章一個典型的uvm驗證平臺應該是什么樣子的?從本章開始就正式進入uvm知識的學習。先一步一步搭建一個簡單的可運行的測試平臺。  本章首先來
    發表于 01-22 15:33

    數字IC驗證之“搭建一個可以運行的uvm測試平臺”(5)連載中...

      大家好,我是一哥,上章介紹了構成uvm測試平臺的主要組件?最后,我們將一個典型的uvm平臺進行最簡化,從本章我們開始搭建一個可以運行的
    發表于 01-26 10:05

    什么是uvmuvm的特點有哪些呢

    大家好,我是一哥,上章內容我們介紹什么是uvmuvm的特點以及uvm為用戶提供了哪些資源?本章內容我們來看一看一個典型的uvm
    發表于 02-14 06:46

    UVM驗證平臺執行硬件加速

    UVM已經成為了一種高效率的、從模塊到系統完整驗證環境開發標準,其中一個關鍵的原則是UVM可以開發出可重用的
    發表于 09-15 17:08 ?14次下載
    <b class='flag-5'>UVM</b><b class='flag-5'>驗證</b>平臺執行硬件加速

    如何建立VHDL程序的仿真模型和平臺及仿真過程詳細說明

     前面已經講述了VHDL語法和建模,VHDL程序作為硬件的描述語言,可以實現仿真測試,包括RTL仿真
    發表于 01-20 17:03 ?14次下載
    如何建立VHDL程序的<b class='flag-5'>仿真</b>模型和平臺及<b class='flag-5'>仿真</b><b class='flag-5'>過程</b><b class='flag-5'>詳細</b>說明

    芯片設計之門仿真

    綜上,仿真基于測試平臺文件、網表文件、時序反標文件、庫文件,可以
    的頭像 發表于 08-15 14:50 ?2724次閱讀

    UVM中的虛擬序列:為什么,如何?

    大多數UVM測試平臺由可重復使用驗證組件組成,除非我們正在對像MIPI-CSI這樣的簡單協議進行
    的頭像 發表于 05-29 09:46 ?781次閱讀

    測試驗證復雜的FPGA設計(2)——如何在虹科的IP核中執行面向全局的仿真

    仿真驗證是開發任何高質量的基于FPGA的RTL編碼過程的基礎。在上一篇文章中,我們介紹了面向實體/塊的
    的頭像 發表于 06-15 17:31 ?674次閱讀
    <b class='flag-5'>測試</b>與<b class='flag-5'>驗證</b>復雜的FPGA設計(2)——如何在虹科的IP核中執行面向全局的<b class='flag-5'>仿真</b>

    fpga驗證uvm驗證的區別

    FPGA驗證UVM驗證在芯片設計和驗證過程中都扮演著重要的角色,但它們之間存在明顯的區別。
    的頭像 發表于 03-15 15:00 ?1489次閱讀