现在来讲soc的神经末梢,它们依附在骨架上,受和调控制,并将外部信息分享给核心以及其他成员。它是什么呢?
它就是我们所说的标准总线。soc上所有模块想要被核心控制,都需要挂载到crossbar上,以便cpu下配置,以及cpu和dma进行数据传输。我们以最简单的apb总线入手,来进一步了解标准总线的工作原理。
1、apb协议简介
apb(advanced peripheral bus) 作为高级外设总线是amba协议之一,也是最基本的总线协议。按照arm官方定义,apb是一种低成本的接口协议,可以实现低功耗以及精简的接口设计,降低接口设计的复杂度。
apb协议不支持流水线设计,它主要应用在低带宽设计需求的接口中,高性能带宽需求可以使用axi总线。apb协议的实现与时钟沿对齐,以简化外设接口的设计。每次传输至少需要消耗两个时钟周期。
在soc设计中,ahb一般作为ip的配置接口,包括低速ip如i2c,uart,i2s等,也包括ddr,pcie,ethernet等高速ip,可以方便的实现cpu对外设ip的寄存器配置。系统中一般会实现一个axi2apb或者ahb2apb的转换桥将apb口挂载在系统上。
apb的传输信号只与时钟上升沿有关,故其具备以下优点:
·易于实现高频操作;
·性能与时钟占空比无关;
·静态时序分析简单;
·易于与基于上升沿的寄存器访问;
·易于集成到基于周期的仿真器中。
1.1、apb的发展史
协议已经从apb2.0发展到现在的apb4.0。具体区别如下:
·apb2.0 :该版本协议定义基本的接口信号(具体可见端口信号章节,删除apb3.0有的接口就行);
·apb3.0:增加信号pready用以指示slave准备好数据,增加信号pslaverr代表传输错误;
·apb4.0:增加信号prot保护类型,增加信号pstrb来支持byte级的访问;
2.0和3.0的区别是什么?
apb2.0和apb3.0的差别:apb3.0提供了一个低功耗的接口,并降低了接口的复杂性。且apb3比apb2增加了两个信号:
pready:来扩展apb传输,主要是增加延时;
错误信号pslverr:来指示传输失败。
3.0和4.0的区别是什么?
·增加了prot和prstb两个信号。
·pprot一种保护信号,用于支持apb上的非安全交易和安全交易。
·pstrb一个写选通信号,用于在写数据总线上进行sparse data transfer(稀疏数据传输)。apb4用的比较少。
apb协议向下兼容。
目前soc上最常用的是apb2.0和apb3.0,下面我们主要介绍这两个版本。
2、apb 2.0
2.1、apb2.0信号列表
这里需要区分master和slave的区别,master是主机,slave是从机,一个总机下可以有n个从机,所有的数据传输都是master来控制的,slave来回应。这里需要用到apb 1to多bridge,apb bif不需要仲裁,只需要对地址的decode,如果地址处于某个slave的域内,就拉高它的pseln等控制信号,n为slave号。
apb2.0信号
2.2 、状态机
通过pselx和penable信号的变化,使apb总线处于下面3个状态:
状态机
·idle:pselx和penable都为0,表明master和slave之间无通信请求,因此处在该状态。
·setup:当master和某一个slave之间准备进行数据传输时,会进入该状态,这时pselx=1,penable=0。意思是master选中某一个slave告诉slave我准备要和你交换数据啦,请你准备好!这个状态会保持一个时钟周期然后进入enable状态。这个状态可以直接给wdata。
·enable:这个时候penable拉高,master和某一slave进行数据传输,持续一个时钟周期。这个状态开始等待rdata。
在自己写master时,就按照这个状态输出控制信号就可以了。
2.3 、写操作
下面就是写传输的时序图:
写时序
·t1~t2:这个阶段master和某一slave无交互数据,因此处于idle状态。
·t2:在该时刻,master准备将数据写入某一slave中,因此进入setup状态,同时把某一slave的psel信号拉高,pwrite信号拉高,这表示master告诉某一slave:我即将要和你进行数据传输,是我把数据写到你里面,请你准备好!同时改变paddr和pwdata信号,这是为了满足下个上升沿的时序。
·t2~t3:保持一个时钟周期。
·t3:此时将penable信号拉高,真正将wdata写到addr。
·t3~t4:保持一个时钟周期。
·t4:数据传输结束,再次回到初始状态。
2.4、读操作
读时序
·t1~t2:这个阶段master和某一slave无交互,因此处于idle状态
·t2:在该时刻,master准备从某一slave中读取数据,因此进入setup状态,同时把某一slave的psel信号拉高,pwrite信号拉低,这表示master告诉某一slave:我即将要和你进行数据传输,是我要读你的数据,请你准备好!同时改变paddr,这是为了满足下个t4采样沿的时序。
·t2~t3:保持一个时钟周期。
·t3:此时将penable信号拉高,表示master正式把某一slave之中的数据读出来,注意,数据在enable周期末尾的时钟上升沿被采样,也就是t4时刻。
·t3~t4:保持一个时钟周期。
·t4:数据传输结束,再次回到初始状态。
3、apb 3.0
apb 3.0协议是在apb 2.0协议的基础上新加了2个信号,pready和pslverr组成的;pready信号是slave设备用来表示slave是否准备好的信号,pslverr是表示slave接收的数据是否有误。
信号表
apb3.0信号
3.1、写操作
写操作,无等待
写无等待时序
该种情况和apb2.0没有任何区别,当penable拉高后,会检查pready是否拉高,如果拉高表示slave当前准备好了数据传输,则在上升沿3将数据写给salve。
写操作,有等待
写有等待时序
如果penable拉高后,发现pready没有拉高,则表示slave还没有准备好数据传输,这时所有信号保持不变直到pready拉高,在上升沿5将数据写入。
3.2、读操作
读操作,无等待
读无等待时序
该种情况和apb2.0没有区别,与写操作无等待类似,不再细说
读操作,有等待
读有等待时序
当penable拉高后,发现pready信号还没有拉高,表示slave还没有准备好,这时会等待直到pready信号拉高,在上升沿6时刻采样数据
3.3、错误反馈
pslverr来指示apb传输上的错误情况。读取和写入事务都可能发生错误。当psel,penable和pready均为高电平时,仅在apb传输的最后一个周期内才认为pslverr有效,其他时间不考虑pslverr。
写操作
slverr写时序
在前面的有等待的写操作的基础上,添加pslverr,也就是在t4时刻采样,发现psel,penable和pready均为高电平的前提下,pslverr为高,说明这次数据传输有错误。软件决定后续行为。
读操作
读slverr时序
在前面的有等待的读操作的基础上,添加pslverr,也就是在t5时刻采样,发现psel,penable和pready均为高电平的前提下,pslverr为高,说明这次数据传输有错误。软件决定后续行为。
4、apb应用场景。
apb因为其面积小,接口少,经常用在外设上,为什么呢?
因为soc上外设很多,包括spi,i2c,uart,timer,wdt等,他们对时钟要求不高,如果使用apb接口,可以省面积,降低芯片的复杂度。这也是为什么外设优先的标准接口是apb。
这里主要讲一些apb在soc上的特殊用法。
·某些ip预留用户控制信号,我们需要用寄存器控制此信号,一般soc每个子系统都会有一个模块专门做这个事情,这是就可以选择apb接口用来配置这些寄存器。
·某些ip,例如srio,serdes预留用户配置接口,synosys叫做cr配置口,用于配置或者debug。这时候我们可以自己写一个apb2cr的桥。
·核间通讯模块。通过写寄存器产生中断输出,这时候可以使用apb接口,因为中断发生次数少,无性能要求,可以使用apb,简单。
·apb转sram接口或者apb转fifo。某些模块对外接口是sram,需要我们使用转接桥,根据性能我们选择使用合适的amba总线;自研模块数据缓存时,涉及到异步处理,这时候可能用到apb转fifo的设计。
但是他也有局限,带宽低且不支持pipeline,所以module有这些要求不要使用apb。
功率开关对电源效率的影响(飞兆案例)
HDMI转VGA 视频转换IC芯片MS9291参数特性介绍
一加5什么时候上市最新消息:一加5旗舰即将发布,真机谍照曝光,配置、价格只为对标小米6!
使用NVIDIA DeepStream对特定帧区域应用推理
风河面向最新IA平台和UEFI BIOS提供扩展的Simics虚拟平台套件
SOC设计中APB协议总线的工作原理
苹果下周在美国开启六家零售商店 金山云成功在美国纳斯达克上市
通过采用USB接收技术实现DVB-T地面数字电视接收系统的设计方案
维易科(VEECO)和ALLOS展示行业领先的200MM硅基氮化镓性能,推动micro-LED的应用
华大九天依托自身EDA开发资源,推出一站式晶圆制造工程服务
ONNX格式模型部署兼容性框架介绍
如何在Colab中使用SQL
灵动微电子M0内核32位单片机MM32F0144C4Q
如何避免代价昂贵的数据恢复?
作为新时代的智慧医院,利用云计算实现数据进行精准分析
2017华为OV米的国产手机崛起,苹果三星你们怕了吗?2018年将会是什么情况呢?期待吗?
英伟达将从软银手中收购ARM_交易价值400亿美元
NB-IoT在2020年接连迎来“里程碑式”发展
智能手持PDA的定义及应用
极有可能用于纳米药物研究的工具:基于微流控技术的器官芯片