Avalon总线学习

Avalon总线学习

avalon总线可以分为:

  • Avalon clock interface

  • Avalon reset interface

  • Avalon Memory mapped interface

  • Avalon iterrupt interface

  • Avalon streaming interface

  • Avalon tri-state conduit interface

  • Avalon conduit interface

1、Avalon clock interface

这是一个时钟接口,所有的avalon接口都是同步的,都需要有一个时钟,在qsys中,我们每添加一个新的IP核,都需要将它与时钟连接上。自定义IP核时,可以定义一个时钟接口,也可以定义多个时钟接口,时钟接口可以时输入,也可以是输出,就比如PLL锁相环,有输入时钟,又有输出时钟。下图是锁相环的接口图

image-20240311222307514

我们重点关注clock sink输入接口和clock source输出接口。

1)clock sink信号类型:

信号宽度方向是否必选描述
clk1input一时钟信号,为内部逻辑和其他接口提供同步

在qsys中clock sink的属性:

image-20240311223033325

只有一个clock rate,如果为0,那么clock rate无效,如果不为0并且连接的时钟源不是指定的频率,那么qsys则发出警告,一般我们这里采用默认设置就可以了。

2)clock source信号类型

信号宽度方向是否必选描述
clk1output一个输出时钟信号

clock sink是用于整个内部逻辑和其他接口的时序

clock source就是用于外部逻辑和其他接口的时序。

属性如下:

  • associaated direct clock

    任何一个同步的接口都要依附一个时钟,那么这个依附的时钟就是associaated direct clock ,比如双口fifo,我们的输入端口依附的时钟就是输入时钟,我们的输出端口依附的就是输出时钟。

image-20240311224004582

  • clock rate

    表示频率,使用默认设置即可

image-20240311224250374

  • clock rate known

表示时钟频率是否已经知道,如果已经知道,这个信息在系统中可以用于自定义其他 组件

image-20240311224449242

2、Avalon reset interface

这是又给复位接口,avlaon接口他们的复位都是连接在一起的,只要nios ii处理器复位了,那么所有的ip也会一起复位。和时钟接口一样可以分为reset sink和reset source。

信号类型

信号宽度方向是否必选描述
reset、reset_n1input必选复位信号,reset高电平有效,reset_n低电平有效
reset_req1input可选复位请求信号

信号属性

1)reset sink的信号属性:

associateed clock

关联的同步信号,如果我们自定义IP核将输入时钟接口命名为clk,那么此时同步到该接口的时钟名称就是clk,如果我们命名为clock那么此时同步到该接口的时钟名称就是clock。

image-20240311225035474

  • synchronous edges

表示reset输入需要同步类型,none选项表示不服位;deassert选项表示异步复位;both选项表示同步复位。

image-20240311225543627

2)reset source

信号宽度方向是否必选描述
reset、reset_n1output必选复位信号,reset高电平有效,reset_n低电平有效
reset_req1output可选复位请求信号

属性:和reset sink差不多

image-20240312161913465

3、Avalon Memory mapped interface

也就是Avalon-MM,它是一个地址映射接口,可以通过地址读写数据,这个接口非常的常用,也是一个非常重要的接口,疑问我们后面自定义用户外设的化,也是基于这个接口去构建的。采用全同步时序。

Avalon-MM总线是一种主从式的传输方式,由一个主控端外设发起并控制传输的过程,而从属端外设响应经由总线模块发来的信号完成整个传输。Avalon-MM总线不会因为总线被占据而延误传输的时间,有逻辑仲裁,可以遵循先来后到的规则,也可以遵循谁重要谁先访问的规则。image-20240312162658595

也就是nios cpu可以跟多个外设建立一个单独的通道,当多个主机访问同一个slave时,由仲裁模块决定谁先访问.

信号类型以及信号流向:

image-20240312163100949

Avalon-MM信号可以分为主端口信号和从端口,每个单独的主端口或从端口使用的信号类型由外设的设计决定.

属性:

image-20240314201453283

属性名称描述
address units为地址信号指定单位
associated clock同步到该接口的时钟名称
associated reset同步到该接口的复位名称
Bits per symbol定义每个符号位的位数
Burstcount ubits为burstcount信号指定单位
Explicit address span明确地址范围
setup数据建立时间
read wait读取等待时间
write wait写入等待时间
Hold数据保持时间
Timing units为setup,hold,write wait和read wait指定单位
Read latenccy读延时
Maximum pending read transactions在从设备中:这个参数是从设备在等候未读的队列最大数。在主设备中:表示主设备生成的未解决的读事件数量
Burst on rurst boundaries only写信号
LineWrap Bursts写进来的数据

