Avalon 总线规范_中文
三种片上总线的分析与比较
三种常用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核之间数据通信。
与板上总线不同,片上总线不用驱动底板上的信号和连接器,使用更简单,速度更快。
一个片上总线规范一般需要定义各个模块之间初始化、仲裁、请求传输、响应、发送接收等过程中驱动、时序、策略等关系。
第4章节Avalon总线bus的规范
SOPC Builder利用最少的FPGA资源,产生新的最佳Avalon交 换架构。
4.2 Avalon总线基本概念
4.2.1 Avalon外设和交换架构 一个基于Avalon接口的系统会包含很多功能 模块,这些功能模块就是Avalon存储器映射 外设,通常简称Avalon外设。所谓存储器映 射外设是指外设和存储器使用相同的总线来 寻址,并且CPU使用访问存储器的指令也用 来访问I/O设备。为了能够使用I/O设备, CPU的地址空间必须为I/O设备保留地址。
4.2.3 主端口和从端口
Avalon端口就是完成通信传输的接口所包含的一组Avalon 信号。Avalon端口分为主端口和从端口,主端口可以在 Avalon总线上发起数据传输,目标从端口在Avalon总线上 响应主端口发起的数据传输。一个Avalon外设可能有一个 或多个主端口,一个或多个从端口,也可能既有多个主端口, 又有多个从端口。 Avalon的主端口和从端口之间没有直接的连接,主、从端 口都连接到Avalon交换架构上,由交换架构来完成信号的 传递。在传输过程中,主端口和交换架构之间传递的信号与 交换架构和从端口之间传递的信号可能有很大的不同。所以, 在讨论Avalon传输的时候,必须区分主从端口。
第4章 Avalon总线规范
4.1 Avalon总线简介
Avalon总线由ALTERA公司提出,用于在基于 FPGA的片上系统中连接片内处理器和片内外设的总线 结构。 连接到Avalon总线的设备分为主从设备,并各 有其工作模式。 简单性,易于理解、易于使用。 占用资源少,减少对FPGA片内资源的占用。 高性能,Avalon总线可以在每一个总线时钟周期 完成一次数据传输。 专用的地址总线、数据总线和控制总线:这样 Avalon总线模块和片上逻辑之间的接口的得以简化, Avalon外设不需要识别数据和地址周期。
第3章AVALON总线
从端口流控读传输
从端口流控写传输
主端口流控读写时序
三态传输
三态从端口使用双向数据信号data,而不是分开的、 单向的readdata和writedata。Data是可以三态 的,可以使多个三态外围设备共同连接到数据总线 上,而不会造成信号拥堵。 这种方式下,常采用负极性信号,如read_n、 chipselect_n 和 outputenable_n,用于和典型 存储器芯片匹配。 从三态口不能使用变延迟流水线属性;不能使用流 控信号;不支持突发传输(Burst)
具有变等待周期的读传输
说明: (1)变等待周期需要从端口加入输出信号:waitrequest,从端口在允许读 数据前使能waitrequest。
(2)等待的周期数没有上限,但应避免无限期的等待。
具有建立时间的从端口读周期
说明; (1)某些设备要求在发出read信号前,address和Chipselect等信号要稳 定几个周期,此时,可以使用这一方式 (2)系统互连结构经过Tsu时间后,再使能read (3) 如果一个设备同时具有可读写功能,则建立时间适用于两者 (4)这一方式不能与变周期同时使用。
复位控制信号
Avalon总线提供了可以使系统互连结构复位外围 设备以及外围设备复位系统的信号。 主端口和从端口设备可以被系统互连结构在任何时 候采用reset信号完成复位。复位脉冲要宽于1个 clk周期。 主从端口可以使用resetrequest信号复位全部 Avalon总线连接的系统。 Resetrequest对类似 看门狗的定时器非常有用, resetrequest有效会 使系统互连结构通过reset复位系统中的其他外围 设备。
变延迟流水线
从端口增加了 readdatavalid信 号表示数据有效。
Avalon-ST总线规范要点
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总线规范
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信号。
第四讲NIOS微处理器与Avalon总线
§4.5 Avalon总线简介
Avalon 总线
Avalon总线由ALTERA公司提出,用于在基于 FPGA的片上系统中连接片内处理器和片内外设的总 线结构。 连接到Avalon总线的设备分为主从设备, 并各有其工作模式。
Avalon 总 线 本 身 是 一 个 数 字 逻 辑 系 统 , 它 在 实 现 “信号线汇接”这一传统总线功能的同时,增加了 许多内部功能模块,引用了很多新的方法,比如从 端仲裁模式,多主端工作方式,延时数据传输,这 些功能使得在可编程逻辑器件中可以灵活的实现系 统增减和IP复用。
§4.4 SOPC Builder的设计流程
§4.4 SOPC Builder的设计流程
(c)配置JTAG调试模块
JTAG调试模块可以完成系统的下载,程序的调试, 还可以当成一个普通的UART设备使用。在开发阶段 是必不可少的模块。JTAG调试模块分为4级,第4级 需要第三方公司的硬件调试器支持。
对每个设备,系统会自动分配设备名称,地址和中断,用户也可以自己指定设备名称, 地址和中断优先级。对于存储设备,用户还可以锁定地址。
§4.4 SOPC Builder的设计流程
§4.4 SOPC Builder的设计流程
(e)配置reset地址和exception地址
reset地址一般设为非易失性存储器地址,exception地址一般设为主存储器设备的地址。
(3)简而言之,可以这样认为,总线就是一种通信规 范以及规范的实现方法,不论是计算机系统还是通信 领域。
§4.5 Avalon总线简介
计算机总线的分类:
(1)按相对于CPU或其它芯片的位置可分为:片内总线、片外总线 ; (2)按总线的功能可分为:地址总线、数据总线、控制总线 ; (3)按总线的层次结构可分为:
wishbone协议中文版
本文详细介绍了Wishbone标准,主要参考了Wishbone标准B.3版本的核心内容,感兴趣的读者可去下载英文原文。
一、片上总线技术综述随着超大规模集成电路的迅速发展,半导体工业进入深亚微米时代,器件特征尺寸越来越小,芯片规模越来越大,可以在单芯片上集成上百万到数亿只晶体管。
如此密集的集成度使我们现在能够在一小块芯片上把以前由CPU和外设等数块芯片实现的功能集成起来,由单片集成电路构成功能强大的、完整的系统,这就是我们通常所说的片上系统。
IP复用是片上系统时代的核心技术之一。
由于IP核的设计千差万别,它们要能够直接连接,就要遵守相同的接口标准。
在片上系统中,处理器核和所有外设通过共享总线互通互联,因此这些IP核必须遵守相同的总线规范。
总线规范定义的是IP核之间的通用接口,因此它定义了一套标准的信号和总线周期,以连接不同的模块,而不是试图去规范IP核的功能和接口如何实现。
一个片上总线规范一般需要定义各个模块之间初始化、仲裁、请求传输、响应、发送接收等过程中驱动、时序、策略等关系。
芯片与电路板的资源和环境的不同,导致片上总线与板上总线存在若干明显差异,包括:①片上总线多采用单向信号线,而板上总线多采用三态信号。
片上三态总线无论在功耗、速度、可测性上都存在很大缺陷,而且一旦出现多驱动情况便会损毁芯片(比如若应该输出"Z"的信号实际输出为"1",而另有一个信号输出为"0",就形成一个低电阻通路,导致局部电流过大,热量难以及时释放,从而增加芯片功耗和大大降低芯片寿命)。
由于片上布线资源较为丰富,因此片上总线多采用单向信号线。
由于电路板上布线资源较为昂贵,因此板上总线多采用三态总线,但是由于三态总线的功耗问题和速度限制,目前板上总线也在向串行和非三态方向发展,如USB和PCI Express。
②片上总线比板上总线更加简单灵活。
首先片上总线结构要简单,这样可以占用较少的逻辑单元;其次时序要简单,以利于提高总线的速度;第三接口要简单,如此可减少与IP核连接的复杂度。
NIOSII SOPC实例1
一.关于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,顶层文件与工程文件同名。
第7章Avalon接口规范(一)
byteenable
2, 4, 6, 8, 16, 32, 64, In 128
字节使能信号。在对宽度大于8位的存储器进行写传输时,该信号用于选择特定的字节
No 段。
若使用了该信号,writedata信号页必须使用,writebyteenable信号不能使用。
Avalon端口分为主端口和从端口:主端口可以在 Avalon总线上发起数据传输,目标从端口在Avalon 总线上响应主端口发起的数据传输
2020/4/28
23
Avalon总线相关基本概念
主端口和从端口
Avalon主端口和从端口之间没有直接的连接,主、 从端口都连接到Avalon交换架构上,由交换架构来 完成信号的传递。 信号传输过程中,主端口和交换架构之间传递的信 号与交换架构和从端口之间传递的信号可能有很大 的不同。 在讨论Avalon传输时,必须区分主从端口。
主从端口对 周期
2020/4/28
28
Avalon总线相关基本概念 主从端口对
主从端口对:在数据传输过程中,通过Avalon交换 架构连接起来的主端口和从端口。
2020/4/28
29
Avalon总线相关基本概念 Avalon外设 Avalon信号
主端口和从端口 传输
主从端口对 周期
2020/4/28
2020/4/28
16
Avalon总线相关基本概念 Avalon外设
Avalon外设通过Avalon交换架构进行数据传输
2020/4/28
17
Avalon总线相关基本概念 Avalon外设 Avalon信号
主端口和从端口 传输
eeprom
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:行为模块,实现模块逻辑功能的核心部分。
NIOSII设计 (DE2实验板)
※※※※※中断※※※※※百度百科上对“中断”的定义:在计算机执行期间,系统内发生任何非寻常的或非预期的急需处理事件,使得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总线最新接口标准综述
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版。
第4章 Avalon总线规范介绍(三)分解
129~256
257~512 513~1024
如:当通过三态从端口将32位存 Address[4] 储芯片连接到 Avalon交换架构上 时, Avalon地址线的最低两位 Address[5] 不连接到存储器芯片,地址线的
Address[6] address[2]连接到存储器的 A0引 脚上。 Address[7]
4) write_n、writebyteenable 5) chipselect信号、chipselect-through-read-latency属 性
2018/10/5
8
LOGO
三态从端口传输
Avalon三态传输
6)Avalon交换架构通过三态从端口与片外异步存储器的接口
不需要clk信号, 传输的同步是通过chipselect_n、read_n 和/或write_n信号使用 建立和保持时间获得的。
2018/10/5
11
LOGO
三态从端口传输
Avalon三态传输
6)Avalon交换架构通过三态从端口与片外异步存储器的接口 三态从端口与异步存储器的读传输实例 三态从端口与异步存储器的写传输实例
2018/10/5
9
LOGO
三态从端口传输
Avalon三态传输
6)Avalon交换架构通过三态从端口与片外异步存储器的接口 三态从端口与异步存储器的读传输实例 三态从端口与异步存储器的写传输实例
2018/10/5
10
具有建立时间和等待周期的三态从端口读传输
LOGO
A) Avalon交换架构驱动address,并且置chipselect_n有效。 使用的传输属性:一个时钟周期的固定 B) 一个周期的建立时间延迟后,Avalon交换架构置read_n和outputenable_n有效。 的建立时间,一个时钟周期固定等待周 C) 从端口驱动data以响应outputenable_n。data在此时可能是无效的。 期,非流水线模式 D) Avalon交换架构在等待周期内保持address 有效。 E) 从端口在传输的最后时钟上升沿之前的某个时刻驱动有效的data 。 F) Avalon交换架构在clk的上升沿捕获data,传输结束。 G)从端口将data置为高阻,以响应outputenable_n的无效状态。
第五讲 Avalon总线
1~32 1
输入 输出
否 否
口不接收数据时不需要该信号,若使用了该信号, 则 write 信号也必须使用。 中断请求。当从外设需要主外设服务时可触发 irq
表 3.2 Avalon 三态从端口信号
信号类型 clk reset address chipselect address 宽度/位 1 1 1~32 1 1~32 方向 输入 输入 输入 输入 输入 是否必需 否 否 否 否 否 说 明 SOPC 系统模块和 Avalon 总线模块的全局时钟 信号。 所有总线传输都同步于 clk, 只有异步从端 口才能省略 clk 全局复位信号功能的实现取决于外设 来自 Avalon 总线模块的地址线 从端口的片选信号。当 chipselect 信号无效时, 从端口必须忽略所有的 Avalon 信号输入 来自 Avalon 总线模块的地址线。Address 总是 包含字节地址值 用于读或写传输连接到 Avalon 总线模块上的 data 8, 16, 32 双向 是 数据线。若使用了该信号,则 read 或 write 信号 也必须使用。提供 data 端口时便定义了一个 Avalon 三态外设
图3-6显示了具有可变等待周期的从端口读传输。
图3-6具有可变等待周期的从端口读传输
图3-6时序说明: (A) 第一个周期开始于clk上升沿。 (B) address和read信号有效。 (C) Avalon Switch Fabric对address译码,然后置chipselect 有效。 (D) 从端口在下一个clk上升沿之前置waitrequest有效。 (E) Avalon Switch Fabri在clk上升沿读取waitrequest。这时 waitrequest有效,因而在该时钟上升沿不捕获readdata。 (F-G) waitrequest一直保持有效。可以占用任意多个周期。 (H) 从端口提供了有效的readdata。 (I) 从端口置waitrequest无效。 (J) Avalon Switch Fabric在clk的下一个上升沿捕获readdata, 读传输到此结束。下一个周期从这开始,可以是另一个传输 的开始。
基于Avalon总线的XML解析器设计
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片上五种总线标准的分析比较
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 公司设计的一种用于高性能嵌入式系统的总线标准。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
桂林电子工业学院毕业设计(论文)译文用纸 第 4 页 共 21 页
图2 .Avalon 总线模块框图-范例系统
Avalon 总线模块为连接到总线的Avalon 外设提供了以下的服务: ■ 数据通道多路转换——Avalon 总线模块的多路复用器从被选择的从外设向相关主外设传输数 据。 ■ 地址译码——地址译码逻辑为每一个外设提供片选信号。这样,单独的外设不需要对地址线译码 以产生片选信号,从而简化了外设的设计。 ■ 产生等待状态(Wait-State)——等待状态的产生拓展了一个或多个周期的总线传输,这有利于 满足某些特殊的同步外设的需要。当从外设无法在一个时钟周期内应答的时候,产生的等待状态可 以使主外设进入等待状态。在读使能及写使能信号需要一定的建立时间/保持时间要求的时候也可以 产生等待状态。 图2 .Avalon 总线模块框图-范例系统 ■ 动态总线宽度——动态总线宽度隐藏了窄带宽外设与较宽的Avalon 总线(或者Avalon 总线与更 高带宽的外设)相接口的细节问题。举例来说,一个32 位的主设备从一个16 位的存储器中读数据 的时候,动态总线宽度可以自动的对16 位的存储器进行两次读操作,从而传输32 位的数据。这便 减少了主设备的逻辑及软件的复杂程度,因为主设备不需要关心外设的物理特性。 ■ 中断优先级(Interrupt-Priority)分配——当一个或者多个从外设产生中断的时候,Avalon 总线 模块根据相应的中断请求号(IRQ)来判定中断请求。 ■ 延迟传输(Latent Transfer)能力——在主、从设备之间进行带有延迟传输的逻辑包含于Avalon 总线模块的内部。 ■ 流式读写(Streaming Read and Write)能力——在主、从设备之间进行流传输使能的逻辑包含于 Avalon 总线模块的内部。
免责声明:
本手册原自Altera 公司发布的《Avalon Bus Specification-Reference Manual》,一切权力由Altera 公 司所有
桂林电子工业学院毕业设计(论文)译文用纸 第 1 页 共 21 页
概要
Avalon 总线是一种将片上处理器和外设连接成片上可编程系统(SOPC)的一种简单总线结构。 Avalon 总线是一种接口方式,它规定了主从设备之间的接口方式及其通信时序。 Avalon 总线的设计目的在于: ■ 简便:提供了简单易学的协议; ■ 优化总线逻辑的资源利用:节约了可编程器件(PLD)内部的逻辑单元(LE); ■ 同步操作:将PLD 上的其他用户逻辑很好的集成在一起,从而避免了复杂的时序分析; 基本的Avalon 总线事务可以在主﹑从设备之间传送一个字节,半字或字(8,16 或32 位)。当一 次 事务处理完成,总线可以迅速的在下一个时钟到来的时候在相同的主从设备之间或其他的主从设备 间开 始新的事务。Avalon 总线也支持一些高级功能,如“延迟型(latency-aware)外设”,“流(streaming) 外设”及多总线主设备。这些高级的功能使其允许在一个总线事务中进行外设间的多数据单元的传 输。 Avalon 总线支持多个总线主设备。多主设备的结构为SOPC 系统及高带宽外设提供了很大程度上的 稳定性。例如,一个主外设可以进行直接存储器访问(DMA),而不需要处理器在数据传输路径上 从外 设将数据读入存储器。 Avalon 总线上,主设备和从设备之间的相互作用是基于一种被称为“从设备(slave-side)仲裁”的 技术。从设备仲裁决定了当多主设备在同一时刻尝试连接同一个从设备的时候,哪个主设备获得从 设备 控制权。从设备仲裁具有两个优势:
3. 地址,数据和控制信号使用分离的,专用端口,这样简化了外设的设计。外设不需要对地址和 数据 的总线周期进行解码,也不需要在非使能的时候禁止输出。
功能简介
Avalon 也包括很多的功能和约定来支持SOPC Builder 软件自动产生的系统﹑总线和外设: 高于4G 的地址空间-存储器和外设可以被映射为32 位地址空间中的任何地址。 同步接口-所有的Avalon 信号都被Avalon 总线时钟同步。这样简化了Avalon 总线的相关时序行为
Avalon 总线模块
图1. Altera PLD 上集成用户逻辑的系统模块 Avalon 总线模块是任何一个系统模块的“脊梁”。它是SOPC 设计中外设通信的主要路径。Avalon 总线模块是所有的控制、数据、地址信号及控制逻辑的总和,是其将外设连接起来并构成了系统模 块。Avalon总线模块实现了可配置的总线结构,其可以为设计者外设之间的相互连接而改变。Avalon 总线模块是由SOPC Builder 自动产生的,所以设计师并不用亲自将总线和外设连接起来。Avalon总 线模块基本上不会作为分离的单元而单独使用,因为系统设计者总是利用SOPC Builder 将处理器和 其他Avalon 外设自动地集成于一个系统模块之中。设计者对Avalon 总线的注意力通常限于与用户 Avalon 外设相连接地具体的端口上。 Avalon 总线模块(一条Avalon 总线)是一个主动的逻辑单元,它取代了PCB 板上的被动的,金属 总线。(见图2)这就是说,Avalon 总线模块的端口可以被看作是所有连接到被动总线的引脚连接。 本手册只是定义了包含于Avalon 总线模块接口中的端口,逻辑行为和信号顺序,而没有提及物理总 线的电气或物理的性能。
Avalon 总线规范
(Avalon从 端 口 传 输 与 流 模 式 从 端 口 传 输 部 分 )
参考手册
101 Innovation Drive San Jose, Ca 95134 Document Version: 2.3 (408)554-7000 Document Data: July 2003
1. 与外设的接口同步于Avalon 时钟。所以,没有复杂的,异步的握手/应答模式。Avalon 总线(及 整有的信号都是有效“低”和“高”,这样便于总线操作的立即转换。位于Avalon 内部的多 路复用 器(不是三态缓冲器)来决定哪个信号驱动哪个外设。
桂林电子工业学院毕业设计(论文)译文用纸 第 2 页 共 21 页
并便 于高速外设的集成。 分离的地址,数据和控制线路-分离的,专用的地址和数据路径更便于与用户逻辑相连接。外设不 需要 对数据和地址周期进行译码。 内置地址译码器-Avalon 总线自动的为所有外设产生片选(Chip Select)信号,大大的简化了Avalon 外 设的设计。 多主设备总线结构-在Avalon 总线上可以存在多个主外设。Avalon 总线自动产生仲裁逻辑。 基于向导式的配置-方便使用的图形化向导引导用户完成对Avalon 总线的配置(增加外设,确定 主/从 关系,定义存储器映射)。Avalon 总线结构的自动产生是由用户在向导界面的输入来决定的。 动态总线容量-Avalon 总线自动处理数据位宽不匹配的外设间传送数据的细节,便于在多种不同 宽度的 设备间接口。
Avalon 外设
桂林电子工业学院毕业设计(论文)译文用纸 第 5 页 共 21 页
连接于Avalon 总线的Avalon 外设是逻辑器件——无论片上还是片外的——它们进行着某种系统级 的任务,并通过Avalon 总线与其他的系统部件相通信。外设是模块化的系统部件,依赖于系统的需 要,可以在设计的时候增加或者移除。Avalon 外设可以是存储器、处理器,也可以是传统的外设器 件,如UART,PIO,定时器或总线桥。任何的用户逻辑都可以成为Avalon 外设,只要它满足本文 所述的提供与Avalon 总线接口的地址、数据及控制信号接口。连接于Avalon 总线的外设将被分配 专用的端口。除了连接于Avalon 总线的地址、数据及控制端口之外用户也可以自行定制端口。这些 于用户逻辑相连接的信号扩展了系统模块的应用。Avalon 外设要么是主外设,要么是从外设。主外 设可以于Avalon 上开启总线传输,其至少有一个连接于Avalon 总线模块的主端口。主外设也可以 有一个从端口其允许此设备接受其他连接于Avalon 总线的主设备开启的总线传输。而从设备只能响 应Avalon 总线传输,而不能够开启总线传输。像存储器,UART 这样的从设备,通常只有与Avalon 总线模块相连接的一个从端口。在SOPC 环境中,,区分以下Avalon 总线主设备/从设备的外设类型 是十分重要的。
名词及概念
许多与SOPC 相关的名词和概念都完全是新的,他们和传统的片外总线结构有着本质的不同。设计 者需要懂得这点,以便可以理解Avalon 总线规范。下面的名次及概念构成了一个理论化的框架,而 Avalon 总线规范就是建立在这一框架的基础上的。它们贯穿于整个文档。
总线周期
总线周期被定义为Avalon 主时钟的相邻上升沿之间的时间间隔,它是总线时钟周期的基本单元。总 线信 号时序参照于总线周期时钟。
SOPC Builder 软件及Avalon 总线的产生
SOPC Builder 是Altera 开发的一款系统生成和集成工具。SOPC Builder 所产生的片上电路系统模块 包括Avalon 总线、主外设和从外设。SOPC Builder 提供了图形化的用户接口,应用这种接口可以实 现向系统模块中添加主、从外设,配置外设及配置Avalon 总线将外设连接起来。这样,SOPC Builder 自动的创建并连接HDL 模块,便可以实现用户PLD 设计的每一个部分。
总线传输
Avalon 总线的一次传输是对数据的一次读/写操作,它可能持续一个或多个总线周期。Avalon 总线 所支 持的传输位宽为:一个字节(8 位),半个字(16 位)或一个字(32 位)。
流传输
流传输为“流主设备”和“流从设备”之间的连续性数据传输建立一个开放式的管道。 具有延迟的读传输:某些同步外设在开始第一次传输的时候需要延迟一些时钟周期,但在之后的传 输中 便可以在每一个时钟周期都返回数据。具有延迟的读传输增加了对这种同步设备的总线利用率。
带有延迟的读传输
有些同步设备在刚刚开始传输的时候,需要延迟几个时钟周期才能够完成其第一次读数据的过程, 而在之后的传输过程中就可以每一个周期返回一个数据。带有延迟的读传输可以增加这些同步设备 的带宽利用率。延迟性传输允许一个主设备发出读请求后,转而执行另一个无关任务,过一段时间 再接收数据。尽管之前的数据还没有接受到,这个无关的任务也可以发出另一次读请求。这有利于 进行连续标准地址的存取的指令存取操作和DMA 传输。这样,CPU 和DMA 主设备可以预读取其 需要的数据,所以这使得同步存储器保持活跃状态,并减少了平均存储延时。