UVM里面有前门访问,后门访问的概念。前门访问无非通过总线来实现寄存器/Mem的访问。而当在一些仿真中为了减少通过总线进行配置下发所需的时间,那么后门访问就非常便捷了,它使得无需通过总线即可修改寄存器/Mem的值。今天,就来看看在SpinalHDL的仿真中我们可以使用的后门读写操作。
在SpinalHDL里,当我们想要访问设计内部的信号时,我们可以通过将电路对象添加simPublic属性,从而达到我们想要的目的。正如下面的例子:
如果我们想要实现后门读写,那么电路对象simPubic属性是必须添加的。初次之外,SpinalHDL里面也自带了一些后门读写的方法,足够满足我们的后门读写访问需求。 》后门读写API
无论是对寄存器还是Memory,后门读写SpinalHDL均可以通过下面的API来进行:
这里面前两者专门针对Mem类型实现Memory存储器的读写,而后者则针对寄存器等的写操作,读操作可以完全参照上面的simPubic即可。
》Example
我们以下面的代码做为example:
仿真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
波形如下:
完全如其所愿。
全部0条评论
快来发表一下你的评论吧 !