传输方式有:基本传输、流水线传输、突发传输的。流水线传输地址需要多次发送,而突发传输只需要发送1次(首地址)。

Avalon-MM的传输时序:

同种类型的主端口与从端口传输在时序上基本是一致的,其区别仅在于主端口传输时由主端口外设驱动总线模块,而从端口传输是由总线模块驱动从端口外设。

  • Avalon-MM从端口固定延时的写基本传输时序图

    当时钟的上升沿到来的时候,拉高write信号,同时给出写地址address和要写的数据writedata。信号的流向可以参考上图:信号类型以及信号流向

image-20240314200835015

将write wait设置为2,就变成下图,write信号延迟了2个时钟周期,可以给外设充分的响应时间。

image-20240314203104586

  • 可变延迟的写基本传输时序

    可变延迟传输和固定延迟传输的区别在于是否存在waitrequest信号。

    image-20240314203345358

当waitrequest信号为低时,且write为高时,在时钟上升沿地址和数据才能被传输。

  • 流水线传输时序

    下面时序是主机读取从机的数据,主机将read拉高,从机发送低电平的waitrequest信号给主机时,主机将地址address信号传输给从机,从机返还数据给主机的同时把readdatavalid信号拉高,代表数据有效。

image-20240314203706193

在流水线时序传输时序中,需亚奥设置Maximum pending read transactions信号属性,这个属性时表示这个模块最大能接受的流水量。

  • 写突发传输时序

    只需要给出初始地址address,和突发长度,地址能依次累加写入数据。

image-20240314204731121

image-20240314205007164

  • 读突发传输

    read:主机->从机,拉高,同时将address地址和burstcount突发长度给从机,告诉从机从哪里开始读取数据,读取几个数据。

    readdatavali:从机–>主机,拉高时,代表从机返还数据给主机,主机可以开始接收数据了。

    在这里插入图片描述

4、Avalon interrupt interface

这一一个中断接口,自定义外设组件中需要使用中断功能的时候,我们就可以通过这个接口来实现。

1)输入:interrupt receiver

信号类型位宽是否必选描述方向
irq1-32irq是n位的矢量,每个位直接对应一个IRQ发送器,没有优先级在内的呈现输入
  • 属性
  • image-20240314210553370

2)输出:interrupt sender

信号类型位宽是否必选描述方向
irq、irq_n1中断请求信号。当从器件需要接收时使irq有效output
  • 属性:

image-20240314212344299

中断号0的最高,然后是1,依次递推。

5、Avalon streaming interface

它是一个流接口,streaming就是流水的意思,它支持单向数据流,包括数据包,dsp数据等等,avalon-st接口与avalon-mm接口的区别是非常明显的,avalon-mm接口主要用于sopc控制流传输或者简单的数据流传输,而avalon-st接口则主要用于sopc设计中高速数据流的传输,二者可以说是相辅相成的,搭配使用可以清晰的分离系统内的控制流核数据流,显著地提高系统整体地可靠性核运行效率。Avalon-ST是一种单向点对点的高速接口。

Avalon-MM用于qsys控制流传输或者简单的数据流传输
Avalon-ST适用于一些传递速度要求较高,没有地址要求的应用方面

Avalon-MM包含两种接口source端口和sink端口,数据流向

在这里插入图片描述

  • 信号类型:

image-20240314213048046

  • 属性:

image-20240314213134240

注意first symbol in high-order bits选项:

image-20240314213343306

解释一下这个选项的含义:

image-20240314213657135

假设data bits per symbol=16,将它分为symbol0、symble1、symbol2和symbol3四组,如果选中了first symbol in high-order bits,那么symbol0就在最高位,如果没有选中,那么symbol0就会在最低位。

时序图:valid信号为高就可以采集数据了,此时数据有效。

image-20240314214438504

有反馈信号ready的基本传输连接示意图:

image-20240314214740256

因为有ready信号,我们就可以使用到于ready信号相配合使用的ready latency信号属性。如下图,当ready为低的时候,sink是不接受数据的,只有当ready、

