APB总线总结和VIP使用
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使用相关推荐
- STM32之AHB与APB总线
AHB是高速总线,是一种系统总线,它主要负责连接处理器.DMA等一些内部接口.AHB 系统由主模块.从模块和基础结构3部分组成,整个AHB总线上的传输都由主模块发出,由从模块负责回应. APB是低速总 ...
- AMBA总线—APB总线协议详解
文章目录 一.APB总线介绍 1.1.什么是APB总线 1.2.典型的基于 AMBA 总线的系统架构 1.3.APB信号列表(重点) 二.APB总线传输(时序) 2.1.APB 状态机 2.2.写操作 ...
- AMBA总线---APB总线协议
APB(Advanced Peripheral Bus)是AMBA总线体系的一部分.相较于AMBA总线体系中的其他总线,APB总线具有低功耗,低复杂度的特征.APB总线主要应用于对性能要求不太高的低带 ...
- AMBA总线协议 之 APB总线协议
AMBA总线协议概念: AMBA(Advanced Microcontroller Bus Architecture) 总线是由ARM公司提出的一种开放性的片上总线标准,它独立于处理器和工艺技术,具有 ...
- AMBA APB总线协议(APB4)
一.APB总线介绍 APB总线是ARM公司早期推出的一款用于设备通信的分时独占总线,目前主要用于慢速外设的寄存器配置总线.APB总线结构简单.接口信号少,可以带来更低的资源和功耗,在目前主流SoC设计 ...
- AMBA总线协议(一)——一文看懂APB总线协议
0.AMBA总线概括 AMBA AHB 总线协议介绍请点击以下链接: AMBA总线协议(二)一文看懂AMBA2 AHB2与AMBA3 AHB-Lite总线协议的区别 AMBA总线协议(三)--一文看懂 ...
- APB总线详解及手撕代码
本文的参考资料为官方文档AMBA™3 APB Protocol specification 文档下载地址: https://pan.baidu.com/s/1Vsj4RdyCLan6jE-quAsEu ...
- 数字IC设计入门篇:APB总线协议学习心得
声明:本文章是本人学习AMBA APB协议的一些个人理解,仅用于学习交流之用.本人学习APB协议时参考的是ARM公司官方的APB协议技术规范文档(编号:IHI0024D).受限于本人的知识水平,本文 ...
- AHB和APB总线的比较
AMBA片上总线 AMBA 2.0规范包括四个部分:AHB.ASB.APB和Test Methodology.AHB的相互连接采用了传统的带有主模块和从模块的共享总线,接口与互连功能分离,这对芯片上模 ...
最新文章
- 这一招将 Numpy 加速 700 倍!!!
- 深度 | 周明:自然语言处理的未来之路 | CCF-GAIR 2019
- ubuntu eclipse CDT 问题
- mysql 存在索引但不能使用索引的典型场景
- 使用Microsoft Azure Backup备份Hyper-V数据
- java 用户控件_C#自定义控件VS用户控件
- netty 校验_Netty SSL双向验证
- 优酷宠爱剧场发布新片单 包括近30部待播精品剧
- 【观点】Ruby优于Python之处(面向hackers)
- mysql连接池满了_《MySql体系结构与存储引擎》面试腾讯前总结
- Java面试题大全带答案
- git 拉取代码库的项目到本地(window系统)
- 一名赣州车主处理“碰瓷”过程,值得认真学习(转帖)
- ubuntu录制屏幕及视频处理
- Unity打包篇:能够解决Unity打包Gradle遇到的所有问题方法整合!(持续更新中!)
- 【DSP】离散系统的因果性判断
- PS|你真的了解PS吗?
- 前端 传表格多条数据 给后台接收 (HTML前端表格多条数据JSON封装后;异步提交到后台处理)
- 华为OD机试 - 开心消消乐
- 第八届中国云计算大会胜利启幕云计算产业进入应用迅速普及期
热门文章
- matlab 感兴趣区域,感兴趣区域(Region of interest)
- 通证经济系统设计的一个优秀范例——般若链
- 国内 IoT 物联网平台终局的思考:未来只会有 3家
- 怎么去除爱剪辑的片头片尾,教你去除片头片尾的方法
- skywalking实现分布式系统链路追踪
- 一个简单的手电筒APP源码分享(支持Android O(8.0)及以下版本)
- Centos 忘记root密码怎么办?
- oracle财务软件苹果电脑,收支记账本for Mac-收支记账本Mac版下载 V2.9-PC6苹果网
- 208亿背后的“秘密”
- 通俗科普:黎曼几何为什么是对的?为什么没有平行线?