AHB协议中slave的HREADYOUT和HREADYIN的区别
hreadyout:用于指示slave准备好接收master发过来的一笔传输;
hreadyin:用于指示slave的上一笔传输是否结束
文章目录
AHB协议中slave的HREADYOUT和HREADYIN的区别
1、 没有hready_in会发生什么
2、有hready_in会发生什么
AHB协议中slave的HREADYOUT和HREADYIN的区别
HREADYOUT:用于指示slave准备好接收master发过来的一笔传输
HREADYIN:用于指示slave的上一笔传输是否结束

1、没有hready_in会发生什么
由于AHB是支持pipeline传输的,所以当前的cycle会是上一个slave的data phase,也是下一个slave的addr phase。上面这张时序图表明master有两笔写传输,第一笔传输为slave1(s1),传输类型为SEQ,在第一笔传输的第二个周期,也就是第一笔传输的data phase,此时slave1没有准备好被写数据,因此把s1_hreadyout拉低,但此时slave2已经看到自己的NONSEQ传输了,而且slave2已经是准备好了的。如上图所示:
那这时master那边只能看到一个hready,那到底是看s1的还是s2的呢?

如果看s1的话,那么master会在下一个周期维持NONSEQ,那么s2会认为,我已经在上一个周期接收了一个NONSEQ,现在又来了一个NONSEQ并且addr还没有递增。在s2会发生protocol fail。如下图1所示:

如果看s2的话,那么s1的写数据就会失败,因为当前s1还没有准备好。如下图2所示:

2、有hready_in会发生什么
那么这个时候就要引入我们的hready_in了。这个hready_in有两种写法:

1.通过一个mux,把在data phase的slave的hreadyout作为输入连接到所有的slave
2.把所有的slave的hreadyout相与,然后再连接到所有的slave

slave必须看到自己的hreadyin&hreadyout,才认为一次addr phase/data phase的成功。而且slave必须等到hreadyin为高电平时才进行addr以及控制信号的采样:

if(hreadyin)
beginaddr_reg <= haddr;htrans_reg <= htrans;hwrite_reg <= hwrite;
end


重新拿上面的仿真图看一下,由于前一个周期的s1_hreadyout为低电平,所以s2的hready_in也为低电平,那么该周期s2不会对addr以及控制信号进行采样。在下一个周期s1以及准备好了,s1_hreadyout拉为高电平,s2的hready_in也为高电平,表示上一笔传输以及结束了,可以开始下一笔传输,也就是s2的传输,此时s2就可以对addr以及控制信号进行采样了。就不会出现上面的问题。
————————————————
版权声明:本文为CSDN博主「IC小羊的成长之路」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/weixin_42208307/article/details/112913587

AHB协议中hreadyout和hready_in的区别相关推荐

  1. 浅析TCP协议中URG和PSH的区别与联系

    浅析TCP协议中URG和PSH的区别与联系.URG:(紧急标志位)表示本报文段中发送的数据是否包含紧急数据.URG=1时,表示有紧急数据.后面的16位紧急指针字段只有在URG=1时才有效. URG:( ...

  2. C#的HTTP协议中POST与GET的区别

    引言 HTTP协议我想任何IT人士都耳熟能详了,大家都能说出个所以然来.但是如果我问你HTTP协议的请求方法有哪些?POST与GET的差异?GET或POST传送数据量的大小有限制吗?HTTP响应的状态 ...

  3. HTTP协议中 GET 和 POST的区别(全)

    目录 前言 1. 源码探讨 2. 区别 前言 在了解这两个的区别的同时 还需要额外补充一些http协议中其他方法以此了解更加深入 方法 描述 GET 请求指定的页面信息,并返回实体主体 HEAD 类似 ...

  4. 【转】HTTP协议中PUT和POST使用区别

    有的观点认为,应该用POST来创建一个资源,用PUT来更新一个资源:有的观点认为,应该用PUT来创建一个资源,用POST来更新一个资源:还有的观点认为可以用PUT和POST中任何一个来做创建或者更新一 ...

  5. 【计算机网络】HTTP协议中post和get的区别

    GET - 从指定的资源请求数据. POST - 向指定的资源提交要被处理的数据. 由于HTTP的规定和浏览器/服务器的限制,导致它们在应用过程中体现出一些不同. 操作 GET POST 后退按钮/刷 ...

  6. 【计算机网络】HTTP协议中Get与Post的区别

    Get和Post的区别 1.get是从服务器上获取数据,post是向服务器上传数据. 2.get是把参数数据列加到提交表单的action属性所指的url中,值和表单内各个字段一一对应,在URL中可以看 ...

  7. http协议中get和post的区别(转)

    1.HTTP请求格式: <request line> <headers> <blank line> [<request-body>] 在HTTP请求中, ...

  8. http协议中get和post的区别:

    参考:http://hui.sohu.com/infonews/article/6337670107929509889 参考:https://www.cnblogs.com/yueyueyao/p/9 ...

  9. http协议中get和post的区别

    1. get是从服务器上获取数据,post是向服务器传送数据. get 和 post只是一种传递数据的方式,get也可以把数据传到服务器,他们的本质都是发送请求和接收结果.只是组织格式和数据量上面有差 ...

最新文章

  1. js ftpclient linux server,Node.JS用Socket实现FTP Server服务器和Client客户端
  2. 分享一个轻型ORM--Dapper选用理由
  3. make 调试和传参
  4. Mybatis choose (when, otherwise)标签
  5. .NET Core 3.0 中的数据库驱动框架 System.Data
  6. 华为宣布:免费培养8000名开发者! 学习免费!实验免费!考证免费!
  7. 先出报表还是先计提所得税_合并报表投资时点的评估增值和内部交易到底该如何理解????...
  8. 使用Python处理声音文件(一):让歌曲重复两次
  9. Android 7 soter,微信(com.tencent.mm) - 8.0.0 - 应用 - 酷安
  10. struts2漏洞修复
  11. leetcode -- Search Insert Position
  12. MapGIS K9三维TDE平台实现动态光标效果
  13. 用html制作四种九九乘法表,JavaScript制作九九乘法表
  14. Java内存大小换算
  15. 浅谈:APP开发市场的发展轨迹与未来趋势
  16. 百度地图html多点标注,百度地图api 同时在地图上标注多个点 有问题 紧急求救...
  17. 计算机英语感想1500,英语教学的心得体会1500字
  18. couldn‘t find “libijkffmpeg.so“
  19. socket编程——upd(数据报套接字)
  20. python输出间隔_Python:print输出间隔,换行

热门文章

  1. [教学]路面裂缝检测_瑕疵检测等图像分割
  2. windows xp 驱动开发(五) USB驱动程序、应用软件概述
  3. BLDC方波控制双闭环Simulink仿真模型
  4. 开火车游戏c语言,中班语言游戏活动开火车教案
  5. vue多行文本框加组件_Vue的多功能文本编辑器组件
  6. ios 画图_技术成长笔记_新浪博客
  7. 团队和技术建设的方法论
  8. 365道Java高频面试复习题,助你吊打面试官
  9. 【爬虫学习】BeautifulSoup 学习心得
  10. 极简主义linux桌面,Ubuntu 16.04/17.10/18.04安装Zafiro极简图标主题