一区二区三区三上|欧美在线视频五区|国产午夜无码在线观看视频|亚洲国产裸体网站|无码成年人影视|亚洲AV亚洲AV|成人开心激情五月|欧美性爱内射视频|超碰人人干人人上|一区二区无码三区亚洲人区久久精品

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

重復(fù)使用UVM RTL驗(yàn)證測試進(jìn)行門級仿真詳細(xì)過程介紹

PCB線路板打樣 ? 來源:LONG ? 2019-08-09 15:25 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

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

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

流程基于實(shí)例化UVM驗(yàn)證用于檢查接口的組件,例如SPI,I 2 C,& UART,但它也可以擴(kuò)展到更復(fù)雜的接口。

SoC驗(yàn)證流程

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

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

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

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

重復(fù)使用UVM RTL驗(yàn)證測試進(jìn)行門級仿真詳細(xì)過程介紹

圖1:典型的UVM驗(yàn)證測試平臺

黃色塊是UVM VC??偩€監(jiān)視器是一個(gè)只有監(jiān)視器和檢查器的無源組件。

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

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

重復(fù)使用UVM RTL驗(yàn)證測試進(jìn)行門級仿真詳細(xì)過程介紹

圖2:全雙工同步外設(shè)示例

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

新的SoC驗(yàn)證流程

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

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

數(shù)據(jù)隨機(jī)化

門級模擬的可移植性

易用性

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

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

重復(fù)使用UVM RTL驗(yàn)證測試進(jìn)行門級仿真詳細(xì)過程介紹

圖3:數(shù)據(jù)檢查的新方法

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

list_bytes 。crc_32(來自字節(jié),字節(jié)數(shù))

list_bytes 。crc_8(來自字節(jié),字節(jié)數(shù))

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

32位CRC的生成多項(xiàng)式為:

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的生成多項(xiàng)式為:

x 8 + x 2 + x + 1

類似的函數(shù)用于SoC中微處理器執(zhí)行的 C 代碼:


POLY_GEN8為0x03??梢允褂肞OLY_GEN32 = 0x2608EDB為CRC32擴(kuò)展該功能。

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

重復(fù)使用UVM RTL驗(yàn)證測試進(jìn)行門級仿真詳細(xì)過程介紹



全雙工同步接口

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

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

重復(fù)使用UVM RTL驗(yàn)證測試進(jìn)行門級仿真詳細(xì)過程介紹

圖4:全雙工數(shù)據(jù)序列用于從模式

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

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

當(dāng)外圍設(shè)備是主設(shè)備時(shí),事務(wù)通過微處理器自行啟動。

重復(fù)使用UVM RTL驗(yàn)證測試進(jìn)行門級仿真詳細(xì)過程介紹

圖5:主模式的全雙工數(shù)據(jù)序列

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

半雙工接口

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

外設(shè)是slave,事務(wù)由外部UVM VC啟動。半雙工模式基于通信協(xié)議,其中主設(shè)備發(fā)送命令請求數(shù)據(jù)作為回復(fù)或?qū)?shù)據(jù)發(fā)送到專用從設(shè)備。

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

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

接收的數(shù)據(jù)被DUT用作“回復(fù)讀取”命令。微處理器計(jì)算接收數(shù)據(jù)的CRC并準(zhǔn)備數(shù)據(jù)包以進(jìn)行回復(fù)。

UVM VC發(fā)送讀命令。外圍設(shè)備開始發(fā)送先前準(zhǔn)備的數(shù)據(jù)。這些數(shù)據(jù)將添加到記分板中以進(jìn)行匹配。

圖6顯示了此數(shù)據(jù)握手的簡單圖表。

重復(fù)使用UVM RTL驗(yàn)證測試進(jìn)行門級仿真詳細(xì)過程介紹

圖6:從模式的半雙工數(shù)據(jù)交換

主模式

當(dāng)外圍設(shè)備是主設(shè)備時(shí),事務(wù)通過微處理器自行啟動。

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

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

接收的數(shù)據(jù)被DUT用作“寫入數(shù)據(jù)”命令。微處理器計(jì)算接收數(shù)據(jù)的CRC并為下一步準(zhǔn)備數(shù)據(jù)包。

外設(shè)發(fā)送寫命令,然后開始發(fā)送先前準(zhǔn)備的數(shù)據(jù)。這些數(shù)據(jù)將添加到記分板中以進(jìn)行匹配。

圖7顯示了此數(shù)據(jù)握手的簡單圖表。

重復(fù)使用UVM RTL驗(yàn)證測試進(jìn)行門級仿真詳細(xì)過程介紹

圖7:主模式的半雙工數(shù)據(jù)交換

復(fù)雜協(xié)議

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

