0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

从Verilog PLI到SystemVerilog DPI的演变过程

sanyue7758 来源:ICer消食片 2023-05-16 09:27 次阅读

写过Verilog和systemverilog的人肯定都用过系统自定义的函数$display,这是预定好的,可以直接调用的功能。但是当Verilog中的task和function不能满足仿真需求时,这就需要自定义一些任务和函数。

Verilog中使用编程语言接口PLIProgram Language Interface)编程语言接口来和C语言程序交互,它提供了一套C语言函数,我们可以调用这些集成函数编写软件C程序。RTL代码编译的时候,这些软件C程序也会集成到仿真环境中。仿真运行后,使用系统任务调用的方式,就可以去访问仿真中的数据结构,也就是说PLI提供一个使得用户自带C函数能够在运行时间访问仿真数据结构的接口。

PLI先后经历了3代的发展: 1985年TF Task/Function interface,第一代VerilogPLI。包含一整套C语言函数库,函数定义在verisuer.h文件中,一般称为TF子程序,主要作用是把任务/函数参数传递给C函数。TF的缺点是它定义系统任务/函数,函数返回值以及需要关联任务/函数名称到C函数的机制。该机制并不是标准化的, 这就意味着每个仿真器有不同的PLI接口机制。TF的一个缺点是定义系统任务/函数名称、函数返回类型以及与任务/函数名称相关联的 C函数的机制。这种机制不是标准化的,这意味着每个模拟器都有不同的 PLI 接口机制。 1

989年ACC Access interface,第二代VerilogPLI。引入了访问程序库的C函数,即ACC函数库,由单独的acc_user.h定义,函数均以acc_作为前缀。它是作为TF的附加库。只是增加了搜索仿真数据结构的功能,但是不能访问RTL和行为级的设计部分。此外,复杂的,因仿真器而异的接口机制也是ACC接口的一大缺点。

1995年VPI Verilog Programming Interface,第三代Verilog PLI。VPI是TF和ACC的超集扩展库。VPI库定义在C函数库文件vpi_user.h。使用VPI, 用户能够访问整个仿真数据结构, 包括系统任务/函数的参数(替换TF) 以及设计的层次结构单元(替换ACC)。

DPI的发展相对来说比较缓慢 Accellera在2003年4月发布了包括DPI在内的SystemVerilog 3.1标准,随后在3.1A版本中进一步对DPI进行了加强。systemverilog中使用DPI(Direct Programming Interface),更加简单地连接C、C++或者其他的非Verilog语言。你只需要使用import语句把C函数导入到,就可以像调用systemverilog的子程序一样来使用它。使用DPI, 用户无需再像Verilog PLI那样, 事先编写系统任务/函数名称,然后通过复杂的PLI库间接传递数值回C函数。但是DPI不能直接访问仿真数据结构的内部,这限制了DPI的应用。

f75e2be0-f36a-11ed-90ce-dac502259ad0.png

SystemVerilog DPI和Verilog PLI的比较

DPI绝不是为了替代PLI,而是弥补PLI中的不足,相信不久的未来能出现一个新的PI标准更好得结合两者的优点。





审核编辑:刘清

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • Verilog
    +关注

    关注

    28

    文章

    1351

    浏览量

    110078
  • C语言
    +关注

    关注

    180

    文章

    7604

    浏览量

    136713
  • RTL
    RTL
    +关注

    关注

    1

    文章

    385

    浏览量

    59766
  • DPI
    DPI
    +关注

    关注

    0

    文章

    36

    浏览量

    11509

原文标题:从Verilog PLI到SystemVerilog DPI的演变

