數字IC仿真測試與C語言函數的DPI-C調用

數字IC仿真測試與C語言函數的DPI-C調用

在深入數字IC仿真設計後,經常需要用到C語言相關函數或任務的配合使用,在system verilog中引入了DPI(Direct Programming Interface)能夠更方便簡潔的連接到C,C++或者其他編程語言進行連仿。只要使用import 聲明就可以調用導入一個C程序,就像在調用System verilog 中的子函數function一樣。

import的用法介紹

import “DPI-C” function counter(output out ,input in,input rst_n,input load);
import聲明是將C語言函數counter轉化爲數字IC語言裏的function。
output是將C語言函數counter的輸出調用到數字IC裏面,數據方向是:C–>IC;
input是將數字IC的輸入導入到C語言函數counter裏面,數據方向是:IC—>C;
C語言與數字IC的數據對應關係如下所示:
0《》0x0,1《》0x1,z《》0x2,x《》0x3;

C語言函數的設計實例

C語言函數的設計實例圖

verilog仿真的設計實例

verilog仿真設計圖

仿真測試結果

仿真結果如下圖所示:一開始out爲初始的42,後面因爲rst_n=0,load=0,就從0開始加1變化,數據out從C語言函數調用到了數字IC設計。
仿真測試圖

DPI最常調用的C語言函數

import “DPI-C” function real sin(input real x);
import “DPI-C” function real round(input real x);
import “DPI-C” function real floor(input real x);
import “DPI-C” function real ceil(input real x);
round(x):返回x四捨五入的整數
floor(x):返回不大於x的最小整數;
ceil(x):返回不小於x的最小整數;
round(2.6)=3;floor(2.6)=2;ceil(2.6)=3;

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章