AMBA——slave的HREADY信号
在前几天的ARM面试中,被问到总线架构,主要是AMBA那一套东西。对于AMBA之前上课学过一点,但很肤浅。为了面试上网查了一下、也看了部分协议补充了一下,但是接触的少,理解的不深入,被问到之前没遇到的东西,就被难住了。问了我slave有哪两种HREADY信号,每个都有什么用,HREADY复位之后是高还是低。
slave的HREADY信号共有两种输入HREADY和输出HREADY。
输出HREADY
输出HREADY比较好理解,它表示slave当前是否准备好接受或者发送数据,如果为高(AHB协议中建议高表示准备好)表示slave准备好了,为低表示没准备好。
输入HREADY
当slave没有准备好进行数据传输,如下面这个写数据操作:

在data phase,master采样到slave的HREADY为低,当前的data phase需要延迟到下一个周期。
但如果有两个slave要进行数据传输,slave1传输完之后slave2占用总线。slave1在写最后一个数据的时候没有准备好,输出的HREADY为低,那么master会在下一个周期(slave1的第二个data cycle)继续把刚才没写过去的数据放在总线上,供slave1采样。但是在下一个周期(slave1的第二个data cycle)本来是要与slave2进行传输的,并且假设此时slave2的HREADY是为高的,slave2会认为此时是在与自己传输数据。
但是master会在再下一个周期将传给slave2的数据放在总线上供slave2采样,但slave2发现这次读写的地址和上一次是一样的,会发生协议错误问题。
所以slave2需要知道slave1最后一次传输的HREADY为高才会采样数据。一般采用的方法是将所有的slave的输出HREADY做and(与)操作,与后的输出作为所有slave的输入HREADY。
这样的话,slave2在它的data cycle就知道上一个cycle,也就是slave1的data cycle是否成功传输了数据。
这样的话,也就知道了在上电复位之后,slave的输出HREADY为高,防止发生死锁。
参考:
https://blog.csdn.net/fanyongwinner/article/details/51890908
AMBA——slave的HREADY信号的更多相关文章
- AHB协议整理 AMBA
本文对AHB协议作了简单整理,整理自两篇文章: AHB总线协议 AHB重点难点总结 1. 简介 AHB总线规范是AMBA总线规范的一部分,AMBA总线规范是ARM公司提出的总线规范,被大多数SoC设计 ...
- 接口与协议学习笔记-AMBA片上通信协议_APB_AHB_AXI_AXI4不同版本(二)
随着深亚微米工艺技术日益成熟,集成电路芯片的规模越来越大.数字IC从基于时序驱动的设计方法,发展到基于IP复用的设计方法,并在SOC设计中得到了广泛应用.在基于IP复用的SoC设计中,片上总线设计是最 ...
- AMBA标准
AMBA标准定义了三种不同的总线 高级高性能总线(AHB): 高级系统总线(ASB):-----用的比较少 高级外设总线(APB). 基于AMBA的典型微控制器: 典型的AMBA AHB系统设计包含以 ...
- AHB总线协议
https://blog.csdn.net/linton1/article/details/79649249 1. 简介 AHB(Advanced High Performance Bus)总线规范是 ...
- AMBA总线协议AHB、APB、AXI对比分析【转】
转自:https://blog.csdn.net/ivy_reny/article/details/56274412 一.AMBA概述 AMBA (Advanced Microcontrolle ...
- openrisc 之 Wishbone总线学习笔记——接口信号定义
这部分内容就是copy下来的,网上到处都有.先看看接口啥样子,在详细说明 接口定义copy http://blog.csdn.net/ce123/article/details/6929897.百度文 ...
- AXI总线
AXI(Advanced eXtensible Interface)是一种总协议,该协议是ARM公司提出的AMBA(Advanced Microcontroller Bus Architecture) ...
- AXI总线(转)
AXI(Advanced eXtensible Interface)是一种总协议,该协议是ARM公司提出的AMBA(Advanced Microcontroller Bus Architecture) ...
- AHB中split机制简介
完整的AHB协议:1)可以多个master,并且需要外加一个Arbiter,和write multiplexor.为了保证每一时刻只有一个master拥有访问权. 2)为了增强pipeline的能力, ...
随机推荐
- 小白学Python(3)——输入和输出,显示你的名字
任何计算机程序都是为了执行一个特定的任务,有了输入,用户才能告诉计算机程序所需的信息,有了输出,程序运行后才能告诉用户任务的结果. 输入是Input,输出是Output,因此,我们把输入输出统称为In ...
- Swoole引擎原理的快速入门干货
更多内容,欢迎关注微信公众号:全菜工程师小辉~ 过去一年使用PHP和Java两种技术栈完成了一个游戏服务器项目.由于项目中有高频的网络请求,所以PHP技术栈尝试使用Swoole引擎(基于事件的高性能异 ...
- Spring学习之旅(二)--容器
在 Spring 应用中,所有的对象都在 Spring 容器(container) 里,容器负责对象的创建.配置.装配并管理它们的整个生命周期. Spring 容器 Spring 容器 并不是只有一个 ...
- in和exists过程对比
两者执行流程完全不一样. in的过程 select * from tableA a where a.id in (select b.a_id from tableB b); 1)首先子查询,查询B表中 ...
- Redis数据类型的基本操作
Redis数据类型的基本操作 一.string类型 1.设置value
- vue.js纯前端处理如何将后台返回来的csv数据导出成csv文件
需要实现一个下载csv文件的功能,但后台没有对这个下载文件进行处理,而是将csv数据传给前台而已,需要前台做一下处理. 这是按钮的代码: <a> <el-button size=&q ...
- xcode简介及安装
1. 简介 Xcode 是运行在操作系统Mac OS X上的集成开发工具(IDE),由苹果公司开发. Xcode是开发OS X 和 iOS 应用程序的最快捷的方式. Xcode 具有统一的用户界面设计 ...
- HDU4348To the moon主席树,区间修改
题意: 一个长度为n的数组,4种操作 : (1)C l r d:区间[l,r]中的数都加1,同时当前的时间戳加1 . (2)Q l r:查询当前时间戳区间[l,r]中所有数的和 . (3)H l r ...
- HDU 4479 Shortest path 带限制最短路
题意:给定一个图,求从1到N的递增边权的最短路. 解法:类似于bellman-ford思想,将所有的边先按照权值排一个序,然后依次将边加入进去更新,每条边只更新一次,为了保证得到的路径是边权递增的,每 ...
- CodeForces 979 D Kuro and GCD and XOR and SUM
Kuro and GCD and XOR and SUM 题意:给你一个空数组. 然后有2个操作, 1是往这个数组里面插入某个值, 2.给你一个x, k, s.要求在数组中找到一个v,使得k|gcd( ...