APB3.0 Slave Master VIP 框图

来源:互联网 发布:花都金蝶软件代理 编辑:程序博客网 时间:2024/05/16 18:34

slave从OUT FIFO中拿到data后(阻塞语句),放到总线上,然后等待preadyDelay规定的cycle后将pready有效。pready有效后,可以随机撤销或者保持1的状态。

slave从mem中拿到data后,放到总线上,然后等待preadyDelay规定的cycle后将pready有效。pready有效后,可以随机撤销或者保持1的状态。

env中提供了访问InBox mailbox, 和 OutBox mailbox的函数,以及访问mem的函数,当然包括一些用于配置的函数。

 

下面介绍一下master的blockdiagram

 

 补充说明:

在各个task的定义时,第一个动作便是ClockAlign

  task clockAlign();    wait(sync_posedge.triggered);  endtask

时间的消耗也可以采用如下方式,mailbox.peek(tr).

总结:

在写bus function model时,salve model通常会有一块internal memory。 通常需要InBox和OutBox这样的mailbox来实习BFM和外界ENV的通信。ENV中一般用read write函数实现mailbox的通信。当然视情况,某些情况下你也可以用depth为1的vmm_channel(或者mailbox)去实现block interface (即put后的语句一定要等到get完成后才能执行)。

loop, config, interface, In/Out Mailbox都是master和slave的共性。

ENV中的函数也可收集到相应的sequencer(MSSG),以及slave respeonser 这些BFM中。这些BFM的任务就是向Inbox,outBox 中put或者get transaction。