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

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

3天内不再提示

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

冬至子 来源:处芯积律 作者:处芯积律 2023-06-01 17:32 次阅读

最近有群友问我system Verilog 和C怎么交互,在网上搜了一圈发现资料比较少,今天这里就和大家讲讲system Verilog 和C的交互。话不多说直接上干活。

第一种 Verilog 通过PLI调用C函数。

PLI全称 Program Language Interface,程序员可以通过PLI在verilog中调用C函数,这种访问是双向的。这些用户定义的系统任务和函数的名称必须以美元符号"" 开头。大家用得比较多的PLI函数有display,$finish等。

用户可以自定义PLI函数,下面是一个简单的PLI应用例子。

以下是一段C代码

image.png

下面是一段调用C的verilog的代码

image.png

第二种 System Verilog 通过DPI和C进行交互

为了更加简洁的连接C,system verilog 引入了DPI(Direct Programming Interface)。只要使用import声明和使用,导入一个C子程序,就可以像调用System Verilog中的子程序一样来调用它。相反,如果C想用system verilog里面的函数用export 声明即可。下面是一个简单的例子。

在System Verilog 里面调用C函数

C代码和上面一样

image.png

System Verilog的代码如下

image.png

在C中调用System Verilog 函数

System Verilog 的代码如下

image.png

C代码如下

image.png

第三中 System Verilog 和C的交互方式是通过TLM1.0或者TLM2.0 进行交互。

image.png

这种交互方式主要应用在System Verilog 和systemc 上。对于systemc一般人用得比较少,所以这类交互也比较少用。下面是一个简单的例子

Systemc 的编码,其中cnn_inst的接口in是tlm1/tlm2类型port。

image.png

System verilog 的编码,cpu_inst.out 为tlm1/tlm2类型的port。

image.png

第四种交互方式,通过CPU执行C代码,从而实现verilog 和C的交互。

C代码通过工具链编译成CPU可以执行的汇编指令,再将汇编指令转成对应的指令代码,然后通过CPU读取指令代码产生激励,实现C代码所描述的功能。

以上是Verilog/System Verilog 和C的几种交互模式,小伙伴们学会了吗?

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

    关注

    41

    文章

    3362

    浏览量

    131560
  • Verilog
    +关注

    关注

    28

    文章

    1327

    浏览量

    109311
  • TLM
    TLM
    +关注

    关注

    1

    文章

    32

    浏览量

    24677
  • DPI
    DPI
    +关注

    关注

    0

    文章

    33

    浏览量

    11457
收藏 人收藏

    评论

    相关推荐

    Modelsim XE是否支持System Verilog

    information:-1.Does itsupport System verilog forverification?2. Code coverage support.3.Assertion support.Whichversionof Modelsim XE su
    发表于 11-27 14:20

    System Verilog常见问题及语言参考手册规范

    本文讨论了一些System Verilog问题以及相关的SystemVerilog 语言参考手册规范。正确理解这些规格将有助于System Verilog用户避免意外的模拟结果。
    发表于 12-11 07:19

    System Verilog问题和语言参考手册规范

    本文讨论了一些System Verilog问题以及相关的SystemVerilog 语言参考手册规范。正确理解这些规格将有助于System Verilog用户避免意外的模拟结果。
    发表于 12-24 07:07

    求大佬分享一些System Verilog的学习经验

    求大佬分享一些System Verilog的学习经验
    发表于 06-21 06:29

    Verilog Digital System Design

    This book is on the IEEE Standard Hardware Description Languagebased on the Verilog® Hardware
    发表于 07-23 08:59 0次下载
    <b class='flag-5'>Verilog</b> Digital <b class='flag-5'>System</b> Design

    VHDL,Verilog,System verilog比较

    本文简单讨论并总结了VHDL、VerilogSystem verilog 这三中语言的各自特点和区别 As the number of enhancements
    发表于 01-17 11:32 0次下载

    夏宇闻老师优秀的verilog教程课件

    本资料是关于夏宇闻老师优秀的verilog教程课件,其中包括verilog讲稿PPT、verilog课件、verilog例题等。
    发表于 09-27 15:00 470次下载
    夏宇闻老师优秀的<b class='flag-5'>verilog</b>教程课件

    基于System Verilog中的随机化激励

    基于System Verilog中的随机化激励
    发表于 10-31 09:25 9次下载
    基于<b class='flag-5'>System</b> <b class='flag-5'>Verilog</b>中的随机化激励

    verilog是什么_verilog的用途和特征是什么

    本文首先介绍了verilog的概念和发展历史,其次介绍了verilog的特征与Verilog的逻辑门级描述,最后介绍了Verilog晶体管级描述与v
    发表于 05-14 14:22 4.4w次阅读
    <b class='flag-5'>verilog</b>是什么_<b class='flag-5'>verilog</b>的用途和特征是什么

    浅谈Verilog-95、Verilog-2001与System Verilog之间的区别

    发展历史 1984年,Verilog开始作为一种专用的硬件建模语言使用,取得了相当大的成功。1990年,Cadence Design Systems公司将该语言面向公众开放,作为试图与VHDL相抗衡
    的头像 发表于 06-21 14:46 9734次阅读

    Verilog HDL入门教程-Verilog HDL的基本语法

    Verilog HDL入门教程-Verilog HDL的基本语法
    发表于 01-07 09:23 161次下载

    学会这些System Verilog方法,芯片验证入门没问题

    一个掌握Verilog语言的工程师初次看SystemVerilog都会有这样的感受,这就是Verilog啊,很容易啊,So easy啊。没错,确实是这样,System Verilog
    的头像 发表于 12-09 15:08 2477次阅读

    浅谈System Verilog的DPI机制

    System Verilog(SV)把其他编程语言统一成为外语,Foreign Programming Language(FPL)。
    的头像 发表于 05-23 15:39 1157次阅读
    浅谈<b class='flag-5'>System</b> <b class='flag-5'>Verilog</b>的DPI机制

    谈谈system Verilog 和C的交互

    PLI全称 Program Language Interface,程序员可以通过PLI在verilog中调用C函数,这种访问是双向的。这些用户定义的系统任务和函数的名称必须以美元符号"$" 开头。大家用得比较多的PLI函数有$display,$finish等。
    发表于 05-31 09:59 390次阅读
    <b class='flag-5'>谈谈</b><b class='flag-5'>system</b> <b class='flag-5'>Verilog</b> 和C的<b class='flag-5'>交互</b>

    System Verilog的概念以及与Verilog的对比

    Verilog模块之间的连接是通过模块端口进行的。 为了给组成设计的各个模块定义端口,我们必须对期望的硬件设计有一个详细的认识。 不幸的是,在设计的早期,我们很难把握设计的细节。 而且,一旦模块
    的头像 发表于 06-12 10:05 792次阅读