关于 avalon总线理解(整理)

1,一个基于Avalon接口的系统会包含很多功能模块,这些功能模块就是Avalon存储器映射外设,通常简称Avalon外设。所谓存储器映射外设是指外设和存储器使用相同的总线来寻址,并且CPU使用访问存储器的指令也用来访问I/O设备。为了能够使用I/O设备,CPU的地址空间必须为I/O设备保留地址。

2,Avalon外设分为主外设和从外设,能够在Avalon总线上发起总线传输的外设是主外设,从外设只能响应Avalon总线传输,而不能发起总线传输。主外设至少拥有一个连接在Avalon交换架构上的主端口,主外设也可以拥有从端口,使得该外设也可以响应总线上其它主外设发起的总线传输。

3,Avalon交换架构是一种可自动调整的结构,随着设计者不同设计而做出最优的调整。可以看到外设和存储器可以拥有不同的数据宽度,并且这些外设可以工作在不同的时钟频率。Avalon交换架构支持多个主外设,允许多个主外设同时在不同的从外设进行通信,增加了系统的带宽。这些功能的实现都是靠Avalon交换架构中的地址译码、信号复用、仲裁、地址对齐等逻辑实现的。

4,Avalon接口定义了一组信号类型(片选、读使能、写使能、地址、数据等),用于描述主/从外设上基于地址的读写接口。Avalon外设只使用和其内核逻辑进行接口的必需的信号,而省去其他会增加不必要的开销的信号。

5,Avalon的信号类型为其它的总线接口提供了一个超集,例如大多数分离的SRAM、ROM和Flash芯片上的引脚都能映射成Avalon信号类型,样就能使Avalon系统直接与这些芯片相连接。类似地,大多数Wishbone的接口信号也可以映射为Avalon信号类型,使得在Avalon系统中集成Wishbone的内核非常简单。

6,Avalon的主端口和从端口之间没有直接的连接,主、从端口都连接到Avalon交换架构上,由交换架构来完成信号的传递。在传输过程中,主端口和交换架构之间传递的信号与交换架构和从端口之间传递的信号可能有很大的不同。所以,在讨论Avalon传输的时候,必须区分主从端口。

7,avalon主端口和从端口的信号类型说明

从端口信号1

从端口信号2

主端口信号1

主端口信号2

8,表中的信号类型都是高电平有效。Avalon接口也提供每个信号类型的低电平有效的版本,在信号类型名后添加 _n 来表示。例如irq_n、read_n等。这对和那些低电平有效的片外逻辑相接口时非常有用。

9,Avalon接口规范没有对Avalon外设上的信号指定命名的规则,Avalon外设上的信号的名字可以与信号类型名相同,或者也遵循系统级的命名规则。

10,也能够将片外的异步外设,比如片外存储设备,同系统交换架构相接口,但需要一些设计上的考虑。由于Avalon交换架构的同步操作,Avalon信号只在Avalon接口时钟的时间间隔发生翻转。而且,如果异步的信号直接同Avalon交换架构的输入相连,设计者要确保信号在时钟的上升沿是稳定的。

11,Avalon接口没有固定的或者最高的性能。接口是同步的,并且可以被交换架构提供的任意频率的时钟驱动。最高性能取决于外设的设计和系统的实现。 不同于传统的共享总线实现的规范,Avalon接口没有指定任何的物理和电气特性。

12,一个主从端口对中的主端口和从端口可以有不同的传输属性。Avalon交换架构同主/从端口通信时,使用该端口指定的属性,并且必要时要进行从主端口到从端口的属性转换。这样,Avalon外设可以独立于系统中其它的外设属性进行设计。

13,动态地址对齐指的是具有不同数据的主从端口对之间进行传输时,Avalon交换架构动态管理传输的数据的服务。当主端口使用动态地址对齐方式寻址从端口时,所有从端口的数据在主端口的地址空间连续地按字节对齐。 如果主端口数据宽度比从端口宽,主端口的高位字节对应从端口地址空间的下一个地址。例如,32位的主端口使用动态地址对齐方式从16位的从端口读取数据,Avalon交换架构在从端口这侧执行两次读传输,然后提供32位的从端口数据给主端口。 如果主端口的数据宽度比从端口窄,则Avalon交换架构适当地处理从端口的字节段。在主端口读传输时,Avalon交换架构只提供从端口适当的字节段给主端口。在主端口写传输时,Avalon交换架构在从端口这侧,自动地置byteenable信号有效,将数据写到适当的字节段。

14,动态地址对齐的例子

15,当主端口使用本地地址对齐方式寻址从端口,所有从端口数据和主端口地址边界对齐。 当主端口从一个较窄数据宽度的从端口读取数据,从端口的数据比特位映射到主端口数据的低比特位中去,而主端口的数据高比特位补零。在传输时,高比特位被忽略。 例如,16位的主端口读8位的从端口,readdata信号是0x00XX的形式,这里XX代表有效的数据。主端口不能使用本地地址对齐来访问数据宽度比自己宽的从端口。

