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

一、前言

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

二、AHB 复位

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

三、AHB 数据总线位宽

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

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

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

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

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

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

AMBA总线协议(9)——AHB(七):终章_第1张图片

 

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

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

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

AMBA总线协议(9)——AHB(七):终章_第2张图片

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

四、AHB接口设备

1、从设备

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

AMBA总线协议(9)——AHB(七):终章_第3张图片

2、主设备 

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

AMBA总线协议(9)——AHB(七):终章_第4张图片

3、仲裁器 

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

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

AMBA总线协议(9)——AHB(七):终章_第5张图片

 4、译码器

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

AMBA总线协议(9)——AHB(七):终章_第6张图片

 五、小结

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

你可能感兴趣的:(AMBA总线协议,fpga开发,fpga,硬件架构,arm,arm开发)