1. SCE-MI協議簡介
SCE-MI(Standard Co-Emulation API: Modeling Interface)是一種標準化的協同仿真建模接口協議,旨在為SoC設計驗證提供高效的硬件仿真與軟件模型協同工作環境。該協議基于SystemVerilog DPI接口擴展而來,通過多通道通信機制支持非時序軟件模型與RTL或門級硬件模型的無縫連接,特別優化了硬件仿真器和快速原型驗證環境下的性能表現。SCE-MI采用消息/事務導向的通信方式而非事件驅動,有效避免了傳統接口在高速仿真環境中的通信瓶頸,同時支持事務級模型在仿真和仿真環境間的雙向遷移,為EDA行業提供了統一的驗證接口標準,解決了不同廠商API不兼容導致的驗證工具互操作性問題。
SCE-MI標準直接支持三種主要使用模型(圖4.1),用于連接HDL編寫的模型與工作站上運行的模型。每種使用模型都通過相應的接口實現:第一種是基于消息傳遞的宏接口,第二種是基于SystemVerilog DPI的新型函數接口,第三種是新型管道接口。這三種接口構成獨立的使用模型,只要接口實現支持對應規范,采用任一接口的模型都能與對端通信。

圖4.2展示了SCE-MI如何將非時序軟件模型與結構化硬件事務器和DUT模型互連的高層視圖。

