python verilog 自动化工具,Verilog PLI介绍及运行NC的三种方法

本文介绍了Verilog的Programming Language Interface (PLI),它允许使用C/C++调用用户自定义的系统任务和函数。通过PLI,可以实现功耗分析、代码覆盖率工具等功能。文章详细讲解了PLI的三种类型,用户定义task/function的规则,参数处理,以及在NC仿真中注册和运行PLI程序的三种方法。示例展示了如何创建和使用PLI application,以及遇到的问题和解决办法。
摘要由CSDN通过智能技术生成

1. PLI 功能介绍

Verilog PLI(Programming Language Interface )是一种Verilog代码调用C/C++函数的机制。它能让Verilog像调用一些系统调用(如$display/$stop/$random)一样调用用户编写的C/C++函数,这样我们可以用C/C++语言开始自己的system task/function, 来实现用verilog不太方便的功能,并与外界建立了联系。

PLI可以完成如下功能:

功耗分析

代码覆盖率工具

修改Verilog仿真数据结构(如修改为更精确的延时,即sdf反标)

自定义输出显示

联合仿真

设计的调试功能

仿真分析

加速仿真的C模型接口

Testbench建模

Verilog PLI提供了一些访问verilog内部数据结构的

任务功能程序集 (TF routines): 大部分以tf_开头,主要用于一些用户定义系统任务和函数变量的操作,工具函数(比如设置回调函数和写数据到输出)

访问程序集 (ACC routines): 第二代PLI. 所有以acc_开头。提供了对象导向的对SV结构的访问。主要用于访问和修改信息,比delay value, logic value. ACC routines和TF routines有部分重复。

验证过程接口程序集 (VPI routines): 第三代PLI。大部分以vpi_开头。提供了对象导向的对SV结构, 行为, assertion, coverage 对象的访问。 它包含了TF和ACC routines的所有功能。

2. 用户定义task/function命名

规则如下:

第一个字符必须是$<

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值