当前位置:   article > 正文

FPGA入门——AMBA总线介绍(1)

amba总线

一、AMBA总线概述

AMBA(Advanced Microcontroller Bus Architecture)是由英国ARM公司提出的一种处理器总线架构。AMBA总线架构是一组用于系统级集成电路(SoC)设计的开放标准,旨在提供高性能、可扩展和可重用的接口和总线结构。AMBA总线架构由多个标准和规范组成,包括AMBA AXI(Advanced eXtensible Interface)、AMBA AHB(Advanced High-performance Bus)和AMBA APB(Advanced Peripheral Bus)。

1.1 系统架构图

下图是SOC系统架构图,左上角为CPU,JTAG(Joint Test Action Group)是一种用于测试和调试集成电路的标准接口和协议。DMA(Direct Memory Access)是一种计算机系统中的数据传输技术,它允许外部设备直接访问系统内存,而无需CPU的干预或中断。(DMA可以1、减轻CPU负担:通过将数据传输的任务交给DMA控制器处理,CPU可以专注于其他的计算和任务,从而提高系统的整体性能。2、提高数据传输速度:由于DMA直接访问内存,避免了多次CPU的寻址和数据传输操作,因此能够实现更高的数据传输速度。3、支持大容量数据传输:DMA技术可以处理大容量的数据传输,而不会影响CPU的处理能力。)

P Flash (可编程的闪存)相当于手机硬盘空间,SRAM相当于手机内存。

P Flash 用于存储非易失性数据。P Flash通常用于嵌入式系统和微控制器中,具有低功耗、高可靠性和较长的擦写寿命等特点。

SRAM(静态随机存取存储器)的应用范围广泛,常见于CPU的高速缓存、寄存器文件、缓冲区、高性能图形处理器、网络路由器等需要高速读写的场景。它也被用于存储芯片、嵌入式系统和其他需要快速、可靠存储的应用中。SRAM是一种静态存储器,需要持续供电才能保持数据,因此在断电后会丢失数据。

NAND闪存是一种非易失性存储器,即使在断电情况下,数据仍然可以保持。而SRAM是一种静态存储器,需要持续供电才能保持数据,因此在断电后会丢失数据。NAND闪存适用于需要大容量存储、非易失性存储和成本效益较高的场景,如移动设备、闪存卡和固态硬盘。而SRAM适用于需要快速读写、低功耗和较小存储容量的应用,如高速缓存、寄存器文件和缓冲区。

上述这些主要接在AHB上,而UART TIMER SPI GPIO这些接在低速总线APB上。之间通过AHB2APB Bridge相连接。

作为初学者,应该熟练掌握该架构图。

2、AMBA2.0

本文主要介绍AMBA2.0版本。

AMBA 2.0是AMBA总线架构的第二个主要版本,引入了一些新的特性和改进。

在AMBA 2.0中,引入了以下主要组件和特性:

  1. AMBA AHB:AMBA 2.0引入了Advanced High-performance Bus(AHB),它是一种高性能、低功耗的总线接口。AHB支持多主/多从的体系结构,具有高带宽和低延迟的特点。AHB还支持分级的总线结构,可以通过多级总线进行扩展和连接。

  2. AMBA APB:AMBA 2.0引入了Advanced Peripheral Bus(APB),它是一种低功耗、低带宽的总线接口。APB适用于低复杂性的外设和控制器,可以与AHB进行桥接。

  3. AMBA ASB:AMBA 2.0还引入了Advanced System Bus(ASB),它是一种高性能、高带宽的总线接口。ASB适用于更复杂的系统,支持更高的频率和更高的带宽。

  4. AMBA Designer:AMBA 2.0提供了AMBA Designer工具,用于系统级设计和验证。AMBA Designer可以帮助设计人员在系统级别上进行总线规划、性能分析和验证。

AMBA 2.0的主要目标是提供更高的性能、更低的功耗和更好的可扩展性。它为SoC设计提供了一种灵活、可靠和可重用的总线架构,使设计人员能够轻松集成不同的处理器核、外设和内存单元。

