类当中如何引用模块中的寄存器?
时间:10-02
整理:3721RD
点击:
本人验证新手,现在在编写一个模块的验证平台,用SV搭建的,软件用的是Questasim。在读写模块寄存器时需要一种数据核对机制,即模块寄存器中数据必须和写入或是读出的数据相同。我的想法是在scoreboard类里面直接引用模块中的寄存器,然后与driver和monitor传过来的数据比较。但软件报出Hierarchical reference("$root.u_ictl......") not allowed from within a packege的错误,不知道怎么回事,请问各位大虾指教!
可以在class中定义寄存器读写函数和checker,在测试用例中配置读写的变量和地址。我理解的就是往寄存器写个数再读出来比较。不知道理解错了吗?
其实我的想法是一个读或写操作之后,将读出的数据或是写入的数据与DUT里的所在地址的数据直接进行对比,所以想在scoreboard里面引用DUT里的寄存器,但好像在类里面不能这么引用。今天用了你的办法,写个数再读出来,也达到目的了。万分感谢!
对验证外行 看看 帮顶!
直接在class里面定义一个读函数,然后返回送到sb里面不行么?