文章出处:【微信号:处芯积律,微信公众号:处芯积律】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    buck电路原理图讲解 buck电路的演变过程

    buck电路相信很多从事电子类工作的朋友都听过,它说白了就是个直流降压电路,在降压芯片出来之前,它的出场率非常高但是以前仅仅是看过他,不懂它是怎样演变过来的,今天旺哥和大家一起分析学习下它的演变过程
    发表于 08-23 15:28 1325次阅读
    buck电路原理图讲解 buck电路的<b class='flag-5'>演变过程</b>

    数字式称重传感器的功能演变过程

    [1]、[2]),本文不再累述。本文仅想对数字式智能化称重传感器功能演变过程初始阶段的数字化前置转换、第二阶段的智能化补偿与校正、第三阶段的称重系统的智能化应用的
    发表于 07-11 08:11

    【视频分享】降压电路的演变过程

    大家上午好:前几天分享了姜维老师的文章讲解,这次分享姜维老师的视频讲解,保证大家能够理解透彻,有问题的同学欢迎交流讨论!文章分享链接:详细分析降压电路的演变过程
    发表于 06-22 10:01

    The Verilog PLI Handbook

    The Verilog Programming Language Interface, commonly called the Verilog PLI,is one of the more
    发表于 07-22 09:55 0次下载
    The <b class='flag-5'>Verilog</b> <b class='flag-5'>PLI</b> Handbook

    Verilog手册的公众责任

    The Verilog Programming Language Interface, commonly called the Verilog PLI,is one of the more
    发表于 07-22 09:57 0次下载
    <b class='flag-5'>Verilog</b>手册的公众责任

    产品的演变过程看KVM行业的发展

    制造商,行业进一步扩大。本文将从产品 角度来谈谈KVM的发展概况。 KVM产品历经机械式电子式,模拟数字的发展历程;应用理念多电脑
    发表于 04-14 11:28 801次阅读

    定位技术的演变过程

    定位技术室外定位室内定位的演变过程 今天给大家分享下定位技术的演变室外定位UWB室内定
    发表于 03-13 10:36 1835次阅读

    升压变换器二种结构的演变过程资料下载

    电子发烧友网为你提供升压变换器二种结构的演变过程资料下载的电子资料下载,更有其他相关的电路图、源代码、课件教程、中文资料、英文资料、参考设计、用户指南、解决方案等资料,希望可以帮助广大的电子工程师们。
    发表于 03-29 16:47 17次下载
    升压变换器二种结构的<b class='flag-5'>演变过程</b>资料下载

    使用Verilog/SystemVerilog硬件描述语言练习数字硬件设计

    HDLBits 是一组小型电路设计习题集,使用 Verilog/SystemVerilog 硬件描述语言 (HDL) 练习数字硬件设计~
    的头像 发表于 08-31 09:06 1692次阅读

    解码国产EDA数字仿真器系列之二 | 如何实现全面的SystemVerilog语法覆盖?

    SystemVerilog语言,是开发仿真器的一个重要任务。   SystemVerilog的发展历程   数字芯片的验证技术是随着Verilog语法的演变
    发表于 04-07 14:40 747次阅读
    解码国产EDA数字仿真器系列之二 | 如何实现全面的<b class='flag-5'>SystemVerilog</b>语法覆盖?

    谈谈Verilog/System Verilog和C的几种交互模式

    PLI全称 Program Language Interface,程序员可以通过PLIverilog中调用C函数,这种访问是双向的。
    的头像 发表于 06-01 17:32 1582次阅读
    谈谈<b class='flag-5'>Verilog</b>/System <b class='flag-5'>Verilog</b>和C的几种交互模式

    verilog/systemverilog中隐藏的初始化说明

    VerilogSystemVerilog中经常需要在使用变量或者线网之前,期望变量和线网有对应的初始值
    的头像 发表于 08-25 09:47 1088次阅读
    <b class='flag-5'>verilog</b>/<b class='flag-5'>systemverilog</b>中隐藏的初始化说明

    buck电路的演变过程

    buck电路相信很多从事电子类工作的朋友都听过,它说白了就是个直流降压电路,在降压芯片出来之前,它的出场率非常高但是以前仅仅是看过他,不懂它是怎样演变过来的,今天和大家一起分析学习下它的演变过程
    的头像 发表于 09-25 14:40 746次阅读
    buck电路的<b class='flag-5'>演变过程</b>

    浅析can技术的演变过程

    CAN技术的演变 为了了解 CAN FD CAN XL 的转变,让我们简单回顾一下 CAN 技术的演变: 经典 CAN:原始 CAN 协议,最大数据速率为 1 Mbps,有效
    发表于 11-17 11:41 574次阅读
    浅析can技术的<b class='flag-5'>演变过程</b>

    原子钟在数据中心的作用:原子对数据造成不利影响带来各种益处的转变过程

    原子钟在数据中心的作用:原子对数据造成不利影响带来各种益处的转变过程
    的头像 发表于 11-27 16:29 522次阅读