對于半雙工,數(shù)據(jù)交換由UVM VC啟動,然后DUT使用接收的數(shù)據(jù)包構(gòu)建傳輸數(shù)據(jù)包。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報(bào)投訴
  • 仿真
    +關(guān)注

    關(guān)注

    52

    文章

    4276

    瀏覽量

    135769
  • PCB打樣
    +關(guān)注

    關(guān)注

    17

    文章

    2977

    瀏覽量

    22554
  • 華強(qiáng)PCB
    +關(guān)注

    關(guān)注

    8

    文章

    1831

    瀏覽量

    28588
  • 華強(qiáng)pcb線路板打樣

    關(guān)注

    5

    文章

    14629

    瀏覽量

    43905
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關(guān)推薦
    熱點(diǎn)推薦

    RTL仿真與門仿真

    調(diào)用了modelsim進(jìn)行仿真,發(fā)現(xiàn)有毛刺,后來才知道有RTL仿真,運(yùn)行后波形很好。想問下如
    發(fā)表于 08-08 22:57

    關(guān)于RTL仿真仿真求助~

    `剛剛本科畢業(yè),假期導(dǎo)師要求做一個(gè)設(shè)計(jì)。實(shí)驗(yàn)室沒有做過FPGA的學(xué)長只好問網(wǎng)上的各位了。寫好的FPGA代碼進(jìn)行RTL仿真波形是符合要求的,如下圖。但是做
    發(fā)表于 08-06 12:12

    IC驗(yàn)證UVM驗(yàn)證平臺加入objection機(jī)制和virtual interface機(jī)制“(七)

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

    數(shù)字IC驗(yàn)證之“UVM”基本概述、芯片驗(yàn)證驗(yàn)證計(jì)劃(1)連載中...

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

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

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

    數(shù)字IC驗(yàn)證之“典型的UVM平臺結(jié)構(gòu)”(3)連載中...

    應(yīng)用的過程中,將uvm的組件封裝起來,可以將這些封裝的組件呢作為一個(gè)整體進(jìn)行重用,在進(jìn)行芯片或者是系統(tǒng)
    發(fā)表于 01-22 15:32

    數(shù)字IC驗(yàn)證之“構(gòu)成uvm測試平臺的主要組件”(4)連載中...

      大家好,我是一哥,上章一個(gè)典型的uvm驗(yàn)證平臺應(yīng)該是什么樣子的?從本章開始就正式進(jìn)入uvm知識的學(xué)習(xí)。先一步一步搭建一個(gè)簡單的可運(yùn)行的測試平臺。  本章首先來
    發(fā)表于 01-22 15:33

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

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

    什么是uvm?uvm的特點(diǎn)有哪些呢

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

    UVM驗(yàn)證平臺執(zhí)行硬件加速

    UVM已經(jīng)成為了一種高效率的、從模塊到系統(tǒng)完整驗(yàn)證環(huán)境開發(fā)標(biāo)準(zhǔn),其中一個(gè)關(guān)鍵的原則是UVM可以開發(fā)出可重用的
    發(fā)表于 09-15 17:08 ?14次下載
    <b class='flag-5'>UVM</b><b class='flag-5'>驗(yàn)證</b>平臺執(zhí)行硬件加速

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

     前面已經(jīng)講述了VHDL語法和建模,VHDL程序作為硬件的描述語言,可以實(shí)現(xiàn)仿真測試,包括RTL仿真
    發(fā)表于 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'>詳細(xì)</b>說明

    芯片設(shè)計(jì)之門仿真

    綜上,仿真基于測試平臺文件、網(wǎng)表文件、時(shí)序反標(biāo)文件、庫文件,可以
    的頭像 發(fā)表于 08-15 14:50 ?3297次閱讀

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

    大多數(shù)UVM測試平臺由可重復(fù)使用驗(yàn)證組件組成,除非我們正在對像MIPI-CSI這樣的簡單協(xié)議進(jìn)行
    的頭像 發(fā)表于 05-29 09:46 ?1091次閱讀

    測試驗(yàn)證復(fù)雜的FPGA設(shè)計(jì)(2)——如何在虹科的IP核中執(zhí)行面向全局的仿真

    仿真驗(yàn)證是開發(fā)任何高質(zhì)量的基于FPGA的RTL編碼過程的基礎(chǔ)。在上一篇文章中,我們介紹了面向?qū)嶓w/塊的
    的頭像 發(fā)表于 06-15 17:31 ?1000次閱讀
    <b class='flag-5'>測試</b>與<b class='flag-5'>驗(yàn)證</b>復(fù)雜的FPGA設(shè)計(jì)(2)——如何在虹科的IP核中執(zhí)行面向全局的<b class='flag-5'>仿真</b>

    fpga驗(yàn)證uvm驗(yàn)證的區(qū)別

    FPGA驗(yàn)證UVM驗(yàn)證在芯片設(shè)計(jì)和驗(yàn)證過程中都扮演著重要的角色,但它們之間存在明顯的區(qū)別。
    的頭像 發(fā)表于 03-15 15:00 ?2480次閱讀