AHB接口转APB

AHB接口转APB

情景


有一个以AHB接口时序设计的IP,现在需将其移至APB总线上,即将使用APB接口时序驱动该IP。

847278-20170510221631832-812893794.png

基本思路


将APB的接口信号映射到AHB的接口信号

要点


APB挂接在AHB上,现在又将APB的接口转换为AHB接口,需留心关键信号的变化沿

分析


AHB与APB接口时序

AHB时序

847278-20170510220612691-405493.png
847278-20170510220623051-1631714820.png

APB时序

847278-20170510220636004-1345434973.png
847278-20170510220645597-689320406.png

AHB接口


  • AHB的Control信号在同一沿动作,而数据在下一个沿被采集
  • hready表征salve(slv_hready)是否准备好,若为高电平(有效电平)AHB上的信号需延迟(保持),待hready为低时,Control信号才能进行后续操作
  • hready信号在Control信号的下一拍动作(第二拍)

APB接口


  • APB的控制信号(psel、penable、pwrite)在不同的沿动作(两个时钟沿)
  • pready表征salve(pready)是否准备好,若为高电平(有效电平)APB上的信号需延迟(保持),待pready为低时,Control信号才能进行后续操作
  • pready信号在Control信号的第二拍动作

处理方法


  • 结合以上分析,AHB转换APB的关键是读写信号与ready信号的处理

    将APB的控制信号变换到第一拍同时动作
    pready保持在第二拍动作

assign hsel     = psel&(!penable)
assign wr_valid = pwrite && psel;
assign pready   = slv_hready;
assign pslverr  = 1'b0;

转载于:https://www.cnblogs.com/OneFri/p/6838403.html

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
AHBAPB 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总线。 总之,AHBAPB 3.0的Verilog代码需要实现桥接器,并且实现一些组合逻辑和状态机代码。需要考虑时序问题,确保总线的传输时序一致性,并编写testbench来模拟功能。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值