本文**:
復用對於測試平台的開發和部署是非常重要的,我們經常談論復用驗證ip(簡稱vip),然而,復用測試平台的結構同樣很重要。手動構建測試平台是乙個耗時和成本昂貴的過程,此外,它很難保證一致性。為了緩解這個問題,cypress 建立了乙個測試平台自動生成器,並命名為tbgen。
tbgen實際上就是能自動生成測試平台(tb)的指令碼,這意味著它可以生成任何測試平台。它的整體流程如圖一所示:
vip: verification intellectual property(驗證智財權)
sas: system architecture specification(系統架構規範)
tbgen有兩個主要輸入:一是sas database,從這可以獲得驗證平台設計的具體資料,比如哪個子系統被用來建立平台,每個子系統的例項數目,傳遞給每個子系統的配置引數,以及該系統暫存器對映等。二是collection of vip,可以提供每個vip裡預定義資訊,比如介面或連線性的資訊是通過繫結模板預定義。
並且,整合測試可以自動檢查針對特定ip的相應例項,通過建立由驗證管理系統(vms)認可的測試架構,可自動生成和啟動測試列表。最後,tbgen要求以統一的方式搭建每個vip,如果某個vip沒有基於tbgen準則搭建,它將是無效的。一旦遵從準則,並提供所有需要的資訊,測試平台就很容易搭建起來,以減少驗證開發時間。
圖2顯示建立乙個平台所需的基本構建模組,基礎是vip guidelines(準則)。(bind templates)介面繫結,(paremeter passing)引數處理,(test integration)自動測試整合,以及(multiple instace)多例項都是必要的,將會在後文逐一介紹。框架基礎是與驗證工程師溝通需求的guidelines(準則),一旦工程師在構建子系統測試平台時遵從這些準則,那麼將這些子平台整合將會被實現:tbgen將從sas資料庫中提取資訊,將子系統測試平台整合在一起,成為乙個整體的測試平台。
a 設計和測試平台引數類
這些設計引數被用於子系統測試平台核心中,目的是建立乙個包含測試平台引數的class(類),這些類被頂層tb使用,從而頂層tb可以通過它和子系統tb傳遞引數。每個ip的設計引數被放在乙個特定的類中,類的名字針對與特定的ip名;tb(測試平台)引數也被放在乙個類裡,命名是類名和「v」字首的組合。
所有的引數類被打包在sys裡,通過「sys::*」將引數匯入需要的命名空間。
b 連線
tbgen乙個主要的功能就是將tb和dut連線起來,如圖6所示,就是連線模型,包含協議**,systemverilog的介面,和dut介面。每個dut的介面都被連線到system verilog的介面上,協議**又連線著system verilog的介面。
c 繫結模板
乙個繫結方法被定義為允許子系統vip機制,繫結頂層tb例項。
圖7包含兩個簡單的繫結模板例子。首先,vip2 宣告了乙個對斷言模組的繫結模板,斷言模組被繫結到了ip2,但是沒有介面,沒有配置控制代碼和定義命名。裡面宣告了inte***ce=no, 提供了3個連線訊號。斷言模組三個訊號sig1,sig2,sig3被連線到input1, input2, input3。第二,vip3宣告了乙個到名字為sample_if介面的繫結模板,如果ip3 類裡引數param2>0,這個介面就被繫結到ip3。介面sample_if應該用`ifdef包裹if_on與之對應,並且,ip3設計引數param1在例項化時會自動傳遞,還有兩個連線訊號,介面訊號if_sig1, if_sig2會連線到input1, input2。
d 支援設計多例項
在soc中,一些子系統可以具有多個例項。圖8給出乙個簡單的例子,其中頂層的環境(env.svh)中,同時示出了soc和子系統的tb。子系統的環境(vip_env)在soc環境中被例項化了兩次,第乙個例項通過 sys::ip1_0 和 sys::vip1_0 將引數在tb和design之間傳遞;第二個例項同樣道理。通過這種方法,ip1_env可以接收到正確的類並配置這些類的例項。
e 子系統整合測試
要實現全自動化,tbgen必須不僅僅建立乙個測試平台,它還必須建立或啟用自動遞迴測試。子系統vip開發人員可以在特定目錄下建立名為integration_tests和integration_seqs資料夾,tbgen將找到這些資料夾,並自動將它們複製到測試平台的目錄結構中,同一型別的所有序列和測試被放置在乙個目錄下,而從子系統vip整合序列或測試資料夾會被放在乙個資料夾中。
cypress的vms工具用來自動建立乙個遞迴名單,vms的開發是為了處理檔案的編譯,測試列表的建立和測試載入,關於如何做到這一點的詳細資訊不在討論的範圍之內。對於測試列表的建立,基本概念是,vms可以遍歷測試資料夾,並根據配置資訊和資料夾結構確定測試名稱,該測試的名稱和配置資訊相結合,構建適當的引數測試列表,一旦列表被建立,vms將使用該測試列表,載入每乙個測試。
f 生成內建暫存器包
cypress的測試平台使用基於mentor graphics公司的集中式暫存器包,在子系統級別中,暫存器包生成是由sas中暫存器對子系統描述驅動的;在soc級,暫存器包生成是由sas暫存器描述中對soc中包含的子系統描述驅動的,因此描述用於生成相同的子系統的暫存器塊可以在子系統和soc中復用。
不同的設計引數可以導致子系統的暫存器塊之間的差異。暫存器生成指令碼由兩個階段操作處理這個問題,第一階段讀取乙個給定的子系統sas暫存器描述和設計引數;第二階段,平面檔案中的資訊轉換成實際字段,暫存器,暫存器塊,暫存器對映類。如圖10所示:
總結tbgen借助必備驗證ip庫,提供了乙個搭建soc層次tb的自動化環境。它通過處理子系統測試例項和統一配置方式來實現,使用這個工具減少了建立新的soc級測試平台的時間,此外,具有自動整合測試和vms,soc級測試平台的建立和遞迴測試可用兩個簡單的步驟來完成,啟動tbgen並啟動 vms。雖然還需要額外的努力來為tbgen準備驗證ip,但總體收益還是巨大的。
基於平台的SoC設計問題
基於平台的soc設計問題 基於平台的方法可提供一種完全整合的通用架構,設計師能夠利用這些共同特點,簡單 快速地開發出soc。而且,通過採用事先設計和特性確定的元件而不是定製設計的方法,有利於加速開發團隊的設計流程,減少逐漸增加的上市時間壓力。把它們應用於多個soc專案,重複使用現有的智財權 ip 模...
使用SuperSocket快速建立Socket服務
supersocket 是乙個輕量級,跨平台並且可擴充套件的 socket 伺服器框架。你無須了解 socket 如何工作,如何使用 socket 和如何維護 socket 連線,便可以使用 supersocket 來建立出乙個穩定可靠,效能優良的遊戲伺服器,gps伺服器,工業控制系統和資料採集伺服...
安全管理平台不等於SOC!
上週做了乙個培訓,又談到了soc和安管平台,我再次強調,安全管理平台 安管平台 不等於soc!這話我早已說過,有必要再認真地提出來說一次。在國際上,對soc的一般性描述定義為一支團隊在乙個相對固定的場所內,按照既定的流程和方法對網路基礎設施及其承載的業務安全執行狀況進行持續的監測與維護。顯然,soc...