目录
AXI4和AXI4-Lite、AXI4-Stream接口信号
AXI(Advanced eXtensible Interface高级可扩展总线)是一种总线协议
AXI4包含3种类型的接口:
1)AXI4:主要面向高性能地址映射通信的需求;(突发数据)(地址映射模式)
2)AXI4-Lite:是一个轻量级的,适用于吞吐量较小的地址映射通信总线;(无突发)
(地址映射模式)
3)AXI4-Stream:面向高速流数据传输(流模式)

可以挂载多个master和slave ,互相交互信息
1)高效:通过标准化的AXI接口,开发者只需要学习一种IP核的通讯协议即可;
2)易用:针对具体应用提供合适的接口协议。
AXI4:面向地址映射的接口,在单地址传输的情况下最大允许256个时钟周期的数据突发长度;
AXI4-Lite:一个轻量级的地址映射单次传输接口,占用较少的资源;
AXI4-Stream:去掉了地址传输的功能,允许无限制的数据突发传输,无需考虑地址映射。
3)易得:标准化的AXI接口协议资源,不仅可以在xilinx官网上获得,也可以在全球范围内ARM的所有合作伙伴处获得。
大量的IP core支持AXI4协议;
大量的第三方AXI工具可提供多样的系统开发、验证和功能定制。
AXI4和AXI4-Lite包含5个不同的通道:
(1)写地址通道
(2)写数据通道
(3)写响应通道
(4)读地址通道
(5)读数据通道
数据可以在主从设备间同步的双向传输,并且数据传输大小可以改变。AXI4将数据传输的突发长度限制为最大256,AXI4-Lite每次传输仅运输传输一个数据。
如图1所示,AXI4协议主从设备间的读操作使用独立的读地址和读数据通道,只需要一个地址就可以执行最大为256的突发长度的读操作。
PS :在数据读取时,读取的数据从图中可以看到不是连续读取,说明slave是空闲时才传递
如图2所示,AXI4协议主从设备间的写操作使用写地址、写数据和写响应通道。只需要一个地址就可以执行最大为256的突发长度的写操作。
当第一步完成后,master通过write_addrsess通道给slave发送地址,具体操作:master必须拉个一个awvalid信号,在awvalid信号为高的时候,将对应的地址发送给slave
4.当master发送完写数据后,必须通过writer response 收到slave的应答信号,Bready会拉 高,在Bvalid也为高电平时,slave会将bresp信号拉高一个周期,master只要判断到该信号为高电平,既可以给slave发送要写的数据
1)全局信号
| 信号名 | AXI4 | AXI4-Lit |
| ACLK | 全局时钟 |
|
| ARESETN | 全局复位,低有效。 |
|
2)写地址通道信号
| 信号名 | 源 | AXI4 | AXI4-Lit |
| AWID | 主 | 写地址ID。这个信号用于写地址信号组的标记。 | 不支持 |
| AWADDR | 主 | 写地址。 写地址给出突发数据传输的第一个传输地址。 |
|
| AWLEN | 主 | 突发长度。给出突发传输中准确的传输个数。支持INCR和WRAP传输模式。 突发长度=awlen+1 | 不支持 |
| AWSIZE | 主 | 突发大小。 这个信号用于确定突发传输中每个传输的大小。 总线位宽=2^size Betyes | 不支持 |
| AWBURST | 主 | 突发类型。该信息与突发大小信息一起,表示在突发过程中,地址如何应用于每个传输。支持INCR和WRAP传输模式。 | 不支持 |
| AWLOCK | 主 | 锁类型。该信号提供了关于传输原子特性的额外信息(普通或互斥访问)。 | 不支持 |
| AWCACHE | 主 | 缓存类型,建议值为0011。 |
|
| AWPROT | 主 | 保护类型,访问权限,建议值为000。 |
|
| AWQOS | 主 | QoS标识符,xilinx AXI4不支持。 | 不支持 |
| AWREGION | 主 | 用于每个写操作的地址通道上的域标识符。通过该标识实现一个物理端口对应多个逻辑端口 | 不支持 |
| AWUSER | 主 | xilinx AXI4不支持。 | 不支持 |
| AWVALID | 主 | 写地址有效信号。为高指示地址有效。 |
|
| AWREADY | 从 | 写地址准备信号。为高表示从设备空闲,准备接收地址;为低表示从设备忙。 |
|
3)写数据通道信号
| 信号名 | 源 | AXI4 | AXI-Lite |
| WDATA | 主 | 写数据,32位到1024位宽 | 只支持32位宽 |
| WSTRB | 主 | 写字节选通,用于表示更新存储器的字节通道,对于数据总线的每8位数据有一位写选通信号。 | 从设备端可选择忽略。 |
| WLAST | 主 | 写最后一个数据指示信号。表示突发传输中的最后一个数据。 | 不支持 |
| WUSER | 主 | xilinx AXI4不支持。 | 不支持 |
| WVALID | 主 | 写有效。为高指示数据有效。 |
|
| WREADY | 从 | 写准备。为高表示从设备空闲,准备接收数据;为低表示从设备忙。 |
|
4)写响应通道
| 信号名 | 源 | AXI4 | AXI-Lite |
| BID | 从 | 响应ID。写响应识别标记,BID值必须匹配AWID值。 | 不支持 |
| BRESP | 从 | 写响应。该信号表示写状态,可允许相应的表示为OKAY\EXOKAY\SLVERR\DECERR。 | EXOKAY状态不支持 |
| BUSER | 从 | xilinx AXI4不支持。 | 不支持 |
| BVALID | 从 | 写响应有效。为高指示响应数据有效。 |
|
| BREADY | 主 | 写响应准备。为高表示主设备空闲,准备接收写响应;为低表示主设备忙。 |
|
5)读地址通道
| 信号名 | 源 | AXI4 | AXI-Lite |
| ARID | 主 | 读地址ID。这个信号用于读地址信号组的标记。 | 不支持 |
| ARADDR | 主 | 读地址。读地址给出突发数据传输的第一个传输地址。 |
|
| ARLEN | 主 | 突发长度。给出突发传输中准确的传输个数。支持INCR和WRAP传输模式。 | 不支持 |
| ARSIZE | 主 | 突发大小。这个信号用于确定突发传输中每个传输的大小。 | 不支持 |
| ARBURST | 主 | 突发类型。该信息与突发大小信息一起,表示在突发过程中,地址如何应用于每个传输。支持INCR和WRAP传输模式。 | 不支持 |
| ARLOCK | 主 | 锁类型。该信号提供了关于传输原子特性的额外信息(普通或互斥访问)。 | 不支持 |
| ARCACHE | 主 | 缓存类型,建议值为0011。 |
|
| ARPROT | 主 | 保护类型,建议值为000。 |
|
| ARQOS | 主 | QoS标识符,xilinx AXI4不支持。 | 不支持 |
| ARREGION | 主 | 用于每个读操作的地址通道上的域标识符。 | 不支持 |
| ARUSER | 主 | xilinx AXI4不支持。 | 不支持 |
| ARVALID | 主 | 读地址有效信号。为高指示地址有效。 |
|
| ARREADY | 从 | 读地址准备信号。为高表示从设备空闲,准备接收地址;为低表示从设备忙。 |
|
6)读数据通道
| 信号名 | 源 | AXI4 | AXI-Lite |
| RID | 从 | 读ID标记,该信号是读数据信号组标记,由从设备产生RID,RID必须和读交易中的ARID匹配。 | 不支持 |
| RDATA | 从 | 读数据。32位到1024位宽 | 只支持32位宽 |
| RRESP | 从 | 读响应。该信号表示读状态,可允许相应的表示为OKAY\EXOKAY\SLVERR\DECERR。 | EXOKAY状态不支持 |
| RLAST | 从 | 读最后一个数据指示信号。表示突发传输中的最后一个数据。 | 不支持 |
| RUSER | 从 | xilinx AXI4不支持。 | 不支持 |
| RVALID | 从 | 读有效。为高指示数据有效。 |
|
| RREADY | 主 | 读准备。为高表示主设备空闲,准备接收数据;为低表示主设备忙。 |
|
7)AXI4-Stream信号
| 信号名 | 源 | 默认值 | 功能 |
| TVALID | No | N/A | Stream读写数据有效。为高指示数据有效。 |
| TREADY | Yes | 1 | Stream读写读准备。为高表示对端设备空闲,准备接收数据;为低表示对端设备忙。 |
| TDATA | Yes | 0 | Stream读写数据,8到4096位宽。 |
| TSTRB | Yes | 同TKEEP,否则为1 | 字节选通信号。用于表示更新存储器的字节通道,对于数据总线的每8位数据有一位选通信号。 |
| TKEEP | Yes | 1 | 字节选通信号。TKEEP未被确认的那些相关的字节是空字节,可以从数据流中去除。 |
| TLAST | Yes | 0 | 表明包的边界。 |
| TID | Yes | 0 | 数据流标识符。 |
| TDEST | Yes | 0 | 数据流路由信息。 |
| TUSER | Yes | 0 | 用户定义的边带信息,这些信息能伴随数据流进行发送。 |
主机发送valid信号(数据有效)
从机发送ready信号(准备好了)
Master (主机):我们自己
Slave(从机): 例如MIG_DDR
握手信号有三种情况,都是对的,分别如下:
(1)vaild在前,ready在后