需要注意的是,AMBA 2.0已经有一段时间了,现在ARM已经推出了更高级别和更强大的AMBA总线架构版本,如AMBA 3和AMBA 4。这些新版本引入了更多的特性和改进,以满足日益增长的系统集成需求。(由于笔者水平有限,仅从2.0开始赘述)

二、AHB

AHB总线具有以下主要特点:

  1. 性能:AHB总线具有高性能的特点,支持多主机和多从机的并行操作。它使用高效的总线传输协议,可以实现高带宽和低延迟的数据传输。

  2. 两级流水:AHB总线支持分级优先级,可以根据优先级对总线上的不同传输进行优先级排序。这使得高优先级的传输可以更快地完成,提高系统的响应性。

  3. 总线仲裁:AHB总线使用仲裁机制来管理多个主机对总线的竞争。它采用分布式仲裁方式,通过仲裁逻辑和优先级编码器来确定哪个主机能够获得总线的控制权。

  4. 支持多种传输类型:AHB总线支持多种传输类型,包括单个传输、突发传输和非突发传输。这样可以根据不同的应用需求选择合适的传输方式,提高数据传输效率。

  5. 可扩展性:支持最多16个总线主设备

2.1 AHB信号

信号列表 

HTRANS[1:0]有四种状态:分别是IDLE BUSY SEQ NOSEQ

HSIZE是传输的大小,有8 16 32 64 128等bit

HBURST是传输的burst类型:见下表

HRESP是slave发给master的传输状态,有ok error split retry四种。

HREADY是slave发送过来的,标识当笔传输的完成状态。

2.2 AHB传输

AHB传输分为地址周期和数据周期,地址周期为1个时钟,数据周期的时钟数由HREADY决定。上图是不需要等待的传输。

该图为需要等待2个时钟周期的传输,我们可以看到HREADY为0两个cycle。

2.3 HTRANS

在AMBA 2.0规范中,HTRANS是AHB(Advanced High-performance Bus)总线协议中的一个信号,用于描述AHB传输的类型和状态。

00: idle

01:   busy

10:   noseq

11:   seq     (表面burst传输接下来的数据, 地址和上一次传输的地址是相关的)

2.4 HBURST

注意:burst传输不能超越1KB

这个时候要插一个NSEQ,重新进行burst的传输。

2.5 HWRITE

1写0读

2.6 HSIZE

32bit ,4字节 ,2^hsize = 4, hsize = 2   (010)

00       04        08        0C

10        14        18        1C 

INCR4:    10 14 18 1C

WRAP4: 08 0C 00  04

2.7 从设备响应信号HRESP

从设备响应的两种方式:

  1. 立即响应,(地址周期、数据周期)
  2. 通过hready 做数据的扩展

三、AHB仲裁信号

主设备控制总线时:HGRANT==1 && HREADY == 1

在AMBA(Advanced Microcontroller Bus Architecture)规范中,AHB(Advanced High-performance Bus)总线使用仲裁信号来管理多个主机对总线的竞争,以确定哪个主机能够获得总线的控制权。

AHB总线的仲裁信号包括以下几个信号:

  1. HGRANT:该信号用于向当前请求总线控制权的主机发送授权信号。当总线空闲时,仲裁逻辑将选择一个优先级最高的主机,并将HGRANT信号置为高电平,表示授权该主机使用总线。

  2. HREADY:该信号用于指示当前主机是否可以开始或继续对总线进行访问。当HREADY为高电平时,表示当前主机可以使用总线进行数据传输或控制操作。

  3. HLOCK:该信号用于指示当前主机是否持有总线的独占锁定(lock)。当HLOCK为高电平时,表示当前主机已经获得总线的独占控制权,并且其他主机无法访问总线。

通过使用这些仲裁信号,AHB总线可以实现多主机的并行操作,保证总线的公平性和有效性。仲裁逻辑根据不同主机的请求和优先级来选择获得总线控制权的主机,并通过仲裁信号进行相应的控制和协调。

本文内容由网友自发贡献,转载请注明出处:【wpsshop博客】
推荐阅读
相关标签
  

闽ICP备14008679号