数字集成电路设计-14-DPI

引言

在进行IC验证时,尤其是规模较大的时候,单纯用Verilog和SV来构建testbench,可能会稍显吃力。

在这种情况下,使用C或者C++等软件语言往往会大大加快验证速度,提高验证效率。

PLI,VPI,DPI正是基于这个原因开发的,很多仿真器都会提供支持。

之前,我们介绍过VPI的使用,本小结就来说一下更易使用的DPI。


1,基本功能

还是惯例,通过一个具体的实验来体会DPI的使用。

环境:IUS820(Ncsim)。

我们将使用C语言来分别实现一个加法器和一个乘法器。

其中加法器以task的形式实现,乘法器以function的形式实现。

需要注意的是,在实际的项目开发中,我们一般不建议在verilog或SV中直接调用用C语言实现的函数或者task,建议加一个verilog或者SV的wrapper,做一个隔离,利于维护和更新。


2,testbench


/*
* tb.v
* dpi test
* Rill
* 2014-09-28
*/


module tb;

   reg clk;
   reg rst_n;

   reg enable;
   reg [7:0] a;
   reg [7:0] b;
   wire [31:0] sum;

   reg [7:0]   c;
   reg [7:0]   d;
   reg [31:0]  mul_cd;
   
`include "mul.v"
   
   add add0
  
  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值