寫過Verilog和systemverilog的人肯定都用過系統(tǒng)自定義的函數(shù)$display,這是預定好的,可以直接調(diào)用的功能。但是當Verilog中的task和function不能滿足仿真需求時,這就需要自定義一些任務和函數(shù)。
Verilog中使用編程語言接口PLI(Program Language Interface)編程語言接口來和C語言程序交互,它提供了一套C語言函數(shù),我們可以調(diào)用這些集成函數(shù)編寫軟件C程序。RTL代碼編譯的時候,這些軟件C程序也會集成到仿真環(huán)境中。仿真運行后,使用系統(tǒng)任務調(diào)用的方式,就可以去訪問仿真中的數(shù)據(jù)結(jié)構(gòu),也就是說PLI提供一個使得用戶自帶C函數(shù)能夠在運行時間訪問仿真數(shù)據(jù)結(jié)構(gòu)的接口。
PLI先后經(jīng)歷了3代的發(fā)展: 1985年TF Task/Function interface,第一代VerilogPLI。包含一整套C語言函數(shù)庫,函數(shù)定義在verisuer.h文件中,一般稱為TF子程序,主要作用是把任務/函數(shù)參數(shù)傳遞給C函數(shù)。TF的缺點是它定義系統(tǒng)任務/函數(shù),函數(shù)返回值以及需要關聯(lián)任務/函數(shù)名稱到C函數(shù)的機制。該機制并不是標準化的, 這就意味著每個仿真器有不同的PLI接口機制。TF的一個缺點是定義系統(tǒng)任務/函數(shù)名稱、函數(shù)返回類型以及與任務/函數(shù)名稱相關聯(lián)的 C函數(shù)的機制。這種機制不是標準化的,這意味著每個模擬器都有不同的 PLI 接口機制。 1
989年ACC Access interface,第二代VerilogPLI。引入了訪問程序庫的C函數(shù),即ACC函數(shù)庫,由單獨的acc_user.h定義,函數(shù)均以acc_作為前綴。它是作為TF的附加庫。只是增加了搜索仿真數(shù)據(jù)結(jié)構(gòu)的功能,但是不能訪問RTL和行為級的設計部分。此外,復雜的,因仿真器而異的接口機制也是ACC接口的一大缺點。
1995年VPI Verilog Programming Interface,第三代Verilog PLI。VPI是TF和ACC的超集擴展庫。VPI庫定義在C函數(shù)庫文件vpi_user.h。使用VPI, 用戶能夠訪問整個仿真數(shù)據(jù)結(jié)構(gòu), 包括系統(tǒng)任務/函數(shù)的參數(shù)(替換TF) 以及設計的層次結(jié)構(gòu)單元(替換ACC)。
DPI的發(fā)展相對來說比較緩慢 Accellera在2003年4月發(fā)布了包括DPI在內(nèi)的SystemVerilog 3.1標準,隨后在3.1A版本中進一步對DPI進行了加強。systemverilog中使用DPI(Direct Programming Interface),更加簡單地連接C、C++或者其他的非Verilog語言。你只需要使用import語句把C函數(shù)導入到,就可以像調(diào)用systemverilog的子程序一樣來使用它。使用DPI, 用戶無需再像Verilog PLI那樣, 事先編寫系統(tǒng)任務/函數(shù)名稱,然后通過復雜的PLI庫間接傳遞數(shù)值回C函數(shù)。但是DPI不能直接訪問仿真數(shù)據(jù)結(jié)構(gòu)的內(nèi)部,這限制了DPI的應用。 
SystemVerilog DPI和Verilog PLI的比較
DPI絕不是為了替代PLI,而是彌補PLI中的不足,相信不久的未來能出現(xiàn)一個新的PI標準更好得結(jié)合兩者的優(yōu)點。
審核編輯:劉清
-
Verilog
+關注
關注
30文章
1373瀏覽量
114331 -
C語言
+關注
關注
183文章
7642瀏覽量
145129 -
RTL
+關注
關注
1文章
393瀏覽量
62516 -
DPI
+關注
關注
0文章
41瀏覽量
11882
原文標題:從Verilog PLI到SystemVerilog DPI的演變
文章出處:【微信號:處芯積律,微信公眾號:處芯積律】歡迎添加關注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
buck電路原理圖講解 buck電路的演變過程
晶體管架構(gòu)的演變過程
電機瞬變過程
數(shù)字式稱重傳感器的功能演變過程
【視頻分享】降壓電路的演變過程
The Verilog PLI Handbook
Verilog手冊的公眾責任
升壓變換器二種結(jié)構(gòu)的演變過程資料下載
使用Verilog/SystemVerilog硬件描述語言練習數(shù)字硬件設計
談談Verilog/System Verilog和C的幾種交互模式
verilog/systemverilog中隱藏的初始化說明
buck電路的演變過程
淺析can技術的演變過程
從Verilog PLI到SystemVerilog DPI的演變過程
評論