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

圖4.2展示了SCE-MI如何將非時(shí)序軟件模型與結(jié)構(gòu)化硬件事務(wù)器和DUT模型互連的高層視圖。

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

SCE-MI協(xié)議簡(jiǎn)介
評(píng)論