在前几天的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. 从0到1发布一个npm包

    从0到1发布一个npm包 author: @TiffanysBear 最近在项目业务中有遇到一些问题,一些通用的方法或者封装的模块在PC.WAP甚至是APP中都需要使用,但是对于业务的PC.WAP.A ...

  2. HelloDjango 第 09 篇:让博客支持 Markdown 语法和代码高亮

    作者:HelloGitHub-追梦人物 文中涉及的示例代码,已同步更新到 HelloGitHub-Team 仓库 为了让博客文章具有良好的排版,显示更加丰富的格式,我们使用 Markdown 语法来书 ...

  3. 如何用Python实现敏感词的过滤

    题目要求如下: 从文件解析敏感词,从终端获取用户输入.根据敏感词对用户输入进行过滤.这里过滤需要考虑不止一个过滤词:即将读取的所有过滤词,放进一个列表,用屏蔽词检索用户输入,如果有屏蔽词,则将其替换为 ...

  4. 用代码说话:synchronized关键字和多线程访问同步方法的7种情况

    synchronized关键字在多线程并发编程中一直是元老级角色的存在,是学习并发编程中必须面对的坎,也是走向Java高级开发的必经之路. 一.synchronized性质 synchronized是 ...

  5. 盘一盘 NIO (三)—— Selector解析

    Selector是个啥? Selector是Java NIO核心组件中的选择器,用于检查一个或多个Channel(通道)的状态是否处于可读.可写.实现一个单独的线程可以管理多个channel,从而管理 ...

  6. python 05 字典

    [TOC] 字典——dict { } 字典是无序,可变的数据类型. 字典:用于存储数据,存储大量数据,字典要比列表快:将数据和数据之间进行关联. 1. 定义:  dic = {键:值,键:值}  #每 ...

  7. HDU 6134

    题意略. 思路: 我们先不考虑[(i , j) == 1],在此情况下,其实这个值是sum( [ (i , j) == 1,2,3,....,n ] ) 这些情况.我们要求的仅仅是其中的第一部分而已. ...

  8. vue+vscode+nodejs 开发环境搭建

    nodejs安装配置 1.下载 地址:https://nodejs.org/en/ 2.默认安装 安装完成后,执行npm -v 出现版本号则表示安装成功. 3.配置 在node安装目录下新建两个文件夹 ...

  9. NLP(十四) 情感分析

    情感在自然语言中的表达方式 例句 解释 I am very happy 开心的情感 She is so :( 表达悲伤的图标 import nltk import nltk.sentiment.sen ...

  10. Mysql高手系列 - 第5天:DML操作汇总,确定你都会?

    这是Mysql系列第5篇. 环境:mysql5.7.25,cmd命令中进行演示. DML(Data Manipulation Language)数据操作语言,以INSERT.UPDATE.DELETE ...