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代表有效的数据。主端口不能使用本地地址对齐来访问数据宽度比自己宽的从端口。

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

  1. 每天进步一点点------SOPC的Avalon-MM IP核(二) AVALON总线的IP核定制

    简介 NIOS II是一个建立在FPGA上的嵌入式软核处理器,除了可以根据需要任意添加已经提供的外设外,用户还可以通过定制用户逻辑外设和定制用户指令来实现各种应用要求.这节我们就来研究如何定制基于Av ...

  2. 关于AVALON总线动态地址对齐

    在NIOS的使用中,我们往往要用到自定义外设,然后通过AVALON交换架构和NIOSII进行通信. AVALON总线,其实是一种交换架构的协议,在自定义外设挂在AVALON总线上时,一定要注意地址对齐 ...

  3. Avalon总线学习 ---Avalon Interface Specifications

    Avalon总线学习 ---Avalon Interface Specifications 1.Avalon Interfaces in a System and Nios II Processor ...

  4. Avalon总线概述

    Nios系统的所有外设都是通过Avalon总线与Nios CPU相接的,Avalon总线是一种协议较为简单的片内总线,Nios通过Avalon总线与外界进行数据交换. Avalon总线接口分类 可分为 ...

  5. 每天进步一点点------SOPC的Avalon-MM IP核(一) avalon总线的信号时序

    在SOPC中自定义外设时.可以设置avalon总线的信号时序,以满足外设的要求.一般情况下,可以设为: 其中setup为read和write信号之前,address和writedata信号提前建立的时 ...

  6. avalon 总线时序关系理解

    对于读,等待时间指的是从端口捕获数据的时间相对于read信号的延时 建立时间指的是read信号相对于chipselect和addr的延时时间 对于写,等待时间指的是相对于非等待情况下各个信号的延时时间 ...

  7. javascript数据类型理解整理

    起因:关于数据类型这块,自己看了很多遍相关的资料,每次查看和实践都有一些体会和理解:但又感到没有理解透,总是差一点,最近又在看这块的内容,加上最近的积累,做个相关笔记 ECMAScript数据类型:1 ...

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

    原谅: http://blog.sina.com.cn/s/blog_8043547601017qk0.html 这几天调程序(嵌入式linux),发现程序有时就莫名其妙的死掉,每次都定位在程序中不同 ...

  9. 转:对于linux下system()函数的深度理解(整理)

    这几天调程序(嵌入式linux),发现程序有时就莫名其妙的死掉,每次都定位在程序中不同的system()函数,直接在shell下输入system()函数中调用的命令也都一切正常.就没理这个bug,以为 ...

随机推荐

  1. maven私服客户端配置

    <?xml version="1.0" encoding="UTF-8"?> <settings xmlns="http://mav ...

  2. samba 4.7.16 安装配置详解

    系统:Centos 7.4 x64位 服务版本:samba-4.7.1.samba-client-4.7 Samba 简介 Samba 是在Linux和UNIX系统上实现SMB协议的一个免费软件,由服 ...

  3. ASP.MVC 项目中使用 UEditor 文本编辑器

    1.下载UEditor 源文件,并导入项目中 2.添加项目中需要使用的CSS和JS //Ueditor 文本编辑器必备的StyleBundle和ScriptBundle StyleBundle ued ...

  4. C++中int转为char 以及int 转为string和string 转int和字符串的split

    1.对于int 转为char 直接上代码: 正确做法: void toChar(int b) { char u; ]; _itoa( b, buffer, ); //正确解法一 u = buffer[ ...

  5. USACO 简易题解(蒟蒻的题解)

    蒟蒻难得可以去比赛,GDOI也快到了,还是认真刷题(不会告诉你之前都在颓废),KPM 神犇既然都推荐刷USACO, 辣就刷刷. 现在蒟蒻还没刷完,太蒟刷得太慢,so 写了的搞个简易题解(没代码,反正N ...

  6. JSP数据交互(一)

    1.JSP内置对象 请求对象:request 输出对象:out 响应对象:response 应用程序对象:application 会话对象:session 页面上下文对象:pageContext 页面 ...

  7. Pandas数据结构

    Pandas处理以下三个数据结构 - 系列(Series) 数据帧(DataFrame) 面板(Panel) 这些数据结构构建在Numpy数组之上,这意味着它们很快. 维数和描述 考虑这些数据结构的最 ...

  8. docker 跨主机网络:overlay 简介

    简介 docker 在早前的时候没有考虑跨主机的容器通信,这个特性直到 docker 1.9 才出现.在此之前,如果希望位于不同主机的容器能够通信,一般有几种方法: 使用端口映射:直接把容器的服务端口 ...

  9. Java中如何指定跳出多重嵌套循环

    今天做项目优化涉及到一个跳出指定多重嵌套循环的问题,觉得还是记录一下那么在Java中如何跳出当前的多重嵌套循环? 方法一:可以在需要的循环语句前定义一个标号,然后在里层循环体的代码中使用带有标号的br ...

  10. 解决Python字符串处理出现错误UnicodeDecodeError: ‘ascii’ codec can’t decode byte 0xe4 in position 108: ordinal not in range(128)

    今天做课程设计遇到了和数据库交互的地方,sqlite数据库设置成utf-8格式编码,插入到数据库中是正确的,但是当读取出来的时候就会出错,原因就是Python的str默认是ascii编码,搜集网上的资 ...