Avalon 总线规范_中文
- 格式:pdf
- 大小:546.57 KB
- 文档页数:21
三种常用SoC片上总线的分析与比较作者:李瑞张春元罗莉来源:国防科技大学发表时间:2006-02-22内容摘要随着集成电路设计技术的发展,在片上系统(SoC)中,越来越多地使用各种功能IP核部件构成系统。
总线是这些部件连接的主要方式,目前有数家公司和组织研发了多种面向SoC设计的总线系统。
本文介绍SoC中常用的三种片上总线AMBA、Wishbone和Avalon,分析和比较其特性,并针对其不同的特点阐述其使用范围。
引言 嵌入式系统是当今计算机工业发展的一个热点。
随着超大规模集成电路的迅速发展,半导体工业进入深亚微米时代,器件特征尺寸越来越小,芯片规模越来越大,可以在单芯片上集成上百万到数亿只晶体管。
如此密集的集成度使我们现在能够在一小块芯片上把以前由CPU和若干I/O接口等数块芯片实现的功能集成起来,由单片集成电路构成功能强大的、完整的系统,这就是我们通常所说的片上系统SoC (System on Chip)。
由于功能完整,SoC逐渐成为嵌入式系统发展的主流。
相比板上系统,具有许多优点:SoC ①充分利用IP技术,减少产品设计复杂性和开发成本,缩短产品开发的时间; ②单芯片集成电路可以有效地降低系统功耗; ③减少芯片对外引脚数,简化系统加工的复杂性; ④减少外围驱动接口单元及电路板之间的信号传递,加快了数据传输和处理的速度; ⑤内嵌的线路可以减少甚至避免电路板信号传送时所造成的系统信号串扰。
SoC的设计过程中,最具特色的是IP复用技术。
即选择所需功能的IP(给出IP定义)核,集成到一个芯片中用。
由于IP核的设计千差万别,IP核的连接就成为构造SoC的关键。
片上总线(On-Chip Bus,OCB)是实现SoC中IP核连接最常见的技术手段,它以总线方式实现IP核之间数据通信。
与板上总线不同,片上总线不用驱动底板上的信号和连接器,使用更简单,速度更快。
一个片上总线规范一般需要定义各个模块之间初始化、仲裁、请求传输、响应、发送接收等过程中驱动、时序、策略等关系。
Avalon-ST总线规范6.1介绍Avalon流传输(Avalon-ST)接口可以被用户用来作为各组件的数据通信接口,该接口具有高带宽、低延时和非双向的特点。
典型应用场合包括多数据流、数据包和DSP数据的传输。
Avalon-ST接口信号可以被描述成传统的数据流接口,即支持传输单个数据流而不需关心通道数和数据包的大小范围。
接口也支持更加复杂的协议,包括突发传输,和数据包在多个通道间交错传输等功能。
图6.1显示了典型的Avalon-ST接口应用。
图6.1 Avalon-ST接口——典型例子所有的Avalon-ST源端口和目标端口不可以与第三个端口互相相连(译者注:只能两两相连)。
但是,如果两个端口对一个应用空间提供了兼容的功能,自适应逻辑可以允许这些端口互连。
6.1.1 性能指标下面是Avalon-ST的一些突出的性能指标:⏹低延迟,高吞吐量的点到点数据传输⏹支持多通道传输和灵活的在多个通道间交错传输⏹单边的信号传输信道,提供数据包错误、数据包开始和结束的标志⏹支持数据突发传输⏹自适应接口6.1.2 术语和概念本节定义了Avalon-ST总线协议中的术语和协议。
⏹Avalon-ST流传输系统——Avalon流传输系统包括一个或多个Avalon-ST端口,用来发送或接收数据流。
流传输系统如图6.1所示。
包括Avalon-ST接口,用来从系统输入端接收数据并传输到输出端;和Avalon-MM接口,用来允许软件控制其中的控制和状态寄存器。
⏹Avalon-ST流传输组件——典型的系统中,使用Avalon-ST接口连接的多个功能模块叫做组件。
设计者需要同时配置组件和接口,以完成一个系统。
⏹源端口、目标端口和连接——当两个组件连接时,数据从源端口流向目标端口。
源端口和目标端口的互连叫做连接。
⏹反馈——反馈是一种机制,目标端口可以发送信号,使得发送端口停止发送数据。
当目标组件的FIFO已经是满状态或者它的输出口被阻塞时,目标端口通常使用反馈信号停止数据流。
Avalon总线规范1 A valon总线基本从端口读传输时序2 A valon总线基本从端口写传输时序3 A valon总线上的基本主端口读传输时序4 A valon总线上的基本主端口写传输时序Nios采用的Avalon总线是一种相对简单的总线结构,主要用于连接片内处理器和外设,以构成可编程单芯片上系统。
它描述了主从构件间的端口连接关系,以及构件间通信的时序关系。
Avalon总线拥有多种传输模式,以适应不同外设的要求。
它的基本传输模式是在一个主外设和一个从外设之间进行单字节、半字或字(8、16或32位)的传输,每次只传送一个单元的数据。
当一次传输结束后,不论新的传输过程是否还在同样的外设间进行,Avalon总线总是可以在下一个时钟周期立即开始另一次传输。
所有Avalon从传输的信号时序都源自从端口的基本传输模式,同样,主端口的基本传输模式是所有Avalon主传输的基础。
Avalon总线的端口分为主端口和从端口。
主端口是主外设用于在Avalon总线上发起传输的一组信号。
从端口是用于接受来自另一个Avalon外设主端口的总线传输的一组信号,主端口和从端口都直接连接到Avalon总线模块上。
Avalon总线规范定义了主端口和从端口之间通过Avalon总线模块传输数据所需的信号和时序。
构成Avalon总线模块和外设之间接口的信号随着传输模式的不同而不同。
Avalon总线规范提供了各种选项来剪裁总线信号和时序,以满足不同类型外设的需要。
1 Avalon总线基本从端口读传输时序基本从端口传输模式是所有Avalon从端口传输的基础。
所有其他的从端口传输使用的信号都包含了基本从端口传输的信号,并扩展了基本从端口的操作时序。
基本从端口传输由Avalon总线模块发起,然后从端口向Avalon总线模块传输一个单元的数据。
基本从端口读传输没有延迟。
在clk的第一个上升沿,Avalon总线向目标外设传递address、byteenable_n 和read_n信号。
本文详细介绍了Wishbone标准,主要参考了Wishbone标准B.3版本的核心内容,感兴趣的读者可去下载英文原文。
一、片上总线技术综述随着超大规模集成电路的迅速发展,半导体工业进入深亚微米时代,器件特征尺寸越来越小,芯片规模越来越大,可以在单芯片上集成上百万到数亿只晶体管。
如此密集的集成度使我们现在能够在一小块芯片上把以前由CPU和外设等数块芯片实现的功能集成起来,由单片集成电路构成功能强大的、完整的系统,这就是我们通常所说的片上系统。
IP复用是片上系统时代的核心技术之一。
由于IP核的设计千差万别,它们要能够直接连接,就要遵守相同的接口标准。
在片上系统中,处理器核和所有外设通过共享总线互通互联,因此这些IP核必须遵守相同的总线规范。
总线规范定义的是IP核之间的通用接口,因此它定义了一套标准的信号和总线周期,以连接不同的模块,而不是试图去规范IP核的功能和接口如何实现。
一个片上总线规范一般需要定义各个模块之间初始化、仲裁、请求传输、响应、发送接收等过程中驱动、时序、策略等关系。
芯片与电路板的资源和环境的不同,导致片上总线与板上总线存在若干明显差异,包括:①片上总线多采用单向信号线,而板上总线多采用三态信号。
片上三态总线无论在功耗、速度、可测性上都存在很大缺陷,而且一旦出现多驱动情况便会损毁芯片(比如若应该输出"Z"的信号实际输出为"1",而另有一个信号输出为"0",就形成一个低电阻通路,导致局部电流过大,热量难以及时释放,从而增加芯片功耗和大大降低芯片寿命)。
由于片上布线资源较为丰富,因此片上总线多采用单向信号线。
由于电路板上布线资源较为昂贵,因此板上总线多采用三态总线,但是由于三态总线的功耗问题和速度限制,目前板上总线也在向串行和非三态方向发展,如USB和PCI Express。
②片上总线比板上总线更加简单灵活。
首先片上总线结构要简单,这样可以占用较少的逻辑单元;其次时序要简单,以利于提高总线的速度;第三接口要简单,如此可减少与IP核连接的复杂度。
一.关于SOPC1)SOPC英文全名为:System-On-a-Programmable-Chip,即可编程片上系统。
SOPC 用可编程逻辑技术把整个系统放到一块硅片上,来用于嵌入式系统研究和电子信息处理。
SOPC是一种特殊的嵌入式系统,它是片上系统(System-On-a -Chip,SOC),即由单个芯片完成整个系统的主要逻辑功能但它不是简单的SOC,它也是可编程系统,具有灵活的设计方式,可裁减、可扩充、可升级,并具备软硬件在系统可编程的功能。
SOPC设计包括以32位NIOSII软核处理器为核心的嵌入式系统的硬件配置、硬件设计、硬件仿真、软件设计以及软件调试等。
SOPC系统设计的基本软件工具有:1)QuartusII:用于完成NIOSII系统的综合、硬件优化、适配、编程下载以及硬件系统调试等;2)SOPC Builder:Altera NiosII嵌入式处理器开发软件包,用于实现NiosII 系统的配置、生成,内嵌于QuartusII软件中;3)ModelSim: 用于对SOPC生成的NiosII系统的HDL描述进行系统的功能仿真;4)NiosII IDE:用于进行软件的开发、调试,以及向目标开发板进行Flash下载;二.关于NIOSII处理器NIOSII 是一个可配置的软核处理器。
“可配置”的意思是设计者可以根据性能和成本的要求来增加或删减处理器的功能。
ALTERA公司并不销售NIOSII处理器芯片,而是销售空的FPGA,并提供NIOSII 系统相应的IP核来组成NIOSII系统,然后将这个系统下载到FPGA中实现。
1)关于AVALONAvalon总线是SOPC硬件系统的重要组成部分,Avalon总线规范是为了开发SOPC 环境下外设而设计的。
图1-1 一个SOPC的示例二. SOPC简单实例:软核控制LCD液晶字母显示器1.系统构成规划1)系统功能:在character LCD上显示”Hello LCD from NiosII!”2)本系统中需要的外围器件:(1)L CD:输出显示(2)S RAM存储器:程序运行时将其导入SRAM3)SOPC中建立系统需要添加的模块包括:(1)N ios II 32bit CPU(2)L CD display(3)外部RAM总线(4)外部RAM接口(5)J TAG UART Interface(6)定时器2.硬件系统的建立1)首先打开Quartus II 建立工程文件:将工程文件命名为hello_lcd,顶层文件与工程文件同名。
1 引言由于FPGA的出现,使得我们不需要承担较大风险和较高的流片费用将小规模的或处于研发阶段的芯片制成ASIC芯片了。
而基于FPGA的SOC——SOPC(可编程片上系统),由于其可编程性,按照用户特定需要构建的SOPC是一个在某种程度上替代SOC的较好方案。
Altera公司为其FPGA开发了第二代软核嵌入式处理器NiosII,同时开发了用以构建基于NiosII处理器的SOPC Builder,使得用户可以通过自定义逻辑的方法方便地开发基于NiosII的SOPC系统。
SOPC Builder集成在EDA工具QuartusII中,提供了N iosII处理器及一些常用外设接口,如DMA控制器, SDRAM控制器,SPI接口以及锁相环PLL等等,对于一些库中没有提供的模块用户可以自己定义添加。
在实际应用中,具有I2C接口的EEPROM有着广泛的运用,本文就是在基于NiosII的SOPC中设计了一个EEPROM Controller Core,用Verilog HDL描述硬件逻辑部分,同时编写相关驱动,下载到Stratix系列的FPGA中实现了对片外EEPROM AT24C02的读写。
2 基于NiosII的Controller CoreSOPC中的各模块通过Altera公司开发的Avalon总线互连。
任何一个挂接在Avalon总线上的模块都必须符合Avalon总线规范,即包含特定的信号类型clk,reset,chipselect,write,writedata等,并满足一定建立保持时间和等待周期的读写模式。
一个典型模块的Controller Core由硬件和驱动软件两部分构成。
2.1硬件构成基于NiosII的Controller Core是用于构建SOPC的基本组件,它由HDL语言描述其硬件逻辑,一个典型的Controller Core由task logic(行为模块),register file(寄存器),interface(总线接口)三部分组成,它们在逻辑上的关联关系如图1所示:图1Controller Core在逻辑上的关联关系interface是顶层模块,与Avalon总线的直接接口;register file:通信模块,对模块内部寄存器读写的通道;task logic:行为模块,实现模块逻辑功能的核心部分。
※※※※※中断※※※※※百度百科上对“中断”的定义:在计算机执行期间,系统内发生任何非寻常的或非预期的急需处理事件,使得CPU暂时中断当前正在执行的程序而转去执行相应的时间处理程序。
待处理完毕后又返回原来被中断处继续执行或调度新的进程执行的过程。
翻译成白话:有客人要来你家做客,你正在洗菜做饭,你怎么知道客人已经到了呢?有两种办法,一是让客人到了之后按门铃,另一种是你不断地去门口瞧瞧人有没来到。
对应到nios系统中,CPU即“你”,硬件外设即“客人”,硬件有数据更新(“客人”到了),第一种方式称为“硬件中断”(按门铃),第二种方式“轮询”(你在厨房和大门口之间疲于奔命)。
只是作一个比喻而已,没人会傻到痴痴地坐门口等人,但是硬件系统不分傻与不傻,“轮询”也是一种可行的方式,效率低一些罢了。
前面说过,硬件外设将中断请求传到CPU,必须走avalon总线,因此avalon总线得分配一个接口信号负责中断请求的传送,这个信号的名字为irq。
Nios II CPU体系架构支持32个外部硬件中断:irq0~irq31,中断号越低,优先级越高。
我们来看看一个硬件外设-- 电平开关,在以前那个工程DE2_SEG7中加入4位pio组件,当电平开关的值发生改变时,发送一个中断信号给CPU,让CPU跳到中断处理函数--将4位电平开关的值输出到数码管显示。
<1> 加入PIO组件,位宽为4,即4个电平开关这是SOPC组件列表,注意划红圈的地方,多了个中断号irq0<3> Generate "Nios2_system",在Quartus II里分配电平开关引脚SW[0]~SW[3],编译。
接着打开工程目录下的pio.vhd,可以看到pio控制器确实定义有avalon中断信号irq。
<4> 下面打开Nios II IDE,写软件C语言在哪里?2008-03-13 16:55按照Altera的文档,软硬件之间的过渡部分应该是这个样子:上次没把"C语言标准库"算进去,是想另开一篇文章来说,而且上次写那几行程序确实没用到C标准库里的函数,altera_avalon_seg7_×××是我们自己定义的,不算数。
Avalon总线最新接口标准综述杨鑫 徐伟俊 陈先勇 夏宇闻[摘要]:随着片上系统(SOC)的快速发展,高速片上数据传输对片上总线的要求越来越高,各种片上总线标准不断升级,以应对片内日益膨胀的数据吞吐量要求。
本文针对Altera公司推出的Avalon总线,将其最新版与早期版本进行比较,重点分析了新版标准的新特性,同时也对Avalon总线的全系列进行了综述性的回顾。
论文可以为研究Avalon总线标准的学者以及SOC总线选型设计者提供有价值的参考。
关键词: Avalon,SOC, 片上总线, Nios1. 前言:Avalon总线是Altera公司专门为可编程芯片片上系统(System-On-a-Programmable-Chip, 以下简称SOPC)而推出的一套片内总线系统,与Nios系列的处理器软核一起,二者构成了Altera公司SOPC解决方案中的核心部分。
在最近的一次版本更新中,Altera将原来的Avalon 接口规范升级到最新的3.2版,并将其改名为Avalon-MM(Avalon Memory Mapped Interface,以下均简称Avalon-MM)接口规范,同时推出新的Avalon-ST(Avalon Streaming Interface)接口规范,因此最新的Avalon总线标准成成为一套拥有Avalon-MM和Avalon-ST两套分支标准的SOPC总线规范。
在最近的几次升级中,Avalon总线标准每次都添加了一些非常有用的高级特性,同时对应的开发工具SOPC Builder也做了较大的升级改动。
在下文的讨论中,将会提及这些高级特性。
2. Avalon总线简介2.1 版本历史2000年Altera推出了以Nios处理器为核心的SOPC解决方案,同时提供的片上总线标准即是Avalon 1.0,到2004年,伴随着第二代Nios处理器Nios II的发布,Avalon总线标准也升级到了较为完善的3.0版。
Microcomputer Applications V ol.27,No.6,2011开发应用微型电脑应用2011年第27卷第6期3文章编号:1007-757X(2011)06-0039-03基于Avalon 总线的XML 解析器设计高岩,施亮摘要:嵌入式系统和Web Service 技术的融合是嵌入式系统发展的一个新方向。
由于嵌入式系统本身运算能力和资源的限制,XML 解析成为嵌入式系统快速处理SOAP 消息进而更好地支持Web Service 技术的瓶颈之一。
在VTD-XML 解析模型的基础上,设计了一个基于Avalon 总线的IP 核来分担XML 解析的一部分任务,减轻嵌入式系统的运算负荷和片内资源消耗,从而提高嵌入式系统的XML 解析性能。
关键词:VTD 解析模型;Avalon 总线;自定义IP 核中图分类号:TP17文献标志码:A0引言Internet 技术和分布式计算技术的蓬勃发展使得各个行业的信息化平台越来越离不开网络,嵌入式系统之间的协作、与企业系统之间的互操作等都要求其能够支持分布式应用来实现更大范围的数据共享,从而更有效地利用信息资源。
传统的分布式计算技术并不能很好的解决不同应用平台、开发语言、通信协议和数据格式之间的系统整合所带来的问题。
1998年开始发展的Web Service 技术结合了面向组件技术和Web 技术的优势,通过标准网络协议和XML 数据格式进行通信,具有良好的适应性,实现了平台与环境的无关性和独立性,得到了广泛的应用,嵌入式系统和Web Service 技术的融合将是必然趋势。
SOAP 消息是Web Service 调用的载体,是一种基于XML 的轻量级的,用于分布式环境中交换结构化信息的简单的协议,相当于传统分布式技术中的RPC (远程过程调用)协议。
嵌入式系统必须能够正确的解析XML 文档才能理解SOAP 消息的内容,进而支持Web Service 技术,而XML 的解析需要耗费大量的系统资源,已经成为嵌入式系统和Web Service 技术融合的瓶颈。
SoC片上五种总线标准的分析比较(2008年6月)摘要:随着SoC(片上系统)的快速发展,高速片上数据传输对片上总线的要求越来越高。
本文在分析当前设计中常用的五种SoC 片上总线标准(ARM的AMBA总线、Silicore的Wishbone总线、IBM公司的CoreConnect总线、Altera的Avalon总线和OCP-IP设计的OCP 总线)的基础上,对它们的综合应用和性能进行了分析比较。
随着超大规模集成电路的迅速发展,半导体工业进入深亚微米时代,器件特征尺寸越来越小,芯片规模越来越大,可以在单芯片上集成上百万到数亿只晶体管。
如此密集的集成度使我们现在能够在一小块芯片上把以前由CPU和若干I/O接口等数块芯片实现的功能集成起来,由单片集成电路构成功能强大、完整的系统,这就是我们通常所说的片上系统SoC (System on Chip)。
它是以嵌入式系统为核心,以IP复用技术为基础,集软、硬件于一体,并追求产品系统最大包容的集成芯片。
近10年来,无论是消费类产品如电视、录像机,还是通信类产品如电话、网络设备,这些产品的核心部分都开始采用芯片作为它们的“功能中枢”。
SoC片上总线尚处于发展阶段,不像微机总线那样成熟,目前还没有统一的标准,因此各大厂商和组织纷纷推出自己的标准,以便在未来的SoC片上总线标准中占有一席之地。
目前,SoC总线架构有很多,本文就目前使用较多的五种SoC片上总线标准──ARM的AMBA总线、Silicore的Wishbone总线、IBM公司的CoreConnect总线、Altera的Avalon 总线和OCP-IP设计的OCP总线进行了分析讨论,为大家使用提供一些参考。
1、SoC片上的五种总线标准1.1 AMBA总线AMBA(Advanced Microcontroller Bus Architecture)总线规范是ARM 公司设计的一种用于高性能嵌入式系统的总线标准。