APB总线总结和VIP使用

  • 一、简介
  • 二、APB信号
  • 三、APB传输
    • 3.1 传输状态图
    • 3.2 写传输
      • 3.2.1 无等待状态
      • 3.2.2 等待状态
      • 3.2.3 写数据字节选择
    • 3.3 读传输
      • 3.3.1 无等待状态
      • 3.3.2 等待状态
    • 3.4 错误响应
      • 3.4.1 写传输
      • 3.4.2 读传输
  • 四、APB VIP 安装和使用
    • 4.1 APB VIP安装
    • 4.2 VIP的使用

一、简介

APB(Advanced Peripheral Bus),外围总线。APB属于AMBA总线的一部分,它提供了一个低功耗的接口,并降低了接口的复杂性。主要用于低宽带和不需要高性能的外围设备上。APB的特点:

  • APB非流水线结构,所有信号仅与时钟上升沿相关;
  • 每个传输至少耗用两个周期;
  • 总线的架构不像AHB支持多个主模块,在APB里面唯一的主模块是APB桥;

二、APB信号

信号 来源 描述
PCLK 时钟源 时钟
PRESETn 系统总线 复位。APB复位信号低电平有效。该信号可以直接跟系统总线连接
PADDR APB bridge 地址。最大可以是32位,由外围总线桥驱动
PPROT APB bridge 保护类型。分为normal、privileged、secure protecteion
PSELx APB bridge 选择信号
PENABLE APB bridge 使能信号
PWRITE APB bridge 读写信号。1写0读
PWDATA APB bridge 写入的数据。最高可以是32位
PSTRB APB bridge 写选通信号。只是那个字节为有效数据。PSTRB[n]对应PWDATA[(8n+7):(8n)]。读传输期间写选通信信号不能被激活。
PREADY Slave interface 准备好信号。Slave设备可以用该信号来扩展APB传输
PRDATA Slave interface 读取的数据。最高可以是32位
PSLVERR Slave interface 该信号表明传输失败。

三、APB传输

3.1 传输状态图

(1) 系统初始化为IDLE状态,此时没有任何的传输操作;
(2) 当有传输要进行的时候,PSELx=1,PENABLE=0,系统进入SETUP状态,同时在SETUP状态停留一个周期。等待PCLK的下一个上升沿时,进入下一个ENABLE状态;
(3)当系统进入ENABLE状态时,维持在之前SETUP状态的PADDR、PSEL、PWRITE不变,并将PENABLE置为1。同时传输也只会在ENABLE状态维持一个周期,在经过SETUP和ENABLE状态之后完成传输。如果后面没有传输进行,就会进入等待状态;如果有连续的传输,则进入SETUP状态。

3.2 写传输

写传输包含两种传输类型:无等待状态和有等待状态

3.2.1 无等待状态

T1:PADDR、PWDATA、PWRITE和PSELx在时钟上升沿开始改变,该时钟周期称为Setup phase;
T2:PENABLE和PREADY在上升沿使能;
PENABLE表明Access phase传输开始。

3.2.2 等待状态

在Access phase传输期间,当PENABLE为高的时候,传输可以通过将PREADY拉低来扩展传输,在此期间,PADDR、PWRITE、PSEL、PENABLE和PWDATA、PSTRB和PPROT信号保不变。
当PENABLE为低时,PREADY可以是任意值。
注:
建议在传输后不要立即更改地址和写信号,而是保持稳定,知道发生另一次访问。这可以降低功耗。

3.2.3 写数据字节选择

PSTRB[n]对应PWDATA[(8n+7):(8n)],如下图所示:

PSTRB[3:0]每bit对应写数据8bit,高有效;
注意:
在读操作的时候,PSTRB必须全部为0。

3.3 读传输

读传输类型包含两种传输类型:无等待状态和等待状态

3.3.1 无等待状态

3.3.2 等待状态

当PREADY为低的时候,以下信号保持不变:
PADDR、PWRITE、PSEL、PENABLE、PWDATA、PSTRB和PPROT

3.4 错误响应

在APB传输过程中PSLVERR信号表示错误响应。该错误响应可以发生写和读传输。
当PSEL、PENABLE和PREADY全部为高的时候,在APB传输的最后一个周期,PSLVERR信号才会被人误有效。
建议在不需要驱动的情况下,将PSLVERR信号拉低,即在PSEL、PENABLE、PREADY任何一个信号为低的时候,将PSLVERR信号拉低,但是这并不强制。
传输发生错误时,可能改变也可能不改变周围设备的状态。

3.4.1 写传输

3.4.2 读传输

四、APB VIP 安装和使用

4.1 APB VIP安装

Synopsys家APB VIP 安装流程如下:
% cd
% mkdir design_dir
% $DESIGNWATE_HOME/bin/dw_vip_setup -path ./design_dir -e amba_svt/tb_apb_st_uvm_basic_sys -svtb
安装完成之后,文件列表如下:

4.2 VIP的使用

vip安装完成之后,直接可以按照以下流程使用:
例如,run ts.directed_test.sv
gmake USE_SIMULATOR=vcsvlog directed_test WAVES=1
vip中的自带的makefile有点复杂,根据自己的习惯,重新写一个makefile:

