SystemVerilog 激励发生器
simulator(激励发生器)
主要来的职责是模拟与DUT相邻设计的接口协议,只需要关注如何模拟接口信号,时期能够以真实的接口协议来发送激励给DUT。
simolator不应该违反协议,但是不约束于真实的硬件行为,还可以给出更多丰富的只要协议允许的激励的场景。
simulator也可以存储接口数据产生的历史
分类:
1.initiator 发起器,主动发起
2.responder响应器,被动响应
每个数据的从端都有对应的FIFO缓存数据,所以要考虑如何使FIFO的状态可遍历,
要使得FIFO出发full,empty,中间态(传统的),就应该控制channel initior的传输速率。
Register initiator寄存器接口上cmd的默认状态应该是idle,但是cmd_addr,cmd_data_in并未指出默认值应该为何值,所以可以考虑给出随机数测试DUT的接口协议稳定性。
在寄存器的读写传输上可以连续的读写进行测试。
对于读写寄存器的所有bit测试都应该覆盖
测试只读存储器是不是真的不能被写入(是否设计合理)
formatter responder 接口协议是比较复杂的,要侧重formatter接口协议是否充分遍历。
fmt_grant拉高表示formatter的从端有足够的存储空间。可以容纳下formatter要传输的长度为fmt_length的数据包。为了模拟真实,可以让fmt_grant立即拉高或者延迟拉高。
习题:
下面的组件那些是沿着鞥环境中的simulator实例?
A.channle initiator
B.register Initiator
C.arbiter initiator
D.formatter responder
答案A,B,D
arbiter是不需要的