APB4总线介绍

  1. 简介

    1.1 APB总线介绍
    APB总线是AMBA协议家族的一部分,此协议定义了一套低成本接口,此接口功耗消耗最少,而且接口复杂度小。
    APB总线操作不是流水的,所以只能连接一些对性能要求不高的低带宽周边设备,如果对性能要求高的话,则需要使用AXI总线。
    APB总线能够连接的协议包括 AHB、AHB-Lite、AXI、AXI4-Lite。
    通过APB总线可以配置周边设备的可配置寄存器。

    1.2 APB版本
    APB协议经过了一下几个版本;
    AMBA 2 APB: 此版本定义了接口信号,基本的读写操作,APB桥和APB slave;
    AMBA 3 APB:相比APB2新增了 Wait states 和 Error reporting 功能,对应的增加了PREADY和PSLVERR信号;
    AMBA 4 APB:相比APB3 新增了 Transaction protection 和 Sparse data transfer功能,对应的新增了 PPROT 和 PSTRB 信号。

  2. 接口描述

    2.1 APB接口信号
    APB4总线介绍_第1张图片
    2.2 数据总线
    APB协议由两套独立的数据总线,一个读,一个写。总线位宽最大为32 bits。 但是由于读写总线没有自己独立的握手信号,所以不可能同时出现 读 和 写 操作。要么读,要么写。

  3. 传输
    3.1 写传输
    3.1.1 无等待写传输
    APB4总线介绍_第2张图片
    3.1.2 有等待写传输
    APB4总线介绍_第3张图片
    有等待写传输,在PREADY为低的时候,PADDR、PWRITE、PSEL、PENABLE、PWDATA、PSTRB、PPROT信号需要保持不变。

    注意:
    在写完之后,写地址、写数据最好保持稳定,不要马上改变,等到下一次传输来的时候再改变,这样做可以减少功耗。

    3.2 写指针
    APB4总线介绍_第4张图片
    PSTRB[n]对应PWDATA[(8n+7) : (8n)]
    PSTRB[3:0]每bit 对应 写数据8bit;高有效;
    注意:
    在读操作的时候,PSTRB必须全部为0.

    3.3 读传输

    特别注意,一般APB总线读数据从slave读出时,习惯打一拍,保持数据稳定,因此为了满足时序,读操作开始要提前一拍,在SETUP阶段即开始读操作;写操作无此操作。

    3.3.1 无等待读传输
    APB4总线介绍_第5张图片
    3.3.2 有等待读传输
    APB4总线介绍_第6张图片
    有等待读传输,在PREADY为低的时候,PADDR、PWRITE、PSEL、PENABLE、PPROT信号需要保持不变。相比写,少了PWDATA、PSTRB。

    3.4 错误上报

    PSLVERR信号用来表示APB传输的过程中发生了错误。这个错误可能发生在读,也可能在写。

    PSLVERR只有在APB传输的最后一拍才会生效,此时PSEL、PENABLE、PREADY信号都为高。
    建议在不需要时,将PSLVERR信号拉低,也就是说在PSEL、PENABLE、PREADY任何一个信号为低的时候,将PSLVERR信号拉低,不强制。

    传输发生错误时,可能改变也可能不改变周边设备的状态。
    写操作发生错误时,不一定意味着没有数据没有写入周边设计寄存器;
    读操作发生错误时,可能读到无效数据;不要求周边设备在读操作发生错误时,将读到数据全部变为0。

    3.4.1 写传输错误
    APB4总线介绍_第7张图片
    3.4.2 读传输错误
    APB4总线介绍_第8张图片
    3.4.3 Mapping of PSLVERR

    From AXI to APB:
    APB的PSLVERR 返回到RRESP/BRESP=SLVERR。
    读的时候,PSLVERR mapping到 AXI的RRESP[1];
    写的时候,PSLVERR mapping到 AXI的BRESP[1]。

    From AHB to APB:
    无论读写APB的PSLVERR 返回到 HRESP = ERROR。
    通过将PSLVERR mapping到AHB 的HRESP[0]实现。

    3.5 Protection unit support

    为了实现复杂设计,经常需要对系统中的互联接口和互联设备进行保护保护,以防止非法传输。对于APB接口来说,保护功能通过PPROT[2:0]来实现。

    PPROT[2:0]各bit含义如下:
    PPROT[0]:0:正常访问;1:优先级访问;
    PPROT[1]:0:安全访问;1:非安全访问;【最主要功能】
    PPROT[2]:0:数据访问;1:指令访问;
    当同时又数据和指令一起传输时,一般当做数据传输,除非特别指定为指令传输。
    PPROT最主要的是为了标识安全传输和非安全传输;PPROT[0]和PPROT[2]的含义可以用户重新定义。

  4. Operating States

    APB4总线介绍_第9张图片

    IDLE:APB默认状态;
    SETUP: 当需要传输时,bus将PSELx置高,进入SETUP状态;bus只会在SETUP状态停留1拍,然后进入ACCESS状态;
    ACCESS:PENABLE置高,进入ACCESS状态。在从SETUP状态跳转到ACCESS状态时,address、write、select和write data信号必须保持稳定;

     PREADY拉高后,bus从ACCESS跳出;
            如果没有后续传输时,跳回IDLE态;
            如果有后续传输时,跳回SETUP态;
    

你可能感兴趣的:(verilog)