當(dāng)我們驗(yàn)證片上系統(tǒng)(SoC)嵌入了具有多個(gè)數(shù)字外設(shè)的微處理器以及可能的模擬模塊時(shí),我們希望檢查所有實(shí)現(xiàn)的功能和可能的極端情況,以最大限度地縮短驗(yàn)證時(shí)間。多種技術(shù)和方法的混合用于改進(jìn)功能驗(yàn)證并提取覆蓋等級(jí)的度量:基于通用驗(yàn)證方法(UVM)的形式驗(yàn)證和隨機(jī)約束測(cè)試增加了發(fā)現(xiàn)錯(cuò)誤的可能性。有時(shí)我們?yōu)镽TL驗(yàn)證創(chuàng)建一個(gè)完美有效的測(cè)試,但發(fā)現(xiàn)它不能在門(mén)級(jí)仿真期間重復(fù)使用,因?yàn)閁VM監(jiān)視器掛在內(nèi)部SoC信號(hào)上,這些信號(hào)在實(shí)現(xiàn)階段后可能會(huì)消失或改變。
本文將描述創(chuàng)建有效的自檢模型是多么容易,這些測(cè)試既簡(jiǎn)單又可以在門(mén)級(jí)模擬過(guò)程中重復(fù)使用。令人驚訝的是,通過(guò)改變數(shù)據(jù)流,我們可以為測(cè)試平臺(tái)帶來(lái)好處,降低記分板的復(fù)雜性,這也意味著更少的測(cè)試開(kāi)發(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é)議檢查器和主動(dòng)主控器(例如,I 2 C,SPI,UART,JTAG,SATA,PCIe)。
基于UVM開(kāi)發(fā)的測(cè)試應(yīng)該是自檢的;必須通過(guò)檢查器驗(yàn)證每個(gè)操作,激勵(lì)和事務(wù),如果不匹配,會(huì)引發(fā)一個(gè)“標(biāo)志”,停止模擬并發(fā)出模擬器控制臺(tái)上顯示的錯(cuò)誤消息并寫(xiě)入日志文件。
通信接口(例如,SPI)的驗(yàn)證需要使用由在總線上獲取事務(wù)的收集器形成的UVM VC,用于檢查協(xié)議合規(guī)性的監(jiān)視器以及生成的生成的總線功能模型(BFM)交易。 SoC和外部UVM VC之間交換的數(shù)據(jù)通過(guò)名為記分板的模塊進(jìn)行驗(yàn)證。
此記分板至少有兩個(gè)端口,其中添加的對(duì)象與第二個(gè)相匹配 - 參考。如果不匹配,則發(fā)出錯(cuò)誤。在門(mén)級(jí)仿真期間必須重復(fù)使用這種檢查器以刺激關(guān)鍵路徑。圖1顯示了驗(yàn)證測(cè)試平臺(tái)的簡(jiǎn)單框圖,該平臺(tái)使用多個(gè)檢查器進(jìn)行有效的驗(yàn)證方法。
圖1:典型的UVM驗(yàn)證測(cè)試平臺(tái)
黃色塊是UVM VC??偩€監(jiān)視器是一個(gè)只有監(jiān)視器和檢查器的無(wú)源組件。
用于測(cè)試串行外設(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)視器(被動(dòng))用于將數(shù)據(jù)發(fā)送到記分板:UVM VC發(fā)送的數(shù)據(jù)被添加到記分板 TX路徑,當(dāng)它們到達(dá)外圍設(shè)備時(shí),將通過(guò)總線監(jiān)視器發(fā)送到相同的記分板進(jìn)行匹配。來(lái)自外圍設(shè)備的數(shù)據(jù)被添加到記分板 RX路徑中,并與UVM VC被動(dòng)監(jiān)視器接收的數(shù)據(jù)相匹配。
圖2:全雙工同步外設(shè)示例
此方法的主要缺點(diǎn)是門(mén)級(jí)仿真的可移植性。在實(shí)施階段,RTL中可用的內(nèi)部信號(hào)可能會(huì)在優(yōu)化的網(wǎng)表中消失,UVM VC模塊的綁定變得困難,有時(shí)甚至不可能(例如,在合成期間刪除未使用的端口)。
新的SoC驗(yàn)證流程
新流程的基本概念是記分板中檢查的數(shù)據(jù)不應(yīng)來(lái)自內(nèi)部SoC節(jié)點(diǎn)上綁定的監(jiān)視器(參見(jiàn)圖2)。因此,修改了測(cè)試平臺(tái)配置,以便僅使用UVM VC(主動(dòng)和被動(dòng))進(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ī)化
門(mén)級(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)行匹配過(guò)程。圖3顯示了這個(gè)新流程的一個(gè)示例。
圖3:數(shù)據(jù)檢查的新方法
計(jì)算CRC非常簡(jiǎn)單;對(duì)于記分板,可以使用內(nèi)置函數(shù)(偽方法),例如,可以使用 e 語(yǔ)言:
list_bytes 。crc_32(來(lái)自字節(jié),字節(jié)數(shù))
list_bytes 。crc_8(來(lái)自字節(jié),字節(jié)數(shù))
它逐字節(jié)讀取列表返回位或字節(jié)列表的CRC函數(shù)的整數(shù)值??梢杂?jì)算CRC,定義起始字節(jié)(通過(guò)第一個(gè)參數(shù) from byte )和選定的字節(jié)數(shù)(通過(guò)第二個(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ò)展該功能。
使用此方法可以極大地簡(jiǎn)化記分板上的數(shù)據(jù)管理;由于數(shù)據(jù)檢查是在串行接口上進(jìn)行的,因此它與微處理器總線的數(shù)據(jù)大小無(wú)關(guān),可以是8,16,32位或更多。以下是記分板的示例。
全雙工同步接口
如果是全雙工同步接口,例如SPI,我們可以有兩種可能的模式:外設(shè)是從機(jī),或外設(shè)是主機(jī)。
當(dāng)外設(shè)是從機(jī)時(shí),事務(wù)由外部UVM VC啟動(dòng)。全雙工模式意味著必須同時(shí)發(fā)送和接收數(shù)據(jù)。由于我們希望避免在SoC側(cè)生成數(shù)據(jù)(在 C 代碼上沒(méi)有有線數(shù)據(jù)),因此有效數(shù)據(jù)存在系統(tǒng)延遲。此延遲應(yīng)在記分板上實(shí)現(xiàn),以便正確比較交換的數(shù)據(jù)。
圖4:全雙工數(shù)據(jù)序列用于從模式
圖4顯示了在主(UVM VC)和從(外設(shè))之間交換的數(shù)據(jù)序列的示例。由外圍設(shè)備發(fā)送的第一個(gè)符號(hào)對(duì)于記分板“不關(guān)心”,因此被釋放。微處理器需要一些時(shí)間從緩沖區(qū)獲取數(shù)據(jù)并計(jì)算CRC。一段時(shí)間后,數(shù)據(jù)準(zhǔn)備就緒,交換繼續(xù)從UVM VC隨機(jī)生成和來(lái)自外圍側(cè)的偽隨機(jī)數(shù)據(jù)(在D x 上計(jì)算的CRC)。
我們可以通過(guò)使用傳統(tǒng)的“不關(guān)心”數(shù)據(jù)(例如,零)來(lái)進(jìn)行自動(dòng)符號(hào)同步。當(dāng)然,這些數(shù)據(jù)不應(yīng)由UVM VC生成。 SoC上的外設(shè)將發(fā)送零直到CRC數(shù)據(jù)準(zhǔn)備就緒,并且UVM VC以足夠的零符號(hào)終止以完成記分板中的匹配。
當(dāng)外圍設(shè)備是主設(shè)備時(shí),事務(wù)通過(guò)微處理器自行啟動(dòng)。
圖5:主模式的全雙工數(shù)據(jù)序列
數(shù)據(jù)流與奴隸模式的情況非常相似。圖5顯示了在主(外設(shè))和從(UVM VC)之間交換的數(shù)據(jù)序列的示例。外圍設(shè)備發(fā)送的第一個(gè)符號(hào)對(duì)于記分板“不關(guān)心”。 UVM VC用隨機(jī)符號(hào)D x 回復(fù),微處理器用它來(lái)計(jì)算外圍設(shè)備發(fā)送的偽隨機(jī)數(shù)據(jù)。如上所述,黃色突出顯示的符號(hào)是在記分板中比較的符號(hào)。
半雙工接口
如果是半雙工接口,例如I 2 C,我們可以有兩種可能的模式:外設(shè)是從機(jī),或外設(shè)是主機(jī)。
外設(shè)是slave,事務(wù)由外部UVM VC啟動(dòng)。半雙工模式基于通信協(xié)議,其中主設(shè)備發(fā)送命令請(qǐng)求數(shù)據(jù)作為回復(fù)或?qū)?shù)據(jù)發(fā)送到專用從設(shè)備。
對(duì)于全雙工模式,有必要定義良好的流程這樣可以避免 C 代碼中的數(shù)據(jù)(非隨機(jī))并使數(shù)據(jù)檢查變得簡(jiǎn)單:
通過(guò)發(fā)送write命令啟動(dòng)事務(wù)。 UVM VC將開(kāi)始發(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è)備開(kāi)始發(fā)送先前準(zhǔn)備的數(shù)據(jù)。這些數(shù)據(jù)將添加到記分板中以進(jìn)行匹配。
圖6顯示了此數(shù)據(jù)握手的簡(jiǎn)單圖表。
圖6:從模式的半雙工數(shù)據(jù)交換
主模式
當(dāng)外圍設(shè)備是主設(shè)備時(shí),事務(wù)通過(guò)微處理器自行啟動(dòng)。
在這種情況下,為了利用UVM VC的隨機(jī)約束特性,協(xié)議必須
通過(guò)發(fā)送讀命令啟動(dòng)事務(wù)。 UVM VC將開(kāi)始作為回復(fù)發(fā)送數(shù)據(jù)包。在計(jì)算CRC之后,這些數(shù)據(jù)被添加到記分板中。
接收的數(shù)據(jù)被DUT用作“寫(xiě)入數(shù)據(jù)”命令。微處理器計(jì)算接收數(shù)據(jù)的CRC并為下一步準(zhǔn)備數(shù)據(jù)包。
外設(shè)發(fā)送寫(xiě)命令,然后開(kāi)始發(fā)送先前準(zhǔn)備的數(shù)據(jù)。這些數(shù)據(jù)將添加到記分板中以進(jìn)行匹配。
圖7顯示了此數(shù)據(jù)握手的簡(jiǎn)單圖表。
圖7:主模式的半雙工數(shù)據(jù)交換
復(fù)雜協(xié)議
相同的方法可以也可用于USB或以太網(wǎng)等復(fù)雜協(xié)議。概念是相同的:對(duì)于全雙工通信,初始符號(hào)是“不關(guān)心”(空符號(hào)),然后DUT使用接收的樣本來(lái)計(jì)算CRC并將數(shù)據(jù)發(fā)回。
對(duì)于半雙工,數(shù)據(jù)交換由UVM VC啟動(dòng),然后DUT使用接收的數(shù)據(jù)包構(gòu)建傳輸數(shù)據(jù)包。
-
仿真
+關(guān)注
關(guān)注
50文章
4082瀏覽量
133613 -
PCB打樣
+關(guān)注
關(guān)注
17文章
2968瀏覽量
21709 -
華強(qiáng)PCB
+關(guān)注
關(guān)注
8文章
1831瀏覽量
27760 -
華強(qiáng)pcb線路板打樣
+關(guān)注
關(guān)注
5文章
14629瀏覽量
43045
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論