SCE-MI為每個通道在仿真器和工作站之間提供傳輸基礎設施,將仿真器中的事務器模型與工作站上的C(非時序或RTL)模型互連。"仿真器"一詞可與任何能夠執行RTL或門級模型的仿真器互換使用,包括軟件HDL仿真器。
這些互連以消息通道的形式提供,運行在SCE-MI基礎設施的軟件端和硬件端之間。每個消息通道有兩個端點:軟件端的稱為消息端口代理,是提供通道API訪問的C++對象或C函數;硬件端的稱為消息端口,實例化在事務器內部并連接到事務器中的其他組件。每個消息通道相對于硬件端是輸入或輸出通道。
消息通道不是硬件信號意義上的單向或雙向總線,而更像是使用消息傳遞協議的網絡套接字。事務器的作用是作為抽象墊片,將從軟件端輸入通道到達的消息分解為可以時鐘驅動到DUT的周期精確事件序列。對于另一個方向的流,事務器將從DUT來的事件序列重新組合成消息,通過輸出通道發送到軟件端。
此外,SCE-MI基礎設施在基于宏的使用模型中提供時鐘(和復位)生成以及與事務器的共享時鐘控制握手信號。這使得事務器在執行消息組合和分解操作時可以"凍結"受控時間。
2.基于宏的消息傳遞接口(Macro-based Message Passing Interface)
基于宏的消息傳遞接口運行時環境由一組接口組件組成,這些組件位于接口的硬件側和軟件側,每個組件提供不同級別的功能。
硬件側接口組件:
SCE-MI硬件側呈現的接口組件由一小部分宏組成,這些宏提供事務器和SCE-MI基礎設施之間的連接點。這些緊湊定義且易于使用的宏向事務器和DUT完整呈現了接口的所有必要方面。這些宏簡單地表示為空的SystemVerilog或VHDL模型,具有明確定義的端口和參數接口。這類似于定義API調用函數原型而不顯示其實現的軟件API規范。
簡而言之,四個宏向事務器和DUT呈現以下接口:
消息輸入端口接口、消息輸出端口接口、受控時鐘和受控復位生成器接口、非受控時鐘、非受控復位和時鐘控制邏輯接口
軟件側接口組件:
SCE-MI基礎設施向軟件側呈現的接口由一組C++對象和方法組成,提供以下功能:
版本發現、參數訪問、初始化和關閉、消息輸入和輸出端口代理綁定和回調注冊、與硬件側的會合操作、基礎設施服務循環輪詢函數、消息輸入發送函數、消息輸出接收回調分派、消息輸入就緒回調分派、錯誤處理。
除了C++面向對象的接口外,還為純C應用程序提供了一組C API函數。
3. 基于函數的接口(Function-based interface)
SCE-MI的基于函數接口設計以無預定義API為核心思想,允許用戶直接在一種語言中定義函數并在另一種語言中調用,形成跨語言事務通道。這種設計充分利用SystemVerilog DPI(IEEE 1800)的標準化特性,將函數調用本身作為最小事務單元,其輸入/輸出參數自然構成事務的數據成員,避免了傳統消息傳遞中繁瑣的位切片操作。在數據類型映射上,SystemVerilog的固定寬度類型(如int=32位)與C的兼容類型(如int32_t)直接對應,而位向量通過svBitVecVal實現映射,但需注意ANSI C整數寬度的靈活性可能要求用戶處理數據掩碼和填充問題。
上下文處理是跨語言調用的關鍵技術挑戰。由于C函數缺乏面向對象的上下文(如C++的this指針),SCE-MI通過作用域綁定機制解決:在初始化階段,使用svPutUserData將HDL模塊實例的作用域(通過svGetScopeFromName獲取)與用戶數據(如C++對象指針)關聯;在函數調用時,通過svGetScope動態獲取調用者作用域,再以svGetUserData提取關聯對象,確保事務在正確的上下文中執行。這一機制在SystemVerilog HVL與HDL的交互中尤為重要,其三層架構(HVL→C層→HDL)通過自動生成的C層代碼實現無縫橋接。
SV-Connect架構專門針對SystemVerilog HVL與HDL的集成設計。EDA工具利用VPI解析HVL側的DPI函數聲明,自動生成精簡的C中間層:
入站調用(HVL→HDL)時,C層傳遞HDL實例的作用域句柄chandle,使HVL側能精確定位目標事務器;
出站調用(HDL→HVL)時,C層通過svGetScope()捕獲HDL調用者作用域,切換至HVL包作用域后調用目標函數。HVL側通過靜態作用域映射表(如static ProxyClass proxyMap[chandle])將作用域與代理對象綁定,實現事務的定向分發。
基于函數接口的核心優勢在于其標準化和零時間事務特性:基于成熟的SystemVerilog DPI標準,函數調用不消耗仿真時間,規避了時鐘同步問題,同時無縫集成SystemC/UVM等驗證方法學。典型應用包括事務級驗證(連接非時序測試平臺與RTL DUT)、IP復用(事務器實現者預封裝函數接口)以及混合仿真環境移植,為復雜SoC驗證提供高效、可移植的解決方案。
4.基于管道的接口(Pipe-based interface)
SCE-MI管道接口(Pipe-based Interface)是針對流式數據傳輸和可變長消息設計的核心通信機制,其設計融合了UNIX流式處理與套接字通信的精髓。管道作為單向事務通道,支持兩種數據可見性模式:延遲可見性模式下,生產者寫入的數據需等待管道填滿或顯式刷新(flush)后才對消費者可見,適用于批量傳輸優化;即時可見性模式則確保數據寫入后立即可見,消費者下次獲得執行控制權即可訪問,適用于實時交互場景。管道在語義上兼具UNIX文件流的緩沖傳輸與刷新機制、UNIX命名管道的唯一標識性(通過HDL層級路徑綁定),以及套接字式單向消息傳遞的簡潔性,但規避了復雜綁定流程。
與傳統TLM FIFO相比,管道具備顯著差異:FIFO需用戶預設固定緩沖深度并依賴自動同步機制,而管道由實現定義動態緩沖深度(支持運行時優化),用戶通過顯式flush控制同步點,且僅支持阻塞操作以保證確定性。這種設計使管道天然適配流式數據與可變長消息場景,例如支持數據整形機制——漏斗模式允許生產者寬位寬發送(如整幀100字節)、消費者窄位寬處理(逐字節接收),實現高效批量傳輸;噴嘴模式則支持生產者窄位寬發送(逐字節)、消費者寬位寬接收(整幀處理),滿足隨機訪問需求。配合EOM(消息結束)標記,生產者可通過eom=1標識消息邊界,基礎設施確保跨位寬轉換時EOM僅出現在末位元素(如噴嘴模式中消費者讀取整幀時置位),解決了可變長消息的邊界同步問題。
針對RTL驗證的時序挑戰,管道引入時鐘綁定機制:傳統管道在狀態機中可能因異步喚醒引發時序失配,而時鐘管道(如scemi_input_pipe #(..., .IS_CLOCKED_INTF=1) input_pipe(clock);)通過綁定時鐘信號,使receive/send操作嚴格同步于時鐘邊沿。如圖4.11/4.12所示,該機制可直接集成到RTL狀態機,避免非阻塞輪詢(try_receive)的復雜性,確保周期精確的事務處理。例如在以太網幀傳輸中,C端可逐字節發送可變長幀(eom標記幀尾),HDL端通過時鐘管道整幀接收并處理,實現軟件模型(非時序)與RTL模型(周期精確)的無縫橋接。
實現層面,管道采用分層架構:用戶層提供阻塞式send/receive等易用接口,基礎設施層則提供線程中立的回調函數,支持適配SystemC等多線程環境。其參考實現可基于DPI函數構建,確保跨平臺一致性;優化實現則允許廠商針對硬件加速器深度定制批處理與并發傳輸。需注意的是,基礎設施不防范應用層死鎖(如HDL等待空管道但C端未發送數據),且所有實現必須嚴格遵循標準語義以保證行為確定性。典型應用包括流式數據傳輸(如文件流注入)和混合抽象層橋接,通過動態緩沖深度優化流式場景,顯式指定深度滿足FIFO需求,成為復雜SoC驗證中連接事務級測試平臺與RTL DUT的核心基礎設施。
原文鏈接:
https://community.sslcode.com.cn/6881a30fa6db534ba2bb6c9f.html
-
接口
+關注
關注
33文章
9519瀏覽量
157015 -
仿真
+關注
關注
54文章
4482瀏覽量
138243 -
函數
+關注
關注
3文章
4417瀏覽量
67499 -
模型
+關注
關注
1文章
3751瀏覽量
52099
原文標題:SCE-MI協議簡介
文章出處:【微信號:gh_9d70b445f494,微信公眾號:FPGA設計論壇】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
SCE-MI協議簡介
評論