IP核的開發過程中,面臨著許多關鍵技術,比如IP核的規格定義、基于接口的設計、IP核測試存取結構標準、IP核的驗證與打包等。對于IP核的驗證,主要是建立參照模型和測試平臺,然后進行回歸測試和形式驗證。這里參照的模型主要用于對系統功能進行驗證以及和RTL模型的對照驗證,該模型主要用Verilog HDL等語言來構造。測試平臺的建立與子模塊設計并行,搭建驗證環境和開發測試用例,并針對IP核的行為級模型對測試環境和測試用例進行調試,從而同步準備好用來仿真測試RTL級IP核的驗證環境和測試用例。
仿真和驗證是開發任何高質量的基于 FPGA 的 RTL 編碼過程的基礎。在本系列文章中,我們將分享我們設計過程中的關鍵步驟,并將基于虹科以太網IP核產品組合進行介紹。
整個過程的關鍵步驟如下:
面向實體/塊的仿真:通過在每個輸入信號上生成激勵并驗證 RTL 代碼行為是否符合預期,對構成每個 IP 核的不同模塊進行實體/塊的仿真。
面向全局的仿真:一旦不同的模塊被單獨驗證,則意味著下一步將整個IP仿真為單個 UUT(被測試單元)。
(On)硬件測試:盡管擴展的仿真計劃提供了良好的可信度,但仍有許多corner的情況無法在虛擬環境中驗證。對于這些情況,需要基于硬件的測試計劃,這也是獲得高質量結果的最后一步。
在本篇文章中,我們將描述第一步:IP 仿真的實體或塊級別是如何完成的。
面向實體或塊的仿真
“面向實體或塊的仿真”這一步驟意味著驗證在 IP 核內具有特定操作的特定實體或模塊的正確操作。每個 IP 核都由許多實體或塊組成,為了測試它們,每個實體會有不同的測試平臺,通過在輸入受到刺激時觀察設計的輸出來執行設計。這將有助于檢查預期的行為。
舉個例子就可以很好地理解這個步驟。下面我們先介紹虹科以太網交換機 IP 核的過濾數據庫。過濾數據庫存儲 MAC 地址及其相關信息以做出幀轉發決策。它是一個基于哈希的存儲器,每個地址條目都有一些存儲過濾數據的 bin。該哈希算法還生成過濾數據庫內存的索引。
過濾數據庫執行有三個主要過程:學習、查找和老化
學習過程負責在滿足不同條件時保存幀。
查找過程是在過濾數據庫中搜索并獲得幀的轉發端口掩碼的過程。
老化過程根據給定的時間段刪除舊的 MAC 條目。
在這個仿真MAC表的具體案例中,請始終嘗試測試構成過濾數據庫功能的所有機制。從這個意義上說,就像學習不同的MAC,不同的查詢、老化是并行完成的,最后需要清除MAC表并驗證所有條目都已刪除。此外,研究并始終能夠測試可能的corner案例也十分重要。
測試和驗證復雜 FPGA 設計的第二個關鍵步驟將在下一篇文章中展開介紹。一旦形成 IP 核的所有實體都按預期工作,全局仿真就會發揮作用。
未完待續
IP核可以使開發人員減少工作量,并縮短產品上市時間。虹科目前已有豐富的IP核產品組合,包括TSN IP核、HSR/PRP IP核、以太網IP核、冗余IP核等,可以輕松集成到用戶的FPGA中。若想了解更多信息,歡迎通過sales@hkaco.com聯系虹科工業控制團隊!
原文標題:虹科干貨 | 如何測試與驗證復雜的FPGA設計(1)——面向實體或塊的仿真
文章出處:【微信公眾號:廣州虹科電子科技有限公司】歡迎添加關注!文章轉載請注明出處。
審核編輯:湯梓紅
-
FPGA
+關注
關注
1630文章
21796瀏覽量
605987 -
仿真
+關注
關注
50文章
4124瀏覽量
133985 -
IP核
+關注
關注
4文章
331瀏覽量
49634
原文標題:虹科干貨 | 如何測試與驗證復雜的FPGA設計(1)——面向實體或塊的仿真
文章出處:【微信號:Hongketeam,微信公眾號:廣州虹科電子科技有限公司】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
智能駕駛HIL仿真測試解決方案
![智能駕駛HIL<b class='flag-5'>仿真</b>測試解決方案](https://file1.elecfans.com/web3/M00/03/65/wKgZPGdo0OqAKWfPAABsx8hEQd4158.png)
功放設計仿真的一般步驟
![功放設計<b class='flag-5'>仿真的</b>一般步驟](https://file1.elecfans.com/web2/M00/0B/C1/wKgZomc4A2KASF9MAAAUmmUWPSM181.jpg)
Efinity FIFO IP仿真問題 -v1
![Efinity FIFO <b class='flag-5'>IP</b><b class='flag-5'>仿真</b>問題 -v1](https://file1.elecfans.com/web2/M00/0A/C7/wKgaomcVzXSAJAskAAAY6WDHRZE641.png)
機器人仿真的類型和優勢
![機器人<b class='flag-5'>仿真的</b>類型和優勢](https://file1.elecfans.com/web1/M00/F2/D2/wKgaoWcMha-Aba26AAAQnQDZ1tQ011.jpg)
域名、IP 地址、網址分別是什么?有什么區別呢?
![域名、<b class='flag-5'>IP</b> 地址、網址分<b class='flag-5'>別是</b>什么?有什么區別呢?](https://file1.elecfans.com/web2/M00/06/B9/wKgZombqQ9OAav1FAAElWjHcO-A799.png)
AMI參數掃描與仿真的實際應用和實現方法
![AMI參數掃描與<b class='flag-5'>仿真的</b>實際應用和實現方法](https://file1.elecfans.com/web2/M00/FD/A4/wKgZomad0IaAd0KdAAAe-U-Ui20033.png)
FPGA的IP軟核使用技巧
STlink仿真的時候斷點個數有限是為什么?不能多打嗎?
最實用的Modelsim使用及仿真的基本步驟
![最實用的Modelsim使用及<b class='flag-5'>仿真的</b>基本步驟](https://file1.elecfans.com/web2/M00/C3/B3/wKgaomXnzjmAXho3AAAB0cD9rhk834.png)
評論