AMBA总线协议(9)——AHB(七):终章

一、前言

        在之前的文章中我们讲述了AHB协议的分割传输机制,它使得从机可以决定一次传输是否继续进行,以防止 传输的执行将占据大量的时钟周期,有效提高了总线的公平性与效率问题,本文中我们将一次性学习完AHB最后的内容,包括有复位,数据总线的位宽和接口设备等。

二、AHB 复位

        复位信号,HRESETn ,是 AMBA AHB 规范中唯一的低有效信号,并且是所有总线设备的主要复位源。复位可以异步方式生效,但是却在 HCLK 的上升沿被同步地撤消。在复位期间所有主机必须确保地址和控制信号在有效电平并且 HTRANS[1 0]  信号表示空闲。

三、AHB 数据总线位宽

        一种能提高总线带宽,而不用提高操作频率的方法是使片上总线的数据通道更宽。金属层的增加和大容量片上存储模块(例如嵌入式 DRAM)的使用都是更宽片上总线使用的推动因素。

        指定一个固定宽度的总线,将意味着在大多数场合下总线宽度在应用中并不是最佳的。因此允许可变总线宽度的途径已经被采纳。但是,必须确保模块在设计中高移植性。

        协议允许 AHB 数据总线可以是 8163264128256512 或者 1024 位宽。然而,建议使用中最低的总线宽度为 32 位,并且预计最大 256 位宽的总线将适合几乎所有应用。

        对读和写传输而言,接收模块都必须从总线上正确的字节通道选择数据。但是,并不要求将数据复制到所有字节通道上。

1、在宽总线上实现窄从设备

        下图表示了一个原始设计为32位数据总线运行的从机模块是如何轻松的被转换到运行在较宽的 64 位总线上的。这仅需要增加外部逻辑,而不需要修改任何内部设计。因此,该技术也可以用在难以设计的宏单元上。

 

对于输出,当从较窄的总线转换成较宽的总线时,要完成下列事件之一:
        (1)复制数据到宽总线上的两个半部分上(如上图所示);
        (2)使用附加的逻辑电平来确保总线上只有适当的那一半被改变。这会导致功耗的降低。
        从机可以只接收和它接口相同宽度的传输。如果一个主机尝试一个大于从机能支持的传输,那么从机可以使用 ERROR 传输响应。

2、在窄总线上实现宽从设备

        下图表示了一个在窄总线上实现宽从机的例子。同样,只需要外部逻辑。因此,通过简单的修改,初步的设计或者导入的模块就可以工作在不同宽度的数据总线上了。

        与最初打算通过用相同的方式修改从机以工作在宽总线上相比,经过下面简单的修改,总线主机便能工作在宽总线上:
        (1)多路选择输入总线;
        (2)复制输出总线;
        然而,总线主机不能工作在比原先设计要窄的总线上,除非有一些限制总线主机尝试传输的宽度的机制将主机也包含在内。主机禁止尝试宽度(由 HSIZE 表示)大于所连接的数据总线的传输。

四、AHB接口设备

1、从设备

        一个 AHB 总线从机在系统中应答由总线主机表示的传输。从机使用一个来自译码器的 HSELx 选择信号以确认何时响应总线主机。所有传输要求的其他信号,例如地址和控制信息,将由总线主机产生。

2、主设备 

        在 AMBA 系统中 AHB 总线主机有最复杂的总线接口。典型的一个 AMBA 系统设计者应该使用预先设计的总线主机。因此,就不需要关注总线主机接口的细节。

