AMBA与Wishbone总线简介 您所在的位置:网站首页 amba和mba区别 AMBA与Wishbone总线简介

AMBA与Wishbone总线简介

2024-05-24 06:17| 来源: 网络整理| 查看: 265

什么是AMBA片上总线?

随着深亚微米工艺技术日益成熟,集成电路芯片的规模越来越大。数字IC从基于时序驱动的设计方法,发展到基于IP复用的设计方法,并在SOC设计中得到了广泛应用。在基于IP复用的SoC设计中,片上总线设计是最关键的问题。为此,业界出现了很多片上总线标准。其中,由ARM公司推出的AMBA片上总线受到了广大IP开发商和SoC系统集成者的青睐,已成为一种流行的工业标准片上结构。AMBA规范主要包括了AHB(Advanced High performance Bus)系统总线和APB(Advanced Peripheral Bus)外围总线。

AMB上总线

AMBA总线:

AMBA总线是ARM研发的(Advanced Microcontroller Bus Architecture)提供的一种特殊的机制,可以将RISC处理器集成在其他IP芯核和外设中,它是有效连接IP核的“数字胶”,并且是ARM复用策略的重要组件。它不是芯片与外设之间的接口,而是ARM内核与芯片上其他元件进行通信的接口。

2.0版本AMBA标准定义了三组总线:

AHB(AMBA高性能总线):用于高性能。高数据吞吐部件,如CPU、DMA、DSP之间的连接。

ASB(AMBA系统总线):用来作处理器与外设之间的互连,将被AHB取代。

APB(AMBA外设总线):为系统的低速外部设备提供低功耗的简易互连。

系统总线和外设总线之间的桥接器提供AHB/ASB部件与APB部件之间的访问代理与缓冲。

AMBA 2.0规范包括四个部分:AHB、ASB、APB和Test Methodology。AHB的相互连接采用了传统的带有主模块和从模块的共享总线,接口与互连功能分离,这对芯片上模块之间的互连具有重要意义。AMBA已不仅是一种总线,更是一种带有接口模块的互连体系。

AHB简介

AHB主要用于高性能模块(如CPU、DMA和DSP等)之间的连接,作为SoC的片上系统总线,它包括以下一些特性:单个时钟边沿操作;非三态的实现方式;支持突发传输;支持分段传输;支持多个主控制器;可配置32位~128位总线宽度;支持字节、半字节和字的传输。AHB 系统由主模块、从模块和基础结构(Infrastructure)3部分组成,整个AHB总线上的传输都由主模块发出,由从模块负责回应。基础结构则由仲裁器(arbiter)、主模块到从模块的多路器、从模块到主模块的多路器、译码器(decoder)、虚拟从模块(dummy Slave)、虚拟主模块(dummy Master)所组成。其互连结构如图1所示。

AHB System是由Master,Slave,Infrastructure 三部分所组成。整个AHB bus上的传输都是由master 所发出,由slave 负责回应。而infrastructure 则由arbiter ,master to slave multiplexor,slave to master multiplexor,decoder,dummy slave,dummy master 所组成。

 AHB支持多主设备,所以需要仲裁器。AHB总线上最多可以有16个主模块和任意多个从模块,如果主模块数目大于16,则需再加一层结构(具体参阅ARM公司推出的Multi-layer AHB规范)。

AHB Arbitration的机制简述如下:

当master 想要access bus 时候,master 将HBUSREQ signal(bus request) 给drive high(每个master 都有自己的HBUSREQ 信号),同一个时间可能有多个master 都想要access bus,因此arbiter 在HCLK 的rising edge 去sample 各个master 的HBUSREQ 信号后,需要决定哪个发出request 的master 有最高的priority(虽然仲裁规范是AMBA总线规范中的一部分,但具体使用的算法由设计工程师自行决定,AHB 并没有规定priority algorithm,其中两个最常用的算法是固定优先级算法和循环制算法),然后将此master 的HGRANT(bus grant signal由arbiter给出) 信号drive high,表示他可以access bus 了。(若原本已有master 在access bus,arbiter会把原本master 的HGRANT 信号给drive LOW, 表示他已经丧失access 的权利。

当master 正在进行fixed-length burst transfer (固定长度的突发连续传输)时候,如果有更高priority 的master 发出了request,arbiter 可以等待burst 完成后再將bus grant 给新的master,也可以在burst进行中就中断原来 master 的bus 拥有权(ownership),让更高priority 的master 去access bus。而被中断的master就需要重新发出request,等待下一次Grant bus时候继续完成burst了。

若master想要进行的连续 transfer是不可以中断的 (比如在access shared memory 时候),则master 可以在request 时候,同时将HLOCK 给drive high,告诉arbiter我要进行的是不可被中断的transfer,则当master 获得access bus权力后 ,arbiter将不会把bus release给其它master,直到master自行将HLOCK 给drive LOW,arbiter才会进行arbitration 的动作【2】。

 

APB简介

APB主要用于低带宽的周边外设之间的连接,例如UART、1284等,它的总线架构不像AHB支持多个主模块,在APB里面唯一的主模块就是APB 桥。其特性包括:两个时钟周期传输;无需等待周期和回应信号;控制逻辑简单,只有四个控制信号。APB上的传输可以用如图2所示的状态图来说明。

1)系统初始化为IDLE状态,此时没有传输操作,也没有选中任何从模块。

