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. Python面试题之集合推导式、字典推导式

    集合推导式 集合推导式(set comprehensions)跟列表推导式也是类似的, 唯一的区别在于它们使用大括号{}表示. Code: sets = {x for x in range(10)} ...

  2. 在Windows Server 2008 R2上打开ping的方法

    默认安装完Windows Server 2008 R2后,从外面ping服务器的地址是ping不通的,原因是服务器防火墙默认关闭了ICMP的回显请求.需要按照如下方法打开: 在服务器管理器中选择“配置 ...

  3. jetbrains goland 跳到上一个光标处

    查了下是 :Ctrl + Alt + 左右 mac下面是:Command+ Alt + 左右键 但是我用下来是切上面打开文档页 摸索了下是:Ctrl +Win+ Alt + 左右  我的键的映射是De ...

  4. 网络性能监测工具smokeping

    smokeping简介: smokeping是rrdtool的作者Tobi Oetiker的作品,所以它在图形显示方面有很大优势,也是一个很有特点的opensource工具:多种探测方式,包括fpin ...

  5. How to create and manage configuration backups in Internet Information Services 7.0

    https://support.microsoft.com/en-us/help/954872/how-to-create-and-manage-configuration-backups-in-in ...

  6. C++中map的用法

    map的特性是,所有元素都会根据元素的减值自动被排序.map的所有元素都是pair,同时拥有实值(value)和键值(key).pair的第一个元素会被视为键值,第二个元素会被视为实值.map不允许两 ...

  7. 支付宝app支付java后台流程、原理分析(含nei wang chuan tou)

    java版支付宝app支付流程及原理分析 本实例是基于springmvc框架编写     一.流程步骤         1.执行流程           当手机端app(就是你公司开发的app)在支付 ...

  8. Python 文本相似度分析

    环境 Anaconda3 Python 3.6, Window 64bit 目的 利用 jieba 进行分词,关键词提取 利用gensim下面的corpora,models,similarities ...

  9. C++(十八) — 内存模式、堆和栈

    1.内存模式 一个程序执行时,先复制到内存,然后CPU逐句读取指令执行. 每个存储单元存放一个字节(8bit)数据,每个有一个唯一的地址,地址是顺序编码的.比如:一台计算机256MB内存,则有256* ...

  10. day5-shutil模块

    一.概述 我们通过python操作文件时,除正常读写操作外,有时还需要进行拷贝.删除.打包等操作,虽然os模块提供了部分功能,但还是不够完善,这里要讲讲专业的高级的文件,文件夹,压缩包处理模块shut ...