APB3.0 Slave Master VIP 框图

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为

  • 0
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
AHB转APB 3.0的Verilog代码需要实现一个桥接器来转换信号的格式和时序。一般来说,AHB总线包含四条信号线:地址线、数据线、读写信号线和传输完成信号线。而APB总线则只有两条信号线:地址和数据。因此,我们需要在桥接器中实现一定量的逻辑,将AHB接口的信号映射到APB接口的信号。 首先,我们需要从AHB中读取地址信息,并将其映射到APB的地址线上。由于APB总线中的地址线比AHB总线中的地址线少,可能需要对地址进行一定程度的重新映射。然后,我们需要根据读写信号线的状态选择是在AHB上还是APB使用数据线。如果读写信号线为高,则说明需要将APB的数据线作为输出,而数据需要从AHB的数据线中获取。反之,则需要将数据写入AHB的数据线中。最后,我们需要等到传输完成后,才能将传输完成信号线上的数据发送到APB总线上。 为了实现这个过程,我们需要编写一些组合逻辑和状态机代码,并使用verilog来描述这些过程。在verilog代码中定义一个模块,并定义信号的输入和输出。然后在处理AHB总线和APB总线之间的移位寄存器时,需要考虑时序问题。我们需要始终保持传输时序的一致性。还需要编写testbench来模拟桥接器的功能,确保它能正确地将AHB总线转换为APB 3.0总线。 总之,AHB转APB 3.0的Verilog代码需要实现桥接器,并且实现一些组合逻辑和状态机代码。需要考虑时序问题,确保总线的传输时序一致性,并编写testbench来模拟功能。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值