APB3.0 Slave Master VIP 框图

本文介绍了总线功能模型(BFM)的设计原理,包括slave如何通过OUTFIFO处理数据及与环境(env)的交互过程。此外,还详细阐述了master模块的架构,并探讨了在不同任务中如何进行时钟对齐及时间消耗的处理方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值