Avalon 总线 时序 介绍
Avalon 总线广泛应用于外设和软核或者硬核交互,其时序简单明了,也非常适合用来作为划分模块的接口信号。本文结合quartus 关于 avalon 总线英文原版做简单介绍,重点理解时序即可。
1.Avalon的时钟和复位
这里没什么好讲的,时钟信号略,而对于复位信号,可能有三个选择:
NONE: 复位是异步信号
DEASERT : 复位发生异步,复位释放同步
BOTH: 复位释放和发生都是同步信号
2.avalon M-M接口
这个接口比较重要,这个接口一般用于读写,可用在主从之间的元件上。全名,Avalon Memory-Mapped,阿瓦隆内存映射接口。
先看一个图:
如上图所示,Avalon MM mastet 通过内部桥连接Avalon MM slave,就是主连接从,其次下方有很多设备,比如uart来讲,对于Avalon mm slave来讲,一端连接到桥上,另一端连接到真实的串口。其他外设均类似。
那么这个接口的时序是什么样子的呢?其实不同的外设,其时序也少许差别,不过大同小异,以下举几个例子说明该接口的时序:
E1:
如上所示:发出读请求read和地址address的同时需要看等待信号waitquest是不是高,若是高,则表示需要等待,若是低,则表示可以进行读操作。
之后过一定的时钟节拍,会返回读数据readdata和readdatavalid读数据信号。(比较简单,写也是如此,当然这只是我们比较熟悉的情况。)
E2:基于以上基础,请看下图,改图表示读请求有效之后,固定两个clk的延迟出读数据,可自行理解。
E3: 写突发操作
如上所示,在发出第一个写请求有效的同时(waitquest=0),会有burstcount=4和beginbursttransfer=1,这里burstcount表示此次写突发操作写几个
数,而beginbursttransfer表示第一个数,其他信号定义和之前类似,此处不再赘述,上图表示写突发操作为4个长度,这里需要注意的是,第一个数据在第一次waitquest=0,写第一个数据。
E4:读突发操作:和写类似。
E5:写容忍两个:
如上所示:即使waitquest信号等于1,由于设置可以容忍两个写数据,因此A1 和A2仍然可以写道slave里面。
就介绍这么多吧,还有一些信号没有介绍,笔者也没有遇到过,到时候在补充吧。
3.Avalon 中断接口
中断接口相对简单一些,当发生什么事件时,拉高该信号即可,但是有时候可能会有几个中断同时来,那么就需要一个优先级。
4.AvalonStreaming Interfaces ,简称Avalon ST接口
E1:当ready信号准备好后,便可以传输数据,其中通过valid信号来指示信号的正确性,通过error和channel来选择那个通道以及是否错误。
E2:读准备好延迟=1,读准备允许=2
如上所示:单ready=1时,由于有一个clk的延迟,因此需要等待一个clk后在传输数据,由于其ready的容忍是2,因此即使ready已经为0了,
user仍然可以传输两个数据D2 和 D3.
E3:包传输,包传输就是在数据传输的过程中,加入起始(start of packet)和结束指示信号(end of packet),其中也可以加入ready信号,
empty信号(有几个空,也就是无效),channel和错误信号,如下所示。
5.Avalon conduit 接口
用来导出作为和外部连接的接口或者给其他模块用。比如和外部sdram连接,或者和外部串口相连接。主要分为两类,比如给其他模块用的内部信号
和与外部真实物理器件相连接的信号。
6. Avalon 三态 conduit 接口,这里笔者也没怎么用过。。
总结:熟悉avalon MM和avalon ST总线的一些时序,很多IP核对user的接口都是基于avalon总线的,比如sdram ,ddr2,ddr3,uart,mac,方便user从另一个角度理解和使用IP核,实际使用IP时,可以参考仿真,快速熟悉接口时序,从而将该IP核使用起来。本文并没有将上述图中的信号的定义列出,如需要熟悉,请参考官方文档。
转载于:https://www.cnblogs.com/cofin/p/9972216.html
Avalon 总线 时序 介绍相关推荐
- 【Avalon总线】1.Avalon总线总体介绍
最近在学习Avalon总线相关的知识,所以在学习的过程中写下了这一系列的博文.文章主要是根据ALTERA公司的文档写的.文章中如有错误请指出,谢谢! 1 Avalon总线总体介绍 Avalon总线提供 ...
- Avalon总线基础介绍(数据手册版)之Avalon-MM接口
文章目录 Avalon-MM接口 Avalon-MM接口介绍 Avalon-MM接口信号描述 adress byteenable or byteenable_n read or read_n read ...
- Qsys自定义组件的开始-Avalon总线规范(中文)
学习FPGA这么长时间了,一直没有整理自己的学习内容,这回要把每一段时间的学习内容总结一下,就从自定义组件开始吧.一定要坚持下来呀!! Avalon 总线规范 参考手册 (Avalon从端口传输与 ...
- 【Avalon总线】4.avalon总线MM设备读写程序实例及分析
1 引言 本文将通过作者写的程序对avalon总线进行描述,相信会对avalon总线有更加深的认识. 2 模块连接和源代码 图1给了编写的模块和NIOS核之间的互联关系.(图中只示出了与本文相关的模块 ...
- niosII的那些事--基于AVALON总线的IP核定制
简介 NIOS II是一个建立在FPGA上的嵌入式软核处理器,除了可以根据需要任意添加已经提供的外设外,用户还可以通过定制用户逻辑外设和定制用户指令来实现各种应用要求.这节我们就来研究如何定制基于Av ...
- 基于AVALON总线的IP核定制 PWM
简介 NIOS II是一个建立在FPGA上的嵌入式软核处理器,除了可以根据需要任意添加已经提供的外设外,用户还可以通过定制用户逻辑外设和定制用户指令来实现各种应用要求.这节我们就来研究如何定制基于Av ...
- 【FPGA黑金开发板】NIOSII那些事儿--基于AVALON总线的IP定制(十七)
声明:本文为转载作品,版权归本博文作者所有,如需转载,请注明出处http://www.cnblogs.com/kingst/ 简介 NIOS II是一个建立在FPGA上的嵌入式软核处理器,除了可以根据 ...
- 基于51单片机实现模拟IIC总线时序
最近用到测量光线的模块BH1750FVI时需要用到IIC总线操作, 于是就又费功夫学习了下, 基本上算是了解了, 所以呢, 就用51的IO口, 模拟出了总线时序, 并能正确操纵需要用IIC总线访问地一 ...
- i2c通信的详细讲解_【博文连载】SCCB(I2C)初始化时序介绍
在正式开始OV7725视频采集实现之前,Bingo不得不先讲解一下OV7725的寄存器配置接口.OV7725上电会默认输出YUV422格式的视频流,但我们希望传感器能够按照我们预期的模式工作,我们需要 ...
最新文章
- 【lidar】基于YOLO的3D目标检测(激光雷达点云)课程设计
- 将 iPhone 定位设置在法国,手机速度就能迅速提升?
- 双11个性化推荐背后,阿里云“舜天”如何应对百亿次挑战?
- PLSQL_性能优化系列17_Oracle Merge Into和Update更新效率
- HID接口设备-硬件要求
- php 1 打印出来,php 怎么强制打印错误
- 基于MFC和OpenCV的摄像机定标与立体匹配测试程序
- 原生ajax如何跨域,原生ajax 如何解决cors跨域问题
- 制作一个实时渲染的markdown编辑器YaliEditor
- 三菱PLC安装报错“工程初始化失败”处理方法
- 城市规划CAD影像底图快速导入方法
- 电脑显示RPC服务器不可用是什么意思,rpc服务器不可用怎么办?rpc服务器不可用是什么意思...
- linux点亮硬盘locat,Linux中locate whereis which find grep5种查询命令总结
- 计算机通信中应用的调制解调与无线电通信,计算机通讯中的一对搭档——调制解调器和通讯软件...
- java aria,ARIA 标签和关系
- 公布Windows版Flutter
- 爬虫、蜘蛛、机器人有什么区别?
- nms修改为soft nms
- 优秀web前端工程师必备_优秀的Web工程师的技能和素质
- 数据库:一张表update另外一张表实践