valid同时为高是,sink接口才可以接收数据。

image-20240314214937793

再看一个例子:当ready信号有效时,valid信号等待了2个时钟周期才有效,此时sink才会接收source发送的数据。

image-20240314215127567

2)包传输

在Avalon-ST中,我们使用SOP和EOP来指示一个包。sop就是start of packet ,eop就是end of packet。

image-20240314215517584

时序图:

startofpacket和endofpacket的值仅在valid信号拉高时有意义。当startofpacket为高时,数据就开始传输,当endofpacket为高时,数据包停止传输。当两次包传输之间没有空闲期时,startofpacket信号可以紧跟一次包传输的endofpacket信号。注意当ready信号和valid信号同时为高时才开始传输数据。

image-20240314215539223

在看一下其他信号:empty\channel\error

image-20240314220233652

由于使用了channel信号,所以需要设置maximun channel信号属性。maxinmum channel就是用来说明数据接口支持的最大通道数。

image-20240314220827725

6、Avalon tri-state conduit interface

简称Avalon-TC,它是一个三态导管接口。是为了驱动外围组件地片上控制器而设计地。由于多重外围设备可以通过该接口共享数据,地址核控制引脚,因此它能节约FPGA引脚。一个点到点的接口。

altera提供的关于avalon三态导管接口的IP核:

generic tri-state controller、tri-state conduit bridege、tri-state conduit bridge translator、tri-state conduit pin shaarer

7、Avalon conduit interface

它是一个单纯地导管接口,该接口可以将Qsys系统中地信号或者信号组连接到设计中的其他模块或者FPGA的管教上,比如我们将PIO IP核的引脚引出Qsys系统,然后分配给LED管脚,或者其他FPGA管脚。

image-20240314222721151

属性

image-20240314222817145

--晓凡  2024314日于武汉书

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.kler.cn/a/274402.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

杨氏矩阵的查找(复杂度<O(N))

