打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
Verilog PLI教程1
userphoto

2014.08.27

关注

Verilog PLI教程:第一部分 介绍

2007-09-24 来源:数字集成电路设计者 作者:5life

Verilog PLI(可编程语言接口)是在Verilog代码中运行C或者C++的一种机制。用C/C++写函数编译代码并产生共享库(windows下是*.dll文件,Unix下是*.so文件)。VCS这样的仿真工具也允许静态链接。在verilog代码中调用这些函数…

Verilog PLI(可编程语言接口)是在Verilog代码中运行C或者C++的一种机制。

系统调用是指在verilog代码中调用的函数。一个例子:内置系统任务$display,$stop,$random PLI允许用户创建自己的系统调用,实现Verilog语法不能实现的功能。如:

功耗分析
代码覆盖率工具
能修改verilog仿真数据结构,得到更精确的延时信息
用户定制的输出显示
联合仿真
设计调试工具
仿真分析
创建C模型接口,加快仿真
Testbench
建模
为了实现上述PLI的一些应用,C代码必须能access verilog仿真器的内部数据结构。于是,Verilog PLI提供了一些acc程序或者简单的access程序。第二种程序系列叫做tf程序,或者简单的任务和函数。 tf acc都是PLI1.0 的程序,是既大又老的程序。另一种程序在最新的verilog 2001版本引入,叫做vpi程序。这是一种小而清晰的PLI程序,称作PLI2.0

通过Verilog 2001 LRM PLI1.0 IEEE文档,你可以查阅PLI提供的每个函数的详细资料。Verilog IEEE LRM 是为有硬件背景的人都可以读懂而写的。如果你拿不到以上的IEEE文档,你可以购买在书籍章节里列出的PLI书籍。

PLI
是如何工作的

C/C++写函数
编译代码并产生共享库(windows下是*.dll文件,Unix下是*.so文件)。VCS这样的仿真工具也允许静态链接。
verilog代码中调用这些函数(大多数是在verilogtestbench
verilog代码的编译过程中,把C/C++函数详细信息传给仿真器。一旦链接成功,就可以像任何verilog仿真一样运行仿真器

在仿真器执行verilog代码时,当仿真器遇到用户自定义的任务(以$开头),PLI程序(C/C++函数)得到运行控制。

例子 - Hello World
我们将定义一个hello函数,当它被调用时,将打印出“Hello Deepak”。这个例子将不使用任何的PLI标准函数(ACC,TFVPI)。对于详细的链接信息,请参考仿真器的手册。每个仿真器都有它自己的方式把C/C++函数链接到仿真器。

C
代码

1

#include <stdio.h>

2

 

3

void hello () {

4

 

printf ( "nHello Deepakn" );

5

}


verilog
代码

1

module hello_pli ();

2

 

3

initial begin

4

 

$hello;

5

 

#10 $finish;

6

end

7

 

8

endmodule

 

开始仿真
一旦链接完成,仿真就如以前我们见过的普通仿真一样,只是在命令行的选项上有些许改变。就是我们必须要告诉仿真器,我们要使用PLIModelsim 需要在命令行上指定加载哪个共享对象)。

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
编写pli应用程序(转)
TIA博途入门使用教程:博途V15.1程序仿真与下载,PLCSIM使用教程
验证方法学浅谈 --- 验证工具
xilinx编写高效的验证平台
以DAC为例介绍SpectreVerilog数模混合电路仿真方法
Modelsim — FPGA 仿真验证工具
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服