1 Verilog代码封装后门访问-德赢Vwin官网 网
0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

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

3天内不再提示

Verilog代码封装后门访问

Spinal FPGA 来源:Spinal FPGA 2023-07-15 10:22 次阅读

编 者 按

关于仿真里的后门访问,之前的文章《三分钟教会你SpinalHDL仿真中的后门读写》中有做过介绍,其针对的都是针对以SpinalHDL中的代码进行的后门访问。今天来看看当封装了Verilog BlackBox时,在SpinalHDL仿真中如何进行后门访问Verilog代码。

BlackBox代码封装

考虑下面的BlackBox代码封装:

738384f4-22b4-11ee-962d-dac502259ad0.png

这里我们封装了一个BlackBox A,在Demo中进行例化。如果我们在仿真时如果想要后门访问模块A中的sum,那么直接访问肯定是不行的,这里就需要对BlackBox A稍进行修改:

74d65f84-22b4-11ee-962d-dac502259ad0.png

这里需要在A中例化一个sum变量并标注为simPublic,同时在RTL代码中就sum需添加/* verilator public */(注意是添加在分号前)。这样我们可以在仿真中访问A中的sum:

7502fbc0-22b4-11ee-962d-dac502259ad0.png

仿真中可以正常访问A中的sum:

[Progress] Verilator compilation done in 4112.984 ms

[Progress] Start Demo test simulation with seed 129114326

data_out=4AInst.sum=5

多层blackbox

考虑下面的BlackBox:

75255a08-22b4-11ee-962d-dac502259ad0.png

在BlackBox A中其封装的模块A中有例化了模块B,如果我们想要访问模块B中的sum,那么除了要在sum行添加/* verilator public */外还需要对BlackBox A添加待访问sum的层次结构:

75569514-22b4-11ee-962d-dac502259ad0.png

在仿真时可以访问B_Inst中的sum变量:

758e3de8-22b4-11ee-962d-dac502259ad0.png

[Progress] Start Demo test simulation with seed 574035638

data_out=4AInst.B_Inst.sum=5

[Done] Simulation done in 5.223 ms

写在最后

这里的仿真均采用的是Verilator,关于VCS小伙伴们可以自行探索。

审核编辑:汤梓红

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

    关注

    126

    文章

    7872

    浏览量

    142890
  • 仿真
    +关注

    关注

    50

    文章

    4070

    浏览量

    133550
  • Verilog
    +关注

    关注

    28

    文章

    1351

    浏览量

    110073
  • HDL
    HDL
    +关注

    关注

    8

    文章

    327

    浏览量

    47374
  • 代码
    +关注

    关注

    30

    文章

    4779

    浏览量

    68516

原文标题:Verilog代码封装后门访问

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

收藏 人收藏

    评论

    相关推荐

    如何以verilog代码访问存储在BRAM中的像素值?

    嗨朋友们,我正在尝试使用块内存生成器访问存储在ROM中的.coe文件。我想为此编写一个verilog代码。如何以verilog代码
    发表于 02-26 09:48

    看看在SpinalHDL的仿真中我们可以使用的后门读写操作

    UVM里面有前门访问后门访问的概念。前门访问无非通过总线来实现寄存器/Mem的访问。而当在一些仿真中为了减少通过总线进行配置下发所需的时间
    发表于 07-04 15:19

    CAN总线控制器Verilog代码

    CAN总线控制器Verilog代码
    发表于 05-20 10:32 168次下载

    Verilog代码书写规范

    Verilog代码书写规范 本规范的目的是提高书写代码的可读性、可修改性、可重用性,优化代码综合和仿真的结果,指导设计工程师使用
    发表于 04-15 09:47 106次下载

    verilog_代码资料

    verilog_代码资料,非常实用的代码示例。
    发表于 02-18 15:00 37次下载

    verilog代码规范

    verilog代码规范,学会写代码还不行,我们需要更加的规范。
    发表于 03-25 14:43 24次下载

    8051 verilog代码

    8051 verilog代码分享,有需要的下来看看。
    发表于 05-24 09:45 0次下载

    Verilog 入门的实例代码

    Verilog 入门的实例代码,有需要的下来看看
    发表于 05-24 10:03 20次下载

    verilog_代码

    verilog_代码分享,有需要的朋友下来看看。
    发表于 05-24 10:03 12次下载

    精品verilog实例程序代码

    精品verilog实例程序代码,下来看看。
    发表于 05-24 10:03 46次下载

    SpinalHDL的仿真中可以使用的后门读写操作

    UVM里面有前门访问后门访问的概念。前门访问无非通过总线来实现寄存器/Mem的访问。而当在一些仿真中为了减少通过总线进行配置下发所需的时间
    的头像 发表于 09-02 09:29 1064次阅读

    什么样的Verilog代码风格是好的风格?

    代码是给别人和多年后的自己看的。 关于Verilog代码设计的一些风格和方法之前也写过一些Verilog有什么奇技淫巧?
    的头像 发表于 10-24 15:23 1522次阅读

    如何使用参数化编写可重用的verilog代码

    我们将介绍如何使用verilog参数和generate语句来编写可重用的verilog 代码。 与大多数编程语言一样,我们应该尝试使尽可能多的代码可重用。这使我们能够减少未来项目
    的头像 发表于 05-11 15:59 1116次阅读

    Verilog边沿检测的基本原理和代码实现

    本文将从Verilog和边沿检测的基本概念入手,介绍Verilog边沿检测的原理和应用代码示例。
    的头像 发表于 05-12 17:05 3938次阅读
    <b class='flag-5'>Verilog</b>边沿检测的基本原理和<b class='flag-5'>代码</b>实现

    如何自动生成verilog代码

    介绍几种自动生成verilog代码的方法。
    的头像 发表于 11-05 11:45 284次阅读
    如何自动生成<b class='flag-5'>verilog</b><b class='flag-5'>代码</b>