2)当有传输要进行时,PSELx=1,PENABLE=0,系统进入SETUP状态,并只会在SETUP 状态停留一个周期。当PCLK的下一个上升沿时到来时,系统进入ENABLE 状态。

3)系统进入ENABLE状态时,维持之前在SETUP 状态的PADDR、PSEL、PWRITE不变,并将PENABLE置为1。传输也只会在ENABLE状态维持一个周期,在经过SETUP与ENABLE状态之后就已完成。之后如果没有传输要进行,就进入IDLE状态等待;如果有连续的传输,则进入SETUP状态。

ASB简介

AMBA2.0 规范中的ASB 总线适用于连接高性能的系统模块。它的读/写数据总线采用的是同一条双向数据总线,可以在某些高速且不必要使用AHB 总线的场合作为系统总线,可以支持处理器、片上存储器和片外处理器接口及与低功耗外部宏单元之间的连接。

基于AMBA的片上系统

一个典型的基于AMBA总线的系统框图如图3所示。

大多数挂在总线上的模块(包括处理器)只是单一属性的功能模块:主模块或者从模块。主模块是向从模块发出读写操作的模块,如CPU,DSP等;从模块是接受命令并做出反应的模块,如片上的RAM,AHB/APB桥等。另外,还有一些模块同时具有两种属性,例如直接存储器存取(DMA)在被编程时是从模块,但在系统读传输数据时必须是主模块。如果总线上存在多个主模块,就需要仲裁器来决定如何控制各种主模块对总线的访问。虽然仲裁规范是AMBA总线规范中的一部分,但具体使用的算法由RTL设计工程师决定,其中两个最常用的算法是固定优先级算法和循环制算法。AHB总线上最多可以有16个主模块和任意多个从模块,如果主模块数目大于16,则需再加一层结构(具体参阅ARM公司推出的Multi-layer AHB规范)。APB 桥既是APB总线上唯一的主模块,也是AHB系统总线上的从模块。其主要功能是锁存来自AHB系统总线的地址、数据和控制信号,并提供二级译码以产生APB外围设备的选择信号,从而实现AHB协议到APB协议的转换。

AMBA AHB循环级建模标准是完全公开和免费的。现在,可从ARM网站上下载,网址:http://www.arm.com/armtech/AMBA。为了保护AMBA技术的完整性,在此之前,您需要签署一份简单的授权协议,该协议基本与现行的AMBA 2.0标准授权协议保持一致。

源文档

 

 

Or1200中的wishbone总线仲裁原理

 

一:Wishbone信号线的说明

Wishbone总线连接线可分为:

同步信号线wb_clk_i;

复位信号线:wb_rst_i

地址线wb_addr_i[31:0];

数据线:主IP核到从IP核的数据输出,输入线wb_dat_o[31:0]  ,wb_dat_i[31:0I;

控制线(常用)wb_cyc  wb_stb,  wb_sel[3:0],  wb_we  wb_ack , wb_err

wb_cyc:总线周期信号,有效代表一个主设备请求总线使用权或者正在占有使用权,当时不一定进行总线操作

wb_stb:选通信号,有效代表主设备发起一次总线操作。wb_cyc是最高层的控制信号,只有wb_cyc这个信号有效wb_stb才有效

wb_sel[3:0]: 有效数据总线选择信号,标识当前操作数据总线上哪些位是有效的

wb_we: 写使能信号

wb_ack , wb_err:主从设备间的操作结束方式信号,ack表示成功,err表示错误

还有一些控制线比如tgd,tga,tgc等标签信号 我们的系统没有用上

(1)主设备发出的信号 包括数据,地址信号以及控制信号wb_cyc wb_stb, wb_sel[3:0], wb_we

    主设备接收的信号 包括数据以及从设备反馈信号wb_ack , ,wb_err

 

(2)从设备与主设备正好相反

从设备发出的信号 有数据信号以及给主设备的反馈信号wb_ack , ,wb_err

     从设备接收 主设备发送过来的 数据,地址信号以及控制信号wb_cyc wb_stb, wb_sel[3:0], wb_we

 

二:Wishbone的互联类型

Wishbone总线提供了四种不同的IP核互连方式: (1)点到点(point-to-point),用于两IP核直接互连; (2)数据流(data flow),用于多个串行IP核之间的数据并发传输; (3)共享总线(shared bus),多个IP核共享一条总线; (4)交叉开关(crossbar switch),同时连接多个主从部件,提高系统吞吐量。

点对点连接是最简单的一种连接方式;数据流连接方式主要用于数字信号 处理等应用场合;共享总线,它适用于系统中有两台或者多台主设备需要与一台或则多台从设备通信的场合,它只允许在任何一时刻最多只允许一对主设备和从设备通过共享总线进行通信。而交叉开关互联方式中,最多允许超过一对的主设备和从设备对同时惊醒通信,当然在任一时刻,一台从设备只能与一台主设备进行通信,两台主设备不能同时访问同一从设备。

为了实现共享总线及十字交叉方式的互联,Wishbone总线用户必须自己实现仲裁(Arbitrator)逻辑模块。系统中采用的是共享总线和交叉开关互联2者兼有的连接方式,其总裁机制采用固定优先级,具体实现体现在源程序代码中。

 



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有