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

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

3天内不再提示

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

FPGA之家 来源:FPGA之家 作者:FPGA之家 2022-09-02 09:29 次阅读

UVM里面有前门访问,后门访问的概念。前门访问无非通过总线来实现寄存器/Mem的访问。而当在一些仿真中为了减少通过总线进行配置下发所需的时间,那么后门访问就非常便捷了,它使得无需通过总线即可修改寄存器/Mem的值。今天,就来看看在SpinalHDL的仿真中我们可以使用的后门读写操作。

在SpinalHDL里,当我们想要访问设计内部的信号时,我们可以通过将电路对象添加simPublic属性,从而达到我们想要的目的。正如下面的例子:

847334d8-2a50-11ed-ba43-dac502259ad0.png

如果我们想要实现后门读写,那么电路对象simPubic属性是必须添加的。初次之外,SpinalHDL里面也自带了一些后门读写的方法,足够满足我们的后门读写访问需求。 》后门读写API

无论是对寄存器还是Memory,后门读写SpinalHDL均可以通过下面的API来进行:

849d7b30-2a50-11ed-ba43-dac502259ad0.png

这里面前两者专门针对Mem类型实现Memory存储器的读写,而后者则针对寄存器等的写操作,读操作可以完全参照上面的simPubic即可。

》Example

我们以下面的代码做为example:

84bf0cf0-2a50-11ed-ba43-dac502259ad0.png

仿真Log打印:

[Progress] Start MemoryTest test simulation with seed 350149846address=0   data=1address=1   data=180address=2   data=49address=3   data=128[Done] Simulation done in 15.481 ms

波形如下:

84f66718-2a50-11ed-ba43-dac502259ad0.png

完全如其所愿。

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

    关注

    30

    文章

    5028

    浏览量

    117719
  • 仿真
    +关注

    关注

    50

    文章

    3872

    浏览量

    132158
  • 读写操作
    +关注

    关注

    0

    文章

    5

    浏览量

    7089

原文标题:三分钟教会你SpinalHDL仿真中的后门读写

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

收藏 人收藏

    评论

    相关推荐

    关于SpinalHDL仿真中信号驱动那点事儿

    到时钟信号从低电平到高电平变化完成之后才推出。那么我们在随后对dataIn的赋值其实是发生在clk上升沿到来后的0+时间才发生的。 从这里代码分析我们可以看出,在SpinalHDL仿真里:复位信号会
    发表于 06-24 16:34

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

    寄存器/Mem的值。今天,就来看看在SpinalHDL仿真中我们可以使用的后门读写操作。》si
    发表于 07-04 15:19

    SpinalHDL是如何让仿真跑起来的

    SpinalHDL的测试代码里也可以起多个,不过其为协程。SpinalHDL仿真库已经帮我们封装好了底层协程的处理,两个协程之间的通信(类似systemVerilog中的mailb
    发表于 07-25 15:09

    如何在SpinalHDL里启动一个仿真

    工具单步调试的便捷性了。所以这种“高层次”仿真,还是值得一用。启动仿真的方式SpinalHDL中的仿真入口一般情况下都是这么来写的:通过引入spinal.core.sim._ ,我们
    发表于 07-26 16:59

    SpinalHDL仿真信号的驱动实现

    对于仿真信号的驱动,在SpinalHDL里通过“#=”方法实现:值得注意的是当我们的设计里有一个输入信号为:val a=in UInt(32 bits)在进行仿真信号驱动时,下面的写法会报错的:a#
    发表于 07-27 14:37

    基于Windows系统的SpinalHDL开发环境搭建步骤

    相应的更新,等待更新完毕即可。使用该插件可以参考插件的介绍,按照步骤操作即可。VScode-SpinalHDL效果如图所示;原作者:Joshua_FPGA
    发表于 10-24 15:40

    FRED在背光板仿真中的应用

    FRED在背光板仿真中的应用
    发表于 12-22 16:02 34次下载
    FRED在背光板<b class='flag-5'>仿真中</b>的应用

    PSpice教程:PSpice仿真中收敛问题的研究

    PSpice教程:PSpice仿真中收敛问题的研究
    发表于 04-07 15:33 0次下载

    三菱PLC模拟仿真中文软件

    三菱PLC模拟仿真中文软件。
    发表于 01-14 16:46 58次下载

    MATLAB在供电系统仿真中的研究与应用_张惠萍

    MATLAB在供电系统仿真中的研究与应用_张惠萍
    发表于 03-19 11:27 2次下载

    SystemView在通信系统仿真中的应用研究

    SystemView在通信系统仿真中的应用研究(依工测试测量仪器)-该文档为SystemView在通信系统仿真中的应用研究讲解文档,是一份不错的参考资料,感兴趣的可以下载看看,,,,,,,,,,,,,,,,,
    发表于 09-30 12:10 8次下载
    SystemView在通信系统<b class='flag-5'>仿真中</b>的应用研究

    SpinalHDL中如何优雅地实现寄存器总线读写

    通过bus slave factory,我们可以方便地实现寄存器读写,其提供了一系列寄存器读写方法。这里列举几个常用的方法(完整的方法列表可参照SpinalHDL-Doc):
    发表于 08-05 09:57 828次阅读

    SpinalHDL运行VCS+Vivado相关仿真

    本篇文章来源于微信群中的网友,分享下在SpinalHDL里如何丝滑的运行VCS跑Vivado相关仿真。自此仿真设计一体化不是问题。
    的头像 发表于 08-10 09:15 2093次阅读

    Verilog代码封装后门访问

    关于仿真里的后门访问,之前的文章《三分钟教会你SpinalHDL仿真中后门读写》中有做过介绍,
    的头像 发表于 07-15 10:22 510次阅读
    Verilog代码封装<b class='flag-5'>后门</b>访问

    MATLAB电路仿真中能讲电流汇总的元件

    在MATLAB电路仿真中可以使用许多元件来汇总电流。以下是一些常见的元件和它们在电路中的作用: 电阻(Resistor):电阻是电路中最基本的元件之一,用于限制电流的流动。在MATLAB电路仿真中
    的头像 发表于 04-21 09:23 184次阅读