点击关注我的GitHub

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是不需要的

 

posted @ 2021-05-31 09:42  justkeen  阅读(334)  评论(0编辑  收藏  举报