在前几天的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信号的更多相关文章

  1. AHB协议整理 AMBA

    本文对AHB协议作了简单整理,整理自两篇文章: AHB总线协议 AHB重点难点总结 1. 简介 AHB总线规范是AMBA总线规范的一部分,AMBA总线规范是ARM公司提出的总线规范,被大多数SoC设计 ...

  2. 接口与协议学习笔记-AMBA片上通信协议_APB_AHB_AXI_AXI4不同版本(二)

    随着深亚微米工艺技术日益成熟,集成电路芯片的规模越来越大.数字IC从基于时序驱动的设计方法,发展到基于IP复用的设计方法,并在SOC设计中得到了广泛应用.在基于IP复用的SoC设计中,片上总线设计是最 ...

  3. AMBA标准

    AMBA标准定义了三种不同的总线 高级高性能总线(AHB): 高级系统总线(ASB):-----用的比较少 高级外设总线(APB). 基于AMBA的典型微控制器: 典型的AMBA AHB系统设计包含以 ...

  4. AHB总线协议

    https://blog.csdn.net/linton1/article/details/79649249 1. 简介 AHB(Advanced High Performance Bus)总线规范是 ...

  5. AMBA总线协议AHB、APB、AXI对比分析【转】

    转自:https://blog.csdn.net/ivy_reny/article/details/56274412 一.AMBA概述    AMBA (Advanced Microcontrolle ...

  6. openrisc 之 Wishbone总线学习笔记——接口信号定义

    这部分内容就是copy下来的,网上到处都有.先看看接口啥样子,在详细说明 接口定义copy http://blog.csdn.net/ce123/article/details/6929897.百度文 ...

  7. AXI总线

    AXI(Advanced eXtensible Interface)是一种总协议,该协议是ARM公司提出的AMBA(Advanced Microcontroller Bus Architecture) ...

  8. AXI总线(转)

    AXI(Advanced eXtensible Interface)是一种总协议,该协议是ARM公司提出的AMBA(Advanced Microcontroller Bus Architecture) ...

  9. AHB中split机制简介

    完整的AHB协议:1)可以多个master,并且需要外加一个Arbiter,和write multiplexor.为了保证每一时刻只有一个master拥有访问权. 2)为了增强pipeline的能力, ...

随机推荐

  1. ThreadLocalSingleton.h——base

    #ifndef MUDUO_BASE_THREADLOCALSINGLETON_H #define MUDUO_BASE_THREADLOCALSINGLETON_H #include <boo ...

  2. unsqueeze 和 squeeze

    squeeze压缩的意思 就是在第几维为1 去掉 unsqueeze 解缩 在第几维增加 变成*1 squeeze用法 c = b.view(1, 1, 1, 2, 3) c.squeeze(0) # ...

  3. tomcat9 web manager的配置使用

    本地链接tomcat web manager服务时,只需修改tomcat/conf/tomcat-user.xml文件,如图所示: 远程链接tomcat web manager服务时,需要在tomca ...

  4. numba,让python速度提升百倍

    python由于它动态解释性语言的特性,跑起代码来相比java.c++要慢很多,尤其在做科学计算的时候,十亿百亿级别的运算,让python的这种劣势更加凸显. 办法永远比困难多,numba就是解决py ...

  5. Okhttp3源码解析(1)-OkHttpClient分析

    ### 前言 上篇文章我们讲了[Okhttp的基本用法](https://www.jianshu.com/p/8e404d9c160f),今天根据上节讲到请求流程来分析源码,那么第一步就是实例化OkH ...

  6. HBase 系列(五)——HBase 常用 Shell 命令

    一.基本命令 打开 Hbase Shell: # hbase shell 1.1 获取帮助 # 获取帮助 help # 获取命令的详细信息 help 'status' 1.2 查看服务器状态 stat ...

  7. 使用ansible对思科交换机备份

    先决条件 - 了解ansible基本操作 - 了解网络设备相关操作 - 了解linux相关操作 安装 安装EPEL yum install https://dl.fedoraproject.org/p ...

  8. maven构建springmvc过程中遇到的一些问题

    1.spring的配置文件,xsd不要配版本号 2.spring配置datasource的三种方式 3.springmvc与spring扫描注解的冲突 4.NoClassDefFoundError: ...

  9. (一)LinkedList集合解析及手写集合

    一.LinkedList集合特点 问题 结      论 LinkedList是否允许空 允许 LinkedList是否允许重复数据 允许 LinkedList是否有序 有序 LinkedList是否 ...

  10. 左偏树 P3377【模板】左偏树(可并堆)

    题目传送门 代码: /* code by: zstu wxk time: 2019/03/01 */ #include<bits/stdc++.h> using namespace std ...