




已阅读5页,还剩60页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
AMBA总线概述 AMBA简介 随着EDA技术和深亚微米工艺制造技术的发展 集成电路技术逐渐步入SoC时代 SoC设计方法要求IP核具有很好的移植性和复用性 On chipBus为不同的IP核提供了统一的接口标准 设计者通过设计On chipBus将不同功能的IP核有效便捷的集成在一个芯片上成为一个片上系统 AMBA简介 AMBA总线是由ARM公司提出的一种开放性的片上总线标准 它独立于处理器和工艺技术 具有高速度低功耗等特点 受到集成电路设计行业的广泛欢迎 AMBA简介 AMBA总线体系 AdvancedMicrocontrollerBusArchitecture 定义了三种总线AHB AdvancedHigh performanceBus ASB AdvancedSystemBus APB AdvancedPeripheralBus AMBA发展 AMBA1 0 ASB APBAMBA2 0 AHB APBAMBA3 0AMBA4 01 0版为了节省面积 Bus协议都为TristateBus 需要花费更多精力注意timing 2 0版本后随技术革新 为方便设计者 Bus改用Multiplexor架构 AMBA总线体系 一个以AMBA架构的SoC 一般包含高性能的系统总线AHB和低功耗的外设总线APB 系统总线 AHB 负责连接如嵌入式处理器 DMA控制器 片上存储器和其他外设接口 或者其他需求高带宽的元件 而外设总线 APB 则用来连接系统周边的外部设备 其协议相对AHB较为简单 AHB与APB之间通过桥接器 Bridge 互联 一个典型的AMBA系统 系统中的Master和Slave可按需求替换 AMBAAHB AHB AdvancedHigh performanceBus 高级高性能总线高速 高性能总线Pipeline操作支持多个Master 最多16个 支持Burst传输支持Split传输Non tristateBus单时钟边沿操作 AMBAAHB AHBSystem由Master Slave和Infrastructure构成AHBBus上由Master发起传输 Slave负责响应 Infrastructure由Arbiter M2SMultiplexor S2MMultiplexor Decoder DummySlave DummyMaster组成 AMBAAHB AHBSystem支持MultipleMaster 因此需要Arbiter仲裁 Decoder负责地址译码从MultipleSlave中选择要响应传输的Slave 为了不使用三态总线 TristateBus AHB中使用两个Multiplexor负责Bus上的Routing AMBAAHB Bus上传输的信号可分为 ClockArbitrationAddressControlsignalM2SMultiplexorWritedataReaddataResponsesignal S2MMultiplexor AMBAAHB信号 AMBAAHBBUSInterconnection 省略部分信号 1 Controlsignal HBURST HTRANS 2 Master与Arbiter之间的Request Grant信号3 Decoder与Slave之间的Selection信号4 Controlmux的output与Arbiter之间的信号 HTRANS HBURST 5 Responsesignal HREADY HRESP 6 Arbiter输出的HMASTER 发起一个请求给仲裁器 驱动地址和控制信号 允许某个主设备控制总线 仅选中的从设备响应地址 控制信号 拉高HREADY信号 总线传输完成 AHBTransfer BasictransferAddressphase传输address和controlsignalDataphase传输write readdata和responsesignal传输在dataphase时若一个clockcycle无法完成传输 Slave可通过拉低HREADY信号延长传输 传输结束时状态由SlaveHRESP信号反映 Masterreleaseaddressandcontrol Slavesampletheaddressandcontrol Mastersamplethedata Notready Notready Ready 一次transfer需要2phases完成 为了增加Bus传输效率 AHBSystem引入pipeline AHB将multipletransfer的addressphase和dataphase重叠在一起 当前transfer的dataphase与下一次transfer的addressphase重叠当前transfer的dataphase被延长将使下一次transfer的addressphase也跟着延长 AHBTransfer AAddress AData BAddress BData CAddress CData AHBControlSignal AHB上的ControlSignal共五类 HTRANS 1 0 TransferTypeHBURST 2 0 BurstTypeHPROT 3 0 ProtectionControlHSIZE 2 0 TransferSizeHWRITE TransferDirection HTRANS 1 0 TransferType 由Master发出 IDLE 空闲传输 只是Slave忽略目前transfer 用于Master没有数据需要传输时 此时Slave在传输的dataphase以零等待状态OKAY响应主设备占用总线 但没进行传输两次burst传输中间主设备发IDLEBUSY 在bursttransfer时Master传输连续的数据给Slave 若Master因为某些原因无法将数据即使准备好 此时使用BUSYtransfertype通知Slave 和响应IDLE一样 Slave在传输的dataphase以零等待状态OKAY响应主设备占用总线 但是在burst传输过程中还没有准备好进行下一次传输一次burst传输中间主设备发BUSY NONSEQ 非连续传输 当前transfer的address和control信号与前一次传输无关表明一次单个数据的传输或者一次burst传输的第一个数据地址和控制信号与上一次传输无关SEQ 连续传输 当前transfer的address信号与前一次传输相关 control信号与前一次传输想同 通常用在bursttransfer中 表明burst传输接下来的数据地址和上一次传输的地址是相关的 HTRANS 1 0 HTRANS 1 0 Thefirsttransfer Masterisbusy Thesubsequenttransfer Slaveisnotready Bursttype 由Master发出 Bursttype用来让AHBMaster发出address彼此相关的连续transfer control信号相同 8种BursttypeIncrementingburst 每一次transfer的address是前一次transfer的address加上transfersizeWrappingburst 将存储器分割成transfersize transferbeat大小的一个个存储区域 当transferaddress跨越存储边界时 下一次transferaddress将回到块区的起点 HBURST 2 0 HBURST 2 0 对于固定长度的burst传输 不必持续请求总线 对于未定义长度的burst传输 master应该持续送出request信号 直到开始最后一次传输 如果没有master请求总线 则给defaultmasterGrant信号接入总线 且HTRANS IDLE 建议master在锁定总线传输结束之后插入IDLE传输 以重新仲裁优先级 几点说明 TransferDirection TransferSize由Master发出 HWRITE为HIGH Master在dataphase将数据通过writedatabus HWDATA 31 0 发往SlaveHWRITE为LOW Slave在dataphase将数据通过readdatabus HRDATA 31 0 发往Master HWRITE HSIZE 2 0 ProtectionControl由Master发出 HPROT 3 0 可以让master提供额外的保护信息AHBSpec 未规定所有的master都要指示精确的保护信息 所以slave在设计时若非必须 尽量不要使用HPROT信号若master没有protectiontransfer的考虑 HPROT 3 0 可以output 4 b0001 HPROT 3 0 AHBDecoder AHB系统中有一个核心地址译码器 它提供HSELx信号到各个AHBSlave Decoder本身只负责位地址译码 为纯组合逻辑电路 Slave只有在HSELx和HREADY都为High才采样地址 控制信号 AHB地址线有32条 为简化译码器译码时间 AHBSpec 规定每个Slave的最小地址空间为1KB 因此译码器最多只需要对22条地址线进行译码 AddressDecoding AHBDecoder Slave可通过HREADY信号extendtransfer 插入waitcycle transfer结束时 HREADY在dataphase为High Slave还可以使用HRESP 1 0 去响应主机传输结束时候的状态HRESP 1 0 可以在transfer结束时表示四种statusOKAYERRORRETRYSPLIT AHBSlaveResponse OKAY transfer成功完成ERROR 传输失败或出错 可能的原因例如企图写入read only的memorylocation 读写根本不存在的memorylocation RETRY和SPLIT Slave响应当前传输需要多个buscycle来完成 为避免因为当前transfer将bus一直占用或者锁死 Slave响应RETRY SPLIT给master表示当前transfer未完成 master需要重新发出请求 重试 而此时arbiter可以将bus释放给其他有需要的master使用 AHBHRESP 1 0 AHBHRESP 1 0 AHBHRESP 1 0 RETRY与SPLIT区别 RETRYresponse arbiter内master优先级不变 当有更高优先级的masterrequest时 arbiter授予高优先级的masterbusaccess 若原来得到RETRYresponse的master是当前申请接入总线优先级最高的master 则bus依然被占用而无法释放给其他master SPLITresponse 当master收到SPLITresponse时 arbiter将当前master的优先级mask起来 此时该master无法再获得busaccess权力 即使没有其他master向arbiter发出总线接入请求也一样 若所有master都收到SPLITresponse 则arbiter将总线接入权限交给dummymaster 只会发出IDLEtransfer的主机 当响应SPLIT的Slave处理完transfer的要求后将发送HSPLIT信号给arbiter 此时arbiter将相应的master优先级unmask 恢复优先级的master将重新申请接入总线完成传输 AHBHRESP 1 0 RETRY与SPLIT特点 SPLITresponse较RETRYresponse能使较低优先级的master在合理的情况下接入总线完成transfer Slave通过arbiter发出的HMASTER记录master的number以通知arbiter恢复哪个master的优先级 注意 AHB并没有强制规定Slave必须支持RETRY或SPLIT响应 Slave可以只用HREADY去delay对transfer的响应 Spec 建议delay不要超过16cycle HRESP 1 0 四种响应中只有OKAY为onecycle 其余三个响应都是two cycleresponse 在这两个cycle中HRESP维持回应的status不变而HREADY在第一个cycle为Low 第二个为High AHBHRESP 1 0 之所以需要两个周期是因为AHB传输为流水线操作 当前传输的数据周期和下一传输的地址周期是重叠的 而ERROR RETRY SPLIT三种相应都可能因为当前传输未成功而影响到下一传输 因此需要master取消下一传输 AHBHRESP 1 0 在Slave决定会用何种响应给master之前 需要几个waitcycle去判断 在waitcycle期间除了将HREADYdriveLOW外还需要将HRESPdriveOKAY AHBHRESP 1 0 AHB为支持Multi Master的Bussystem 但同一时间只允许一个master接入总线 因此需要Arbiter进行Arbitration 当master想要接入总线时 master将HBUSREQdrivehigh 同一时间可能有多个master请求接入总线 因此需要Arbiter进行Arbitration Arbiter在HCLK上升沿采样HBUSREQ 并将最高优先级master的HGRANTsignaldriveHIGH 表示该master可以接入总线 若已经有master接入总线 此时arbiter将当前master的HGRANTsignaldriveLOW AHB没有规定的优先级算法 由设计者根据需求自定 AHBArbitration 当master正在进行fixed lengthbursttransfer时 若有高优先级master请求接入总线 arbiter可以等待当前burst完成后再将总线授予新的master 也可以立即中断当前master的总线接入权限并授予更高优先级的master去接入总线 而当前master需要重新发出request等待下次授予总线来完成transfer 若想要master进行连续传输而不被中断 则在master申请总线接入时将HLOCKdriveHIGH 告知arbitertransfer不可被中断 则当该master获得总线接入权限时 arbiter将不会释放总线给其他master直到master自行将HLOCKdriveLOW Arbiter将重新进行Arbitration判断 AHBArbitration 由于pipelineoperation 当前传输的dataphase和下一个传输的addressphase重叠 所以当前一个主机传输的dataphase被Slave延迟时 当前master的addressphase也被延迟 只有当master的HGRANT被断言且HREADY为High 才能在下一周期接入总线 HREADY为Low阶段 HGRANT为High但还未接入总线 arbiter可以根据优先级随时更改总线授予权限 Arbiter决定在burst后转换bus所有权时 会在倒数第二个transfer的addressphase被采样后改变HGRANT信号 新的HGRANT信号将跟最后一个transfer的address同时被采样 AHBArbitration 没有等待状态的总线授予 AHBArbitration 有等待状态的总线授予 AHBArbitration 地址总线因前一个master的transfer被延迟 AHBArbitration burst传输后总线移交 AHBArbitration AHBArbitration DefaultMaster DummyMaster 当系统中没有master向arbiter发出请求是 arbiter将总线接入权限交给defaultmaster Defaultmaster通常为接入总线频率最高的master 这样可以减少defaultmaster向arbiter申请接入总线的总线移交周期 Dummymaster没有HBUSREQ信号接入arbiter 它只在两种情况被授予总线 当所有master收到slave发出的SP
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025福建福州市事业单位招聘772人考前自测高频考点模拟试题及答案详解(全优)
- 2025年洮南市面向社会公开招聘化工园区特勤站政府专职消防员聘用人员模拟试卷附答案详解(黄金题型)
- 2025甘肃武威市古浪县八步沙林场招聘财会、水利专业人员3人考前自测高频考点模拟试题及答案详解参考
- 2025湖南衡阳理工职业学院人才招聘4人考前自测高频考点模拟试题及参考答案详解一套
- 医生进修心得体会(集合15篇)
- 2025河北科技工程职业技术大学选聘52人模拟试卷附答案详解(典型题)
- 2025甘肃平凉市第二批市直单位公益性岗位人员招聘37人模拟试卷及一套参考答案详解
- 2025年杭州拱墅区朝晖街道社区卫生服务中心招聘编外聘用人员1人模拟试卷完整参考答案详解
- 2025年宣城广德市国有资产投资经营有限公司下属公司招聘11人模拟试卷及答案详解(各地真题)
- 2025年临沂市机电工程学校公开招聘教师(20名)模拟试卷及答案详解(网校专用)
- 2025年10月“江南十校”2026届新高三第一次综合素质检测 化学试卷(含答案详解)
- 桩基冲击钻机施工方案
- 2025年七年级上学期语文第一个月月考试卷含答案
- 屠宰兽医检验考试题及答案
- 基金考试题库大全及答案
- 航海船舶运输管理总结
- 2025年注册安全工程师实务《其他安全》试题+答案
- 安徽省六校联考2025-2026学年高三上学期开学检测语文试题(解析版)
- 风叶作业安全培训课件
- 医疗计量知识培训内容课件
- 幼儿园乘火车知识讲解
评论
0/150
提交评论