UVM基础知识2:基于UVM实战2.5.2节源码,通过DPI引入CModel函数

来源:systemverilog验证 测试平台编写指南(书籍)

来源:UVM实战(书籍)

1 新建counter7.c文件

    vi counter7.c

[html]  view plain  copy
  1. #include<svdpi.h>  
  2.   
  3. void counter7(  
  4.             svBitVecVal * o,  
  5.     const   svBitVecVal * i,  
  6.     const   svBit         reset,  
  7.     const   svBit         load){  
  8.     
  9.   static unsigned char count = 0;  
  10.   
  11.   if (reset)      count = 0;  
  12.   else if (load)  count = *i;  
  13.   else            count++;  
  14.   count = count&0x7f;  
  15.   
  16.   *o = count;  
  17. }  

2 更改run_tc文件为:

vcs +acc +vpi -sverilog $UVM_HOME/src/dpi/uvm_dpi.cc -CFLAGS -DVCS -timescale=1ns/1ps -f filelist.f  counter7.c 


3 在top_tb.sv中增加以下代码

import "DPI-C" function void counter7 ( 
    output bit[6:0] out,
    input bit[6:0]  in,
    input bit       reset,load);

4 在top_tb.sv中新增以下代码

bit [6:0] out, in;
bit       reset,  load;

initial begin 
    $monitor (" test c function SV: out = %3d, in = %3d, reset = %0d, load = %0d\n",out, in, reset, load);
    reset = 0;
    load  = 0;
    in    = 66;
    //out   = 42;
    counter7(out, in, reset, load);
end

5 仿真 (自己制作的makefile 进行make vcs有问题,有高手可以指点一二)

./run_tc

UVM基础知识2:基于UVM实战2.5.2节源码,通过DPI引入CModel函数_第1张图片



6 工程源码如下:

链接:https://pan.baidu.com/s/1N5ENrpO2LK16U4m08sMYBA 密码:402r


你可能感兴趣的:(UVM基础知识)