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