SOPC设计中的两种片上总线分析
SoC(Systemon Chip,片上系统)以其能提高产品性能、缩小产品体积等优点,逐渐成为嵌入式系统发展的主流趋势。SOPC(System On a Programmable Chip,可编程片上系统)利用可编程逻辑器件来实现SoC,具有设计方式灵活,可裁减、可扩充、可升级,并具备软硬件在系统可配置的性能。将处理器IP(Intellectual Property,知识产权)内核嵌入到可编程逻辑器件是SOPC设计的前提条件。
在Altera的FPGA器件上嵌入处理器等IP核可实现SOPC,设计时可使用的RISC处理器核有3种:ARM的工业标准处理器硬核ARM922T、Altera的16位Nios和32位Nios II处理器软核,而片上总线可采用AMBA和Avalon两种总线。在嵌入了ARM922T的Excalibur系列FPGA上,使用了AMBA总线的高性能总线AHB(Advanced High-performance Bus);而在可嵌入Nios的FPGA上则使用Avalon总线。这两种总线也是目前SoC设计使用较多的片上总线标准。
1 片上总线与传统总线体系的比较
片上总线是实现SoC中IP核连接最常见的技术手段,它以总线方式实现IP核之间的数据通信。片上总线规范一般需要定义各个模块之间初始化、仲裁、请求传输、响应、发送接收等过程中的驱动、时序、策略等关系。
传统总线协议中,仲裁器控制一至多个总线主设备与从设备的通信。总线主设备首先通过仲裁器来申请总线控制权,然后仲裁器才允许单一主设备访问总线。如果多个主设备试图同时访问总线,仲裁器将根据既定的仲裁策略,将总线资源分配给其中一个主设备。例如,在优先级仲裁机制中,优先级高的主设备将首先得到总线控制权。
控制总线的主设备会占用总线,并与相应从设备通信。图1说明了优先级仲裁总线体系的结构,该体系在传统微处理器系统中工作良好。由于主、从设备是位于印制板或底板上的独立部件,总线需要驱动底板上的信号和连接器。而且,鉴于有限的印制板资源和可用I/O引脚数目,所有系统部件还必须共用总线。
片上总线无需驱动底板上的信号和连接器,使用更简单且速度更快;同时,为了满足带宽要求,片上总线普遍采用并发多主设备总线体系。这种总线体系通过消除传统总线系统中一次仅有一个主设备可以访问系统总线的带宽瓶颈,来增加系统带宽。在此体系中,总线主设备竞争的是独立的从设备,而非总线本身。
2 AMBA总线及其应用
2.1 AMBA总线
AMBA(Advanced Microcontroller Bus Architecture)总线用于高性能嵌入式系统,独立于处理器和制造工艺技术,增强了各种应用中外设和系统宏单元的可重用性。AMBA是多总线体系,目前的AMBA总线规范2.0版定义了3种可以组合使用的总线体系:APB(Advanced Peripheral Bus),ASB(Advanced System Bus),AHB。AHB是现阶段AMBA的主要形式。
评论