题目: 解释:时间复杂度小于O(N)即不要一个一个的去遍历查找。 思路: 一个33的二维数组如图所示: 一:先找到一个最关键的数字,3(下标为0,2) 关键数的关键之处在于(处于…

SpringBoot + MyBatisPlus分页查询

文章目录 1.思路分析2.分页查询后端实现1.com/sun/furn/config/MybatisConfig.java 注入MyBatisPlus分页拦截器2.com/sun/furn/controller/FurnController.java 添加方法3.postman测试 3.分页查询前端实现1.src/views/HomeView.vue 引入分页导航条组件2.src/views/HomeView.vue…

外包干了6天,技术明显进步。。。

我是一名大专生,自19年通过校招进入湖南某软件公司以来,便扎根于功能测试岗位,一晃便是近四年的光阴。今年8月,我如梦初醒,意识到长时间待在舒适的环境中,已让我变得不思进取,技术停滞不前。更令…

springboot企业级抽奖项目-整体展示

项目地址 GitHub - kiorr/lottery: 企业红包雨项目 star截图q:3353441618可以领取资料 原型效果 前台 后台 业务分析 项目介绍 项目概述 京东的红包雨大家可能都参与过,在某段时间内随机发放不同的红包 本项目为一个通用的红包雨模式抽奖系统&…

腾讯云服务器多少钱一个月?5元1个月,这价格没谁了

2024腾讯云服务器多少钱一个月?5元1个月起,腾讯云轻量服务器4核16G12M带宽32元1个月、96元3个月,8核32G22M配置115元一个月、345元3个月,腾讯云轻量应用服务器61元一年折合5元一个月、4核8G12M配置646元15个月、2核4G5M服务器165元…

linux单机部署hadoop

1.下载安装包 https://archive.apache.org/dist/hadoop/common/ 2.上传压缩 3.修改配置文件 1)设置JDK的路径 cd /usr/local/software/hadoop-3.1.3/etc/hadoop vi hadoop-env.sh export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.402.b06-1.el7_9.x86_64/ 查看…

RK3588_Qt交叉编译环境搭建

buildroot编译 进入 /home/linux/plat/rk3588/sdk/buildroot 目录下,执行 Source ./envsetup.sh 选择具体平台编译,后再执行make编译 /home/linux/plat/rk3588/sdk/buildroot/output/OK3568/images 生成的rootfs.ext2镜像重新烧写到rk3568开发板中&…

简单对已有云服务器进行linux环境搭建以及共享服务器

前言: 外壳程序:Xshell7 云服务器:华为云 服务器操作系统:centos7 1.云服务的设置(这里购买的华为云,阿里腾讯都可以) 区域尽量选择距离所处地距离自己最近的区域。镜像这里选择的为centos7.…

流畅的Python(二十一)-类元编程

一、核心要义 1.类元编程时指在运行时创建或定制类的技艺 2.类是一等对象,因此任何时候都可以使用函数新建类,而无需使用class关键字 3.类装饰器也是函数,不过能够审查、修改,甚至把被装饰的类替换为其它类。 4.元类(type类的子类)类编程…

框架篇常见面试题

1、Spring框架的单例bean是线程安全的吗? 2、什么是AOP? 3、Spring的事务是如何实现的? 4、Spring事务失效的场景 5、SpringBean的声明周期 6、Spring的循环依赖 7、SpringMVC的执行流程 8、SpringBoot自动配置原理 9、Spring常见注解

mysql重构

力扣题目链接 列转行 SELECT product_id, store1 store, store1 price FROM products WHERE store1 IS NOT NULL UNION SELECT product_id, store2 store, store2 price FROM products WHERE store2 IS NOT NULL UNION SELECT product_id, store3 store, store3 price FROM p…

Livox激光雷达 mid360 跑 fastlio2 - 流程记录

mid360 跑 fastlio2 一、配置 mid360 环境1.1、主机配置静态IP为192.168.1.501.2、Livox-SDK21.3、Livox_ros_driver2二、Fast-lio22.1、下载源码2.2、修改代码2.3、编译、运行 提示一下,如果在一些板上(比如rk3399,或者是树莓派 &#xff0…

晶圆制造过程中常用载具的类型

晶圆载具用于硅片生产、晶圆制造以及工厂之间晶圆的储存、传送、运输以及防护。晶圆载具种类很多,如FOUP用于晶圆制造工厂中晶圆的传送;FOSB用于硅片生产与晶圆制造工厂之间的运输;CASSETTE载具可用于工序间运送以及配合工艺使用。 OPEN CASSETTE OPEN CASSETTE主要在晶圆…

QT自定义带参数信号与槽函数

我的软件界面是这样的,点击图标按钮后进入子项的参数配置。 由于按钮众多,每个按钮都有点击事件,一个个去写是在太多麻烦,而且我的这个配置软件各个子项的参数配置页面基本是差不多的,只是传递的参数有差异而已。 通过…

PHP+MySQL开发组合:多端多商户DIY商城源码系统 带完整的搭建教程以及安装代码包

近年来,电商行业的迅猛发展,越来越多的商户开始寻求搭建自己的在线商城。然而,传统的商城系统往往功能单一,无法满足商户个性化、多样化的需求。同时,搭建一个功能完善的商城系统需要专业的技术团队和大量的时间成本&a…

【FPGA】摄像头模块OV5640

本篇文章包含的内容 一、OV5640简介1.1 基本概述1.2 工作时序1.2.1 DVP Timing(数据传输时序)1.2.2 帧曝光工作模式 1.3 OV5640 闪光灯工作模式1.3.1 Xenon Flash(氙灯闪烁)模式1.3.2 LED 1&2 模式1.3.3 LED 3模式1.3.4 手动开…

【ESP32接入国产大模型之MiniMax】

1. MiniMax 讲解视频: ESP32接入语言大模型之MiniMax MM智能助理是一款由MiniMax自研的,没有调用其他产品的接口的大型语言模型。MiniMax是一家中国科技公司,一直致力于进行大模型相关的研究。 随着人工智能技术的不断发展,自然语…

Python入门(小白友好)

知识图谱 搭建环境 安装Python:Download Python | Python.org 安装PyCharm:Download PyCharm: The Python IDE for data science and web development by JetBrains 注意:专业版本是收费的,新手小白使用社区版(community)即可 创建第一个项目: 一些PyCharm的设置(也适用…

Springboot和Spring Cloud版本对应

Spring在不断地升级,各个版本存在一些不兼容的地方,为了避免出现问题,最好注意使用正确的版本。 官网的对应关系:https://start.spring.io/actuator/info 如下图: 下面附一下创建项目的工具: Spring官方…
最新文章