时间: 2024-12-24 00:54:28

关于 avalon总线理解(整理)的相关文章

Qsys自定义组件的开始-Avalon总线规范(中文)

学习FPGA这么长时间了,一直没有整理自己的学习内容,这回要把每一段时间的学习内容总结一下,就从自定义组件开始吧.一定要坚持下来呀!! Avalon 总线规范 参考手册   (Avalon从端口传输与流模式从端口传输部分)  //*************************************    http://www.altera.com 免责声明: 本手册原自Altera 公司发布的<Avalon Bus Specification-Reference Manual>,一切权力

Avalon总线的地址对齐与NIOS编程

首先关于地址对齐的概念我不详述了,大家可以参考这篇文章:Avalon总线的地址对齐:Dynamic Addressing和Native Addressing. 假设我们定制了一个外设,数据宽度是32位,地址是2位.如果我们想让地址线干点其他的事,而不是传地址,例如: 1 if(cs&wr) 2 begin 3 case(addr) 4 2'b00: //自定义 5 2'b01: //自定义 6 endcase 7 end 那在Nios EDS中,如何确定addr呢?也就是说我们使用IOWR_32

Avalon总线的地址对齐与EDS编程

首先关于地址对齐的概念我不详述了,大家可以参考这篇文章:Avalon总线的地址对齐:Dynamic Addressing和Native Addressing. 假设我们定制了一个外设,数据宽度是32位,地址是2位.如果我们想让地址线干点其他的事,而不是传地址,例如: 1 if(cs&wr) 2 begin 3 case(addr) 4 2'b00: //自定义 5 2'b01: //自定义 6 endcase 7 end 那在Nios EDS中,如何确定addr呢?也就是说我们使用IOWR_32

对于linux下system()函数的深度理解(整理)

对于linux下system()函数的深度理解(整理) (2013-02-07 08:58:54) 这几天调程序(嵌入式linux),发现程序有时就莫名其妙的死掉,每次都定位在程序中不同的system()函数,直接在shell下输入system()函数中调用的命令也都一切正常.就没理这个bug,以为是其他的代码影响到这个,或是内核驱动文件系统什么的异常导致,昨天有出现了这个问题,就随手百了一下度,问题出现了,很多人都说system()函数要慎用要少用要能不用则不用,system()函数不稳定?

Avalon总线学习 ---Avalon Interface Specifications

Avalon总线学习 ---Avalon Interface Specifications 1.Avalon Interfaces in a System and Nios II Processor 2.Avalon Interfaces in a System Design and External Processor 3.传统的读和写时序图 4.在slave端,读和写,被主设备设置了wait信号 5.Piplined 读数据,Latency可调 6. 7 8. 9. 10 11 12 13

avalon总线的特点

avalon总线的特点.avalon地址总线是数据选择器哦!亲们,请注意这一点! 来源:http://baike.baidu.com/view/1817735.htm#71-hi-1-99934-55efc26b7dc8814dd413e54791f596e8

接口与总线 考点整理

说明 以下内容为个人整理,答案也是个人回答,不一定对,所以你对答案有任何问题,都欢迎与我讨论. Q01:51单片机P0.P1.P2.P3口功能作用?答: P0可做地址口的低8位也可以做数据口和I/O口 P1可做普通的I/O口 P2除了做I/O口,也是作为地址口的高8位(总共16位) P3 既可以是普通IO口,也可以是外部中断.定时.外部输入的端口 Q02:当串口发送一个数据或接收数据时,哪两个位会置位?答: 接收数据时,RI 会置位 发送数据时,TI 会置位 Q03:81单片机的累加器是什么?答

R函数理解整理

R语言melt/cast.一个图搞定数据整合和拆分 ? ? R语言数据处理方法~小结(转) ? ? 来自 <https://www.cnblogs.com/payton/articles/5986496.html> 文章目录 1. R自带函数 2. reshape2数据重构 3. dplyr 4. tidyr 5. 字符串处理 1. R自带函数 1.1 转置 使用函数t()可对一个矩阵或数据框进行转置,对于数据框,行名将变成变量(列)名. 数列array进行维度转换 aperm 1.2 整合数

altasmi_parallel宏功能有avalon总线接口?

http://d.dxy.cn/preview/8341490 http://d.dxy.cn/preview/8341491 http://d.dxy.cn/preview/8341492 http://d.dxy.cn/preview/8341493 http://d.dxy.cn/preview/8341494 http://d.dxy.cn/preview/8341496 http://d.dxy.cn/preview/8341497 http://d.dxy.cn/preview/83