基于AMBA总线的片上系统
扫描二维码
随时随地手机看文章
AMBA片上总线
AMBA 2.0规范包括四个部分:AHB、ASB、APB和Test Methodology。AHB的相互连接采用了传统的带有主模块和从模块的共享总线
,接口与互连功能分离,这对芯片上模块之间的互连具有重要意义。AMBA已不仅是一种总线,更是一种带有接口模块的互连体系。下面将简要介绍比较重要的AHB和APB总线。
AHB简介
AHB主要用于高性能模块(如CPU、DMA和DSP等)之间的连接,作为SoC的片上系统总线,它包括以下一些特性:单个时钟边沿操作;非三态的实现方式;支持突发传输;支持分段传输;支持多个主控制器;可配置32位"128位总线宽度;支持字节、半字节和字的传输。AHB 系统由主模块、从模块和基础结构(Infrastructure)3部分组成,整个AHB总线上的传输都由主模块发出,由从模块负责回应。基础结构则由仲裁器(arbiter)、主模块到从模块的多路器、从模块到主模块的多路器、译码器(decoder)、虚拟从模块(dummy Slave)、虚拟主模块(dummy Master)所组成。其互连结构如图1所示。
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状态。
基于AMBA的片上系统
一个典型的基于AMBA总线的系统框图如图3所示。
[!--empirenews.page--]大多数挂在总线上的模块(包括处理器)只是单一属性的功能模块:主模块或者从模块。主模块是向从模块发出读写操作的模块,如CPU,DSP等;从模块是接受命令并做出反应的模块,如片上的RAM,AHB/APB 桥等。另外,还有一些模块同时具有两种属性,例如直接存储器存取(DMA)在被编程时是从模块,但在系统读传输数据时必须是主模块。如果总线上存在多个主模块,就需要仲裁器来决定如何控制各种主模块对总线的访问。虽然仲裁规范是AMBA总线规范中的一部分,但具体使用的算法由RTL设计工程师决定,其中两个最常用的算法是固定优先级算法和循环制算法。AHB总线上最多可以有16个主模块和任意多个从模块,如果主模块数目大于16,则需再加一层结构(具体参阅ARM公司推出的Multi-layer AHB规范)。APB 桥既是APB总线上唯一的主模块,也是AHB系统总线上的从模块。其主要功能是锁存来自AHB系统总线的地址、数据和控制信号,并提供二级译码以产生APB外围设备的选择信号,从而实现AHB协议到APB协议的转换。
使用DesignWare搭建
基于AMBA的SOC芯片
为了更有效地在有限时间内完成复杂的系统级芯片设计,越来越多的芯片开发中采用了可重复使用的IP。为了满足日益成长的IP需求,Synopsys提供了一系列已验证的IP,如Synopsys DesignWare,来帮助设计者加速系统级芯片的开发。
DesginWare里面包含了两种IP:可实现IP(Implement IP)以及VIP(Verification IP)。VIP是为了应对系统级芯片设计带来的验证挑战而特别设计的,专为简化验证流程。可实现IP是指已通过验证、可物理实现的IP,分为Star IP、宏单元(Macro Cell)和 foundation IP。宏单元中包含与AMBA总线相关的IP,有DW_ahb (ARM AMBA2.0 AHB 总线 IP、DW_amba_ictl (ARM AMBA2.0 中断IP)、DW_apb (ARM AMBA2.0 APB 总线IP)和DW_apb_uart ( ARM AMBA2.0 APB UART )等。
由此,可以借助Synopsys公司提供的AMBA总线IP构建SoC,加速系统集成和验证。首先到 Synopsys的FTP或EST下载所需要的宏单元,借助coreConsultant在相应的目录下安装coreKit并且创建一个工作环境.然后设定此宏单元的可变参数,以符合系统要求,此外还必须设定综合相关的参数。设定完参数后,还要验证所设定的参数是否符合系统规范。初步验证后,便可进一步将宏单元综合成所需的网表。产生网表之后,仍须利用宏单元内的验证环境来确定综合后网表的所有功能都能正常工作。如果所有功能都验证完成,就可以将这个IP放置到系统中。用DesignWare搭建的一个基于AMBA总线结构的SoC系统如图4所示,其中包括了用于验证AMBA总线协议的VIP。
结语
随着复杂IP核在目前和下一代ASIC设计中的广泛应用,半导体公司开始采用片上总线标准化集成技术。ARM公司研发的AMBA总线规范提供了一种特殊的机制,可将RISC处理器集成在其他IP核和外设中。同时,Synopsys提供的DesignWare中的IP可以加速基于AMBA总线结构的SoC芯片设计。这种技术成功地应用在TD-SCDMA系统终端基带数字芯片的设计中,缩短了系统设计、IP集成和验证的时间。