仿真和驗(yàn)證是開發(fā)任何高質(zhì)量的基于 FPGA 的 RTL 編碼過程的基礎(chǔ)。在上一篇文章中,我們介紹了面向?qū)嶓w/塊的仿真,即通過在每個輸入信號上生成激勵并驗(yàn)證 RTL 代碼行為是否符合預(yù)期,對構(gòu)成每個 IP 核的不同模塊進(jìn)行實(shí)體/塊的仿真。
前文回顧
如何測試與驗(yàn)證復(fù)雜的FPGA設(shè)計(1)——面向?qū)嶓w或塊的仿真
在本篇文章中,我們將介紹如何在虹科IP核中執(zhí)行面向全局的仿真,而這也是測試與驗(yàn)證復(fù)雜FPGA設(shè)計的第二個關(guān)鍵步驟。
面向全局的仿真
全局仿真意味著驗(yàn)證整個IP實(shí)體的正確行為,包括構(gòu)成產(chǎn)品的每個子模塊。為了適應(yīng)不同客戶的用例,虹科SoC-e IP核解決方案在設(shè)計時充分考慮了靈活性,這意味著虹科所有的IP核都是高度可配置的,無論是在集成時(以優(yōu)化 FPGA 中的封裝)還是在運(yùn)行時。借助于有著不同接口選項(xiàng)的寄存器映射(在下面的示例中,使用 AXI4),運(yùn)行時配置成為可能。
這種靈活性也對仿真過程提出了挑戰(zhàn),因?yàn)樾枰鶕?jù)仿真環(huán)境中的不同測試用例來配置IP。對此,虹科的合作伙伴SoC-e團(tuán)隊(duì)開發(fā)了一個令人驚嘆的智能測試平臺環(huán)境,在該環(huán)境中可以進(jìn)行實(shí)時配置并實(shí)現(xiàn)自動化,開發(fā)人員可以通過“點(diǎn)擊即用”的方式來執(zhí)行復(fù)雜的仿真。例如,測試臺可以通過交換機(jī)發(fā)送以太網(wǎng)幀,并可以通過訪問IP 核的統(tǒng)計寄存器來讀取結(jié)果(并檢查輸出是否符合預(yù)期)。
這極大地加快了調(diào)試過程,并允許開發(fā)團(tuán)隊(duì)執(zhí)行快速迭代,而這在基于硬件的測試環(huán)境中會慢得多。在下圖為具有此類全局測試平臺架構(gòu)的框圖(基于虹科網(wǎng)管以太網(wǎng)交換機(jī)IP核):
網(wǎng)管型以太網(wǎng)交換機(jī) (MES) 表示為UUT。其余的測試臺組件是符合整個環(huán)境的不可綜合的 VHDL 模塊:
Frame Generator::該模塊連接到以太網(wǎng)交換機(jī) IP 的入口端口,負(fù)責(zé)生成激勵(以太網(wǎng)幀)。
Frame Checker:該模塊連接到以太網(wǎng)交換機(jī)IP的出端口,負(fù)責(zé)分析交換機(jī)轉(zhuǎn)發(fā)的流量。
AXI Configurator:它控制 AXI4 配置總線以修改配置寄存器的內(nèi)容(讀/寫操作)。
測試平臺執(zhí)行流程
正常的測試平臺執(zhí)行流程如下:首先,AXIConfigurator模塊根據(jù)測試用例配置IP核。之后,每個FrameGenerator都會生成測試幀,并將其發(fā)送到啟用的入口端口。幀是通過循環(huán)重復(fù)某些特定測試文件中定義的內(nèi)容來生成的。最后,F(xiàn)rame Checker接收幀(接收與否,取決于測試用例)。該塊將檢查每個端口對應(yīng)的統(tǒng)計信息,并根據(jù)執(zhí)行的測試用例確定輸出是否符合預(yù)期的。
虹科SoC-e測試平臺架構(gòu)的一大亮點(diǎn)是Frame Checker可以自動檢測多種錯誤,例如完整性錯誤、轉(zhuǎn)發(fā)錯誤或幀丟失。這是可實(shí)現(xiàn)的,因?yàn)镕rame Generator可以生成具有特定格式的流量(例如有效載荷中的特殊模式、序列號等),F(xiàn)rame Checker可以解釋這些流量。
測試平臺測試計劃
該測試平臺套件的驚人靈活性還與SoC-e定義的嚴(yán)格測試計劃相結(jié)合。對于每個IP核,都有一個測試計劃,旨在在仿真環(huán)境中測試盡可能多的特性。
例如,網(wǎng)管以太網(wǎng)交換機(jī)IP的測試計劃可以被劃分為五個主要部分:
通用交換
自定義轉(zhuǎn)發(fā)
過濾數(shù)據(jù)庫
優(yōu)先隊(duì)列
這些部分旨在涵蓋與網(wǎng)絡(luò)相關(guān)的不同功能的行為,以及不同的流量模式和情況。
測試平臺的結(jié)果可以由開發(fā)人員或用戶以不同的方式進(jìn)行分析。TCL控制臺用于快速反饋測試結(jié)果。然而,在某些情況下,在仿真的特定時刻深入了解特定信號值可能會很有趣。對于這種情況,還開發(fā)了預(yù)先格式化的波形,以便于查找特定信號。
用于測試執(zhí)行的命令行界面(CLI)
此測試平臺環(huán)境中包含的最新功能之一是可以直接從命令行界面(CLI)執(zhí)行所有測試,而無需打開RTL仿真工具(Vivado或其他工具)。這是一個很大的改進(jìn),因?yàn)樗梢詫?shí)現(xiàn)更高的測試自動化。它基于使用Vivado編譯器命令的腳本(Python)的使用,以便用戶生成易于解釋的結(jié)果。
下圖顯示了向用戶顯示的仿真菜單。用戶只需選擇相應(yīng)的選項(xiàng)即可執(zhí)行任何列出的測試:
眾所周知,仿真是一個需要大量時間的過程。即使在功能強(qiáng)大的計算機(jī)中執(zhí)行,毫秒或以上范圍內(nèi)的復(fù)雜仿真也需要持續(xù)數(shù)十分鐘,甚至更長。為了簡化執(zhí)行所有測試的過程(這需要幾個小時),我們實(shí)現(xiàn)了一個“-all”選項(xiàng),它允許在管道中執(zhí)行所有測試,且無需用戶交互。完成所有測試后,它將提供有關(guān)每個測試的報告消息(如下圖所示),并在測試失敗的情況下生成輸出文件,以便開發(fā)人員稍后進(jìn)行分析。
-
仿真
+關(guān)注
關(guān)注
50文章
4023瀏覽量
133336 -
IP核
+關(guān)注
關(guān)注
4文章
326瀏覽量
49377
發(fā)布評論請先 登錄
相關(guān)推薦
評論