(2)vaild在后,ready在前
(3)vaild,ready一起
Channel (通道)
– Independent collection of AXI signals associated to a VALID signal
Interface (接口)
– Collection of one or more channels that expose an IP core’s function, connecting a master to a slave
– Each IP core may have multiple interfaces.
– Also: AXI4, AXI4-Lite, AXI4-Stream
Bus (总线)
– Multiple-bit signal (not an interface or channel) 多bit信号
一个接口里面有多个通道,每个通道有多个总线
Transfer (传输)
– Single clock cycle where information is communicated, qualified by a VALID handshake. (一个时钟周期的传输)
Data beat.
Transaction (事务)
– Complete communication operation across a channel, composed of a one or more transfers
Burst (突发)
– Transaction that consists of more than one transfer
一、什么是MQTT协议MessageQueuingTelemetryTransport:消息队列遥测传输协议。是一种基于客户端-服务端的发布/订阅模式。与HTTP一样,基于TCP/IP协议之上的通讯协议,提供有序、无损、双向连接,由IBM(蓝色巨人)发布。原理:(1)MQTT协议身份和消息格式有三种身份:发布者(Publish)、代理(Broker)(服务器)、订阅者(Subscribe)。其中,消息的发布者和订阅者都是客户端,消息代理是服务器,消息发布者可以同时是订阅者。MQTT传输的消息分为:主题(Topic)和负载(payload)两部分Topic,可以理解为消息的类型,订阅者订阅(Su
TCL脚本语言简介•TCL(ToolCommandLanguage)是一种解释执行的脚本语言(ScriptingLanguage),它提供了通用的编程能力:支持变量、过程和控制结构;同时TCL还拥有一个功能强大的固有的核心命令集。TCL经常被用于快速原型开发,脚本编程,GUI和测试等方面。•实际上包含了两个部分:一个语言和一个库。首先,Tcl是一种简单的脚本语言,主要使用于发布命令给一些互交程序如文本编辑器、调试器和shell。由于TCL的解释器是用C\C++语言的过程库实现的,因此在某种意义上我们又可以把TCL看作C库,这个库中有丰富的用于扩展TCL命令的C\C++过程和函数,所以,Tcl是
开门见山|拉取镜像dockerpullelasticsearch:7.16.1|配置存放的目录#存放配置文件的文件夹mkdir-p/opt/docker/elasticsearch/node-1/config#存放数据的文件夹mkdir-p/opt/docker/elasticsearch/node-1/data#存放运行日志的文件夹mkdir-p/opt/docker/elasticsearch/node-1/log#存放IK分词插件的文件夹mkdir-p/opt/docker/elasticsearch/node-1/plugins若你使用了moba,直接右键新建即可如上图所示依次类推创建
文章目录概念索引相关操作创建索引更新副本查看索引删除索引索引的打开与关闭收缩索引索引别名查询索引别名文档相关操作新建文档查询文档更新文档删除文档映射相关操作查询文档映射创建静态映射创建索引并添加映射概念es中有三个概念要清楚,分别为索引、映射和文档(不用死记硬背,大概有个印象就可以)索引可理解为MySQL数据库;映射可理解为MySQL的表结构;文档可理解为MySQL表中的每行数据静态映射和动态映射上面已经介绍了,映射可理解为MySQL的表结构,在MySQL中,向表中插入数据是需要先创建表结构的;但在es中不必这样,可以直接插入文档,es可以根据插入的文档(数据),动态的创建映射(表结构),这就
FPGA时钟和时钟域时钟树所谓时钟树为FPGA内部资源,分:全局时钟树,区域时钟树,IO时钟树原则上优先使用全局时钟树,在GT接口上使用IO时钟树,一般工具也会对GT时钟加以限制;时钟树使用方式正确的物理连接FPGA会由物理管脚专门用于全局时钟设置,通过查询数据手册可以在PCB设计阶段进行确认,当外部时钟接入此管脚时,工具会自动占有全局时钟树资源,当接入普通信号时不会分配时钟树资源;恰当的代码描述原语的使用,即BUFG的使用,可以将PLL的输出等内部时钟进行全局时钟资源的分配;IO时钟资源需要参考相应接口手册,以ultrascale的GTH为例,其JESD204的时钟方案针对不同的子类会由不同
HTTP缓存是指浏览器或者代理服务器将已经请求过的资源保存到本地,以便下次请求时能够直接从缓存中获取资源,从而减少网络请求次数,提高网页的加载速度和用户体验。缓存分为强缓存和协商缓存两种模式。一.强缓存强缓存是指浏览器直接从本地缓存中获取资源,而不需要向web服务器发出网络请求。这是因为浏览器在第一次请求资源时,服务器会在响应头中添加相关缓存的响应头,以表明该资源的缓存策略。常见的强缓存响应头如下所述:Cache-ControlCache-Control响应头是用于控制强制缓存和协商缓存的缓存策略。该响应头中的指令如下:max-age:指定该资源在本地缓存的最长有效时间,以秒为单位。例如:Ca
如何用IDEA2022创建并初始化一个SpringBoot项目?目录如何用IDEA2022创建并初始化一个SpringBoot项目?0. 环境说明1. 创建SpringBoot项目 2.编写初始化代码0. 环境说明IDEA2022.3.1JDK1.8SpringBoot1. 创建SpringBoot项目 打开IDEA,选择NewProject创建项目。 填写项目名称、项目构建方式、jdk版本,按需要修改项目文件路径等信息。 选择springboot版本以及需要的包,此处只选择了springweb。 此处需特别注意,若你使用的是jdk1
前言上一篇我们简要讲述了粒子系统是什么,如何添加,以及基本模块的介绍,以及对于曲线和颜色编辑器的讲解。从本篇开始,我们将按照模块结构讲解下去,本篇主要讲粒子系统的主模块,该模块主要是控制粒子的初始状态和全局属性的,以下是关于该模块的介绍,请大家指正。目录前言本系列提要一、粒子系统主模块1.阅读前注意事项2.参考图3.参数讲解DurationLoopingPrewarmStartDelayStartLifetimeStartSpeed3DStartSizeStartSize3DStartRotationStartRotationFlipRotationStartColorGravityModif
VMware虚拟机与本地主机进行磁盘共享前提虚拟机版本为Windows10(专业版,不是可能有问题)本地主机为家庭版或学生版(此版本会有问题,但有替代方式)最好是专业版VMware操作1.关闭防火墙,全部关闭。2.打开电脑属性3.点击共享-》高级共享-》权限4.如果没有everyone,就添加权限选择完全控制,然后应用确定。5.打开cmd输入lusrmgr.msc(只有专业版可以打开)如果不是专业版,可以跳过这一步。点击用户-》administrator密码要复杂密码,否则不行。推荐admaiN@1234类型的密码。设置完密码,点击属性,将禁用解开。6.如果虚拟机的windows不是专业版,可
外部SPIFLASH:MicronN25Q128A13ESE40G(128Mbit(16MByte))FPGA:XC7A100T CPU:Microblaze第一种情况:Microblaze在简单的应用,比如运行LED,IIC,SPI,UART之类的低俗接口驱动,或做一些简单的辅助型工作时,一般生成的applicationelf文件都不大,在10几KB或者几十,百几KB,此时使用FPGA内部的BRAM资源已经足够。XC7A100T本身就有600几KB的BRAM资源。这种情况下直接将硬件流文件和elf文件合并为download.bit文件,在直接烧录到外部SPIFLAH即可。1.Xilinx--