最近有群友問我system Verilog 和C怎么交互,在網上搜了一圈發現資料比較少,今天這里就和大家講講system Verilog 和C的交互。話不多說直接上干活。
第一種 Verilog 通過PLI調用C函數。
PLI全稱 Program Language Interface,程序員可以通過PLI在verilog中調用C函數,這種訪問是雙向的。這些用戶定義的系統任務和函數的名稱必須以美元符號"" 開頭。大家用得比較多的PLI函數有display,$finish等。
用戶可以自定義PLI函數,下面是一個簡單的PLI應用例子。
以下是一段C代碼
下面是一段調用C的verilog的代碼
第二種 System Verilog 通過DPI和C進行交互
為了更加簡潔的連接C,system verilog 引入了DPI(Direct Programming Interface)。只要使用import聲明和使用,導入一個C子程序,就可以像調用System Verilog中的子程序一樣來調用它。相反,如果C想用system verilog里面的函數用export 聲明即可。下面是一個簡單的例子。
在System Verilog 里面調用C函數
C代碼和上面一樣
System Verilog的代碼如下
在C中調用System Verilog 函數
System Verilog 的代碼如下
C代碼如下
第三中 System Verilog 和C的交互方式是通過TLM1.0或者TLM2.0 進行交互。
這種交互方式主要應用在System Verilog 和systemc 上。對于systemc一般人用得比較少,所以這類交互也比較少用。下面是一個簡單的例子
Systemc 的編碼,其中cnn_inst的接口in是tlm1/tlm2類型port。
System verilog 的編碼,cpu_inst.out 為tlm1/tlm2類型的port。
第四種交互方式,通過CPU執行C代碼,從而實現verilog 和C的交互。
C代碼通過工具鏈編譯成CPU可以執行的匯編指令,再將匯編指令轉成對應的指令代碼,然后通過CPU讀取指令代碼產生激勵,實現C代碼所描述的功能。
以上是Verilog/System Verilog 和C的幾種交互模式,小伙伴們學會了嗎?
-
編碼器
+關注
關注
45文章
3754瀏覽量
136724 -
Verilog
+關注
關注
28文章
1364瀏覽量
111563 -
TLM
+關注
關注
1文章
33瀏覽量
24894 -
DPI
+關注
關注
0文章
39瀏覽量
11653
發布評論請先 登錄
System Verilog常見問題及語言參考手冊規范
System Verilog問題和語言參考手冊規范
Verilog Digital System Design

VHDL,Verilog,System verilog比較
verilog是什么_verilog的用途和特征是什么

淺談Verilog-95、Verilog-2001與System Verilog之間的區別
System Verilog與verilog的對比
學會這些System Verilog方法,芯片驗證入門沒問題
談談system Verilog 和C的交互

評論