运行random_wr_rd_test testcase之后,verdi打开该波形文件如下:

参考文档:AMBA APB Protocal 和 AMBA APB UVM User Guide

APB总线总结和VIP使用相关推荐

  1. STM32之AHB与APB总线

    AHB是高速总线,是一种系统总线,它主要负责连接处理器.DMA等一些内部接口.AHB 系统由主模块.从模块和基础结构3部分组成,整个AHB总线上的传输都由主模块发出,由从模块负责回应. APB是低速总 ...

  2. AMBA总线—APB总线协议详解

    文章目录 一.APB总线介绍 1.1.什么是APB总线 1.2.典型的基于 AMBA 总线的系统架构 1.3.APB信号列表(重点) 二.APB总线传输(时序) 2.1.APB 状态机 2.2.写操作 ...

  3. AMBA总线---APB总线协议

    APB(Advanced Peripheral Bus)是AMBA总线体系的一部分.相较于AMBA总线体系中的其他总线,APB总线具有低功耗,低复杂度的特征.APB总线主要应用于对性能要求不太高的低带 ...

  4. AMBA总线协议 之 APB总线协议

    AMBA总线协议概念: AMBA(Advanced Microcontroller Bus Architecture) 总线是由ARM公司提出的一种开放性的片上总线标准,它独立于处理器和工艺技术,具有 ...

  5. AMBA APB总线协议(APB4)

    一.APB总线介绍 APB总线是ARM公司早期推出的一款用于设备通信的分时独占总线,目前主要用于慢速外设的寄存器配置总线.APB总线结构简单.接口信号少,可以带来更低的资源和功耗,在目前主流SoC设计 ...

  6. AMBA总线协议(一)——一文看懂APB总线协议

    0.AMBA总线概括 AMBA AHB 总线协议介绍请点击以下链接: AMBA总线协议(二)一文看懂AMBA2 AHB2与AMBA3 AHB-Lite总线协议的区别 AMBA总线协议(三)--一文看懂 ...

  7. APB总线详解及手撕代码

    本文的参考资料为官方文档AMBA™3 APB Protocol specification 文档下载地址: https://pan.baidu.com/s/1Vsj4RdyCLan6jE-quAsEu ...

  8. 数字IC设计入门篇:APB总线协议学习心得

    声明:本文章是本人学习AMBA  APB协议的一些个人理解,仅用于学习交流之用.本人学习APB协议时参考的是ARM公司官方的APB协议技术规范文档(编号:IHI0024D).受限于本人的知识水平,本文 ...

  9. AHB和APB总线的比较

    AMBA片上总线 AMBA 2.0规范包括四个部分:AHB.ASB.APB和Test Methodology.AHB的相互连接采用了传统的带有主模块和从模块的共享总线,接口与互连功能分离,这对芯片上模 ...

最新文章

  1. 这一招将 Numpy 加速 700 倍!!!
  2. 深度 | 周明:自然语言处理的未来之路 | CCF-GAIR 2019
  3. ubuntu eclipse CDT 问题
  4. mysql 存在索引但不能使用索引的典型场景
  5. 使用Microsoft Azure Backup备份Hyper-V数据
  6. java 用户控件_C#自定义控件VS用户控件
  7. netty 校验_Netty SSL双向验证
  8. 优酷宠爱剧场发布新片单 包括近30部待播精品剧
  9. 【观点】Ruby优于Python之处(面向hackers)
  10. mysql连接池满了_《MySql体系结构与存储引擎》面试腾讯前总结
  11. Java面试题大全带答案
  12. git 拉取代码库的项目到本地(window系统)
  13. 一名赣州车主处理“碰瓷”过程,值得认真学习(转帖)
  14. ubuntu录制屏幕及视频处理
  15. Unity打包篇:能够解决Unity打包Gradle遇到的所有问题方法整合!(持续更新中!)
  16. 【DSP】离散系统的因果性判断
  17. PS|你真的了解PS吗?
  18. 前端 传表格多条数据 给后台接收 (HTML前端表格多条数据JSON封装后;异步提交到后台处理)
  19. 华为OD机试 - 开心消消乐
  20. 第八届中国云计算大会胜利启幕云计算产业进入应用迅速普及期

热门文章

  1. matlab 感兴趣区域,感兴趣区域(Region of interest)
  2. 通证经济系统设计的一个优秀范例——般若链
  3. 国内 IoT 物联网平台终局的思考:未来只会有 3家
  4. 怎么去除爱剪辑的片头片尾,教你去除片头片尾的方法
  5. skywalking实现分布式系统链路追踪
  6. 一个简单的手电筒APP源码分享(支持Android O(8.0)及以下版本)
  7. Centos 忘记root密码怎么办?
  8. oracle财务软件苹果电脑,收支记账本for Mac-收支记账本Mac版下载 V2.9-PC6苹果网
  9. 208亿背后的“秘密”
  10. 通俗科普:黎曼几何为什么是对的?为什么没有平行线?