✎ 编 者 按
UVM里面有前门访问,后门访问的概念。前门访问无非通过总线来实现寄存器/Mem的访问。而当在一些仿真中为了减少通过总线进行配置下发所需的时间,那么后门访问就非常便捷了,它使得无需通过总线即可修改寄存器/Mem的值。今天,就来看看在SpinalHDL的仿真中我们可以使用的后门读写操作。
》simPublic
在SpinalHDL里,当我们想要访问设计内部的信号时,我们可以通过将电路对象添加simPublic属性,从而达到我们想要的目的。正如下面的例子:
![图片]
如果我们想要实现后门读写,那么电路对象simPubic属性是必须添加的。初次之外,SpinalHDL里面也自带了一些后门读写的方法,足够满足我们的后门读写访问需求。
》后门读写API
无论是对寄存器还是Memory,后门读写SpinalHDL均可以通过下面的API来进行:
这里面前两者专门针对Mem类型实现Memory存储器的读写,而后者则针对寄存器等的写操作,读操作可以完全参照上面的simPubic即可。
》Example
我们以下面的代码做为example:
仿真Log打印:
[Progress] Start MemoryTest test simulation with seed 350149846
address=0 data=1
address=1 data=180
address=2 data=49
address=3 data=128
[Done] Simulation done in 15.481 ms
波形如下:
完全如其所愿。
☆ END ☆
作者:玉骐
原文链接:Spinal FPGA
微信公众号:
推荐阅读
更多SpinalHDL技术干货请关注[Spinal FPGA]欢迎添加极术小姐姐微信(id:aijishu20)加入技术交流群,请备注研究方向。