如何測試與驗證複雜的FPGA設計(1)面向實體或塊的仿真

矽智財(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中。若想了解更多資訊,歡迎以下聯絡方式與我們的團隊聯繫!


聯繫我們