一、概述
- Stimulator激励发生器时验证环境的重要部件,在某一些场合中也被称为drive驱动器、BFM总线功能模型、Behavioral行为模型、Generator发生器。
- Stimulator主要负责模拟与DUT相邻设计的接口协议。
- Stimulator不应该违反协议,但不拘束于真实的硬件行为,还可以给出更多丰富激励场景。
- 比真实硬件行为更丰富的激励,会使得模块级的验证更加充分。
- Stimulator的接口主要是同DUT之间的连接。
- 较精细的Stimulator还可以有其它的配置接口用来控制接口的数据生成。
- Stimulator也可以有存储接口数据生成历史的功能。
- 从Stimulator同DUT的连接关系来看,我们可以将其进一步分为两种:initator(发生器)和responder(响应器),就我们要验证的MCDF来看,与下行通道从端channel slave的连接或寄存器接口的连接,这两部分的Stimulator都属于initiator,它们的功能是主动发起接口数据传输。与MCDF formatter接口的连接则属于responder,负责对接口的数据发送请求做出响应,而它本身不会主动发送数据。
二、激励器组件结构框图
三、Stimulator实现的考虑要素
channel initiator
- 由于channel从端接口协议上有握手信号,我们需要遵照接口时序,确保chx_ready为低时,保证chx_data和chx_valid保持不变。
- 相邻数据之间没有数据包的限制,所以相邻数据之间的关系较弱,但也应该考虑数据之间是否有空闲周期,以及整体数据的传输速率设定。
- 由于每个数据从端都用对应的FIFO缓存数据,所以也需要考虑如何使得FIFO的状态可遍历。
register initiator
- register接口上cmd的默认状态应该是idle。
- 在register读写传输上,可以考虑连接的写、读、或者读写交叉的方式测试寄存器模块的读写功能。
- 对于读写register的所有比特位测试都应该覆盖。
- 对于只读状态register需要测试是否为不可写入的设定,同时需要测试读出的数据是否为真实的硬件状态。
formatter responder
- formatter接口协议要充分遍历。
- 按照协议给出fmt_grant的响应,也需要检查协议的时序。
- fmt_grant的置高,代表formatter的从端有足够的存储空间。