3、仲裁器 

        AMBA 系统中仲裁器的角色是控制哪个主机访问总线。每个总线主机有一个请求(REQUEST/授予(GRANT)接口连到仲裁器,并且仲裁器使用一个优先权分配方案来决定哪个总线主机是当前请求总线的主机中优先级最高的。

        每个主机也可以产生用来表示主机请求独占总线访问的 HLOCKx 信号。优先级方案的细节并没有规定而是由应用决定的。仲裁器使用其他信号(无论是 AMBA的还是非 AMBA 的)来改变使用中的优先级方案都是可取的。

 4、译码器

        AMBA 系统中译码器被用来执行集中的地址译码功能,通过使它们独立于系统的存储器映射,可以提高外设的移植性。

 五、小结

        至此我们就结束了AHB部分的全部内容,本文讲述了AHB的复位,数据总线位宽,包括有如何在宽总线实现窄从设备和如何在窄总线实现宽从设备。最后展现了AHB各类接口设备。当然学习AMBA AHB仅仅通过这一系列的文章是不够的,但是还是希望能够过这个系类帮助刚刚入门的朋友有一个基本的概念,笔者也在不断学习的过程中。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/87509.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

mysql 8.0 窗口函数 之 分布函数 与 sql server (2017以后支持) 分布函数 一样

mysql 分布函数 percent_rank() :等级值 百分比cume_dist() :累积分布值 percent_rank() 计算方式 (rank-1)/(rows-1), 其中 rank 的值为使用RANK()函数产生的序号,rows 的值为当前…

测试框架pytest教程(9)跳过测试skip和xfail

skip无条件跳过 使用装饰器 pytest.mark.skip(reason"no way of currently testing this") def test_example(faker):print("nihao")print(faker.words()) 方法内部调用 满足条件时跳过 def test_example():a1if a>0:pytest.skip("unsupported …

单片机的ADC

如何理解ADC。ADC就是将模拟量转换成数字量的过程,就是转换为计算机所能存储的0和1序列,比如将模拟量转换为一个字节,所以这个字节的大小要能反应模拟量的大小,比如一个0-5V的电压测量量(外部输入电压最小0V,最大为5V&…

MyBatis动态SQL、模糊查询与结果映射

目录 前言 一、MyBatis动态SQL 1.动态SQL是什么 2.动态SQL的作用 3.常用动态SQL元素 1. where if 元素 2. set if 元素 3. choose when otherwise 元素 4. 自定义 trim 元素 <1>. 自定义 trim 元素改写上面的 where if 语句 <2>. 自定义 trim 元素改…

2023前端求职经历回顾及面试题总结

文章目录 前言一、求职经历二、前端面经1. 投简历的正确打开方式2. 面经及面试题复盘外企面经、面试题大厂面经、面试题面试中的笔试有三种笔试题 给同行的温馨提示我的其他热门文章 前言 2023 年的春节之前&#xff0c;几乎没有公司招人&#xff0c;直到 2023年2月10日 左右&a…

【ARM AMBA AXI 入门 10 - AXI 总线 DATA信号与 STRB 信号之间的关系 】

文章目录 AXI STRB 信号 AXI STRB 信号 AXI总线是ARM公司设计的高性能处理器接口&#xff0c;其中STRB和DATA信号在AXI协议中有特殊的含义和关系。 DATA信号&#xff1a;在AXI中&#xff0c;DATA信号用于在读写操作中传输实际的数据。数据的大小可以根据AXI接口的位宽来变化&…

【深度强化学习】Python:OpenAI Gym-CarRacing 自动驾驶 | 提供项目完整代码 | 车道检测功能 | 路径训练功能 | 车辆控制功能

💭 写在前面:本篇是关于 OpenAI Gym-CarRacing 自动驾驶项目的博客,面向掌握 Python 并有一定的深度强化学习基础的读者。GYM-Box2D CarRacing 是一种在 OpenAI Gym 平台上开发和比较强化学习算法的模拟环境。它是流行的 Box2D 物理引擎的一个版本,经过修改以支持模拟汽车…

线性代数强化第三章

目录 一&#xff0c;关于A伴随&#xff0c;A逆与初等矩阵 二&#xff0c;分块矩阵 三&#xff0c;矩阵方程 ​ 一&#xff0c;关于A伴随&#xff0c;A逆与初等矩阵 如何证明行列式的值不能是0&#xff1b; 此秩为1. 法一&#xff1a; 法二&#xff1a; 不用看是列变换还是行变…

xargs 的用法 在1个文件夹中批量删除文件,这些删除的文件名是另一个文件夹中的文件名。

xargs 的用法 在1个文件夹中批量删除文件&#xff0c;这些删除的文件名是另一个文件夹中的文件名。 1、问题背景 应用场景 1、问题背景 应用场景 在二进制部署docker时&#xff0c;会把docker的所有可执行文件复制到/usr/bin下。 如果说复制过去后&#xff0c;想要反悔&#x…

vue 学习笔记 简单实验

1.代码(html) <script src"https://unpkg.com/vuenext" rel"external nofollow" ></script> <div id"counter">Counter: {{ counter }} </div> <script> const Counter {data() {return {counter: 5}} } Vue.cr…

【文化课学习笔记】【化学】新教材必修二:化学反应与能量

【化学】必修二&#xff1a;化学反应与能量 注&#xff1a;本文只含有新教材必修二化学反应与能量的部分&#xff0c;未涉及到选必一及后面更难更深的知识点。 化学反应与热能 吸热反应与放热反应 概念及常见的放热/吸热反应 概念&#xff1a; 放热反应&#xff1a;释放热量的化…

如何限制PDF打印?限制清晰度?

想要限制PDF文件的打印功能&#xff0c;想要限制PDF文件打印清晰度&#xff0c;都可以通过设置限制编辑来达到目的。 打开PDF编辑器&#xff0c;找到设置限制编辑的界面&#xff0c;切换到加密状态&#xff0c;然后我们就看到 有印刷许可。勾选【权限密码】输入一个PDF密码&am…

Pandas学习笔记

Pandas数据分析处理库 数据预处理 导入一份泰坦尼克号乘客数据 df.head()展示读取数据&#xff0c;默认读取前5行 df.tail()默认读取后5行 df.head(10)读取前10行DataFrame结构 Pandas工具包的基础结构&#xff0c;二维矩阵结构&#xff0c;行表示数据样本&#xff0c;列表示…

2023年国赛数学建模思路 - 案例:随机森林

文章目录 1 什么是随机森林&#xff1f;2 随机深林构造流程3 随机森林的优缺点3.1 优点3.2 缺点 4 随机深林算法实现 建模资料 ## 0 赛题思路 &#xff08;赛题出来以后第一时间在CSDN分享&#xff09; https://blog.csdn.net/dc_sinor?typeblog 1 什么是随机森林&#xff…

司徒理财:8.21黄金空头呈阶梯下移!今日操作策略

黄金走势分析 盘面裸k分析&#xff1a;1小时周期的行情局部于1896附近即下行通道上轨附近录得一系列的K线呈震荡下行并筑圆顶&#xff0c;上轨压制有效&#xff0c;下行通道并未突破&#xff0c;后市建议延续看下行。4小时周期局部录得一系列的纺锤线呈震荡&#xff0c;但行情整…

Pinia基本概念

Pinia基本概念 面试题&#xff1a;Pinia 相比 Vuex 有什么样的优点&#xff1f;为什么现在官方推荐使用 Pinia &#xff1f; Pinia&#xff0c;是一个 Vue 阵营的新的状态管理库&#xff0c;现在 Vue 官方已经推荐使用 Pinia 来代替 Vuex&#xff0c;或者你可以把 Pinia 看作是…

C++设计模式之桥接模式

文章目录 一、桥接模式二、std::error_code与设计模式&#xff08;桥接模式&#xff09;参考 一、桥接模式 在C中&#xff0c;桥接模式通常涉及以下几个角色&#xff1a; 抽象类接口&#xff08;Abstraction&#xff09;&#xff1a;定义抽象部分的接口&#xff0c;并维护一个…

C语言之扫雷游戏实现篇

目录 主函数test.c 菜单函数 选择循环 扫雷游戏实现分析 整体思路 问题1 问题2 问题3 问题4 游戏函数&#xff08;函数调用&#xff09; 创建游戏盘数组mine 创建游戏盘数组show 初始化游戏盘数组InitBoard 展示游戏盘DisplayBoard 游戏盘置雷SetMine 游戏…

(已解决)PySpark : AttributeError: ‘DataFrame‘ object has no attribute ‘iteritems‘

AttributeError: ‘DataFrame’ object has no attribute ‘iteritems’ 原因在使用SparkSession对象中createDataFrame函数想要将pandas的dataframe转换成spark的dataframe时出现的 因为createDataFrame使用了新版本pandas弃用的iteritems()&#xff0c;所以报错 解决办法&…

成功解决修改已经push到远程git仓库的commit message

1.使用 Git 命令行进入要修改的项目目录。 2.运行 git log 命令查看提交历史&#xff0c;找到要修改的提交的哈希值&#xff08;commit hash&#xff09;。 3.运行 git rebase -i <commit hash> 命令&#xff0c;将 <commit hash> 替换为要修改的提交的哈希值。这将…
最新文章