网站建设算研发费用吗,软件工程师招聘,做网站怎么赚钱的,做国际网站怎么能快速打开目录
一、AXI协议基础
1.1读写通道的基本架构图
1.2猝发操作举例
1.3传输顺序
二、各个通道中的信号描述
2.1全局信号
2.2写地址通道信号
2.3写数据通道信号
2.4写响应通道信号
2.5读地址通道信号
2.6读数据通道
三、通道握手
3.1单一信息传输时的握手过程
3.2不…目录
一、AXI协议基础
1.1读写通道的基本架构图
1.2猝发操作举例
1.3传输顺序
二、各个通道中的信号描述
2.1全局信号
2.2写地址通道信号
2.3写数据通道信号
2.4写响应通道信号
2.5读地址通道信号
2.6读数据通道
三、通道握手
3.1单一信息传输时的握手过程
3.2不同通道之间的信号握手关系
四、寻址项
五、数据总线
5.1字节开关WSTRB
5.2窄带传输
六、非对齐传输
七、其他 一、AXI协议基础 AMBA AXI协议主要用于实现高性能、高频率系统的计算能向下兼容AHB协议和APB协议。它具有以下几个特点1五个分离的地址、数据通道2具有字节开关可实现非对齐的数据传输 3猝发地址由初始地址发起等等。 AXI最鲜明的特征是有五个独立的通道分别是读数据、读地址、写数据、写地址、写响应通道。每次数据传输都具有地址和控制信息通过地址通道传输 在写操作中多了一个写响应通道slave可以通过此通到向master发送一个写数据已经完成的反馈。
1.1读写通道的基本架构图 如图可知地址、控制信息等通过地址通道发送数据流方向都是从master到slave即动作都由master发起读写数据通过数据通道传输写数据时数据流方向是从master向salve即master向slave中写入数据读数据时数据流方向从slave到master即master读出slave中的数据写响应通道传输写操作完成的反馈通过写响应通道传输方向是从slave到master。
1.2猝发操作举例 猝发burst是AXI总线协议的核心猝发传输也叫突发传输特点在于一个burst可传输多个数据包由len参数决定且每次传输只需要传输一个初始基地址addr在slave端会自动为后续数据包的地址进行计算多种计算方式。在具体的传输过程中还牵扯一些乱序传输、字节通道等问题后续再进行展开。 先看读写猝发的时序图 读猝发的数据传输时序图如图所示发送地址ARADDR时ARVALID信号被拉高等待ARREADY信号拉高完成握手从而完成一个地址的传输读数据类似读数据传输时拉高RVALID信号与RREADY握手后完成数据传输。而当完成一个burst的最后一笔数据包传输后RLAST拉高表示已经结束了最后一个包的传输。 这里在第一次看时有几个疑问;
1.master驱动读地址后数据传输发生,具体延迟多久发生的
答读数据操作发送在slave接收读地址之后具体时间由slave控制
2.读操作中数据流向是slave -- master所以在数据有效时slave会拉高valid信号ready信号由master控制是否会存在在读到有效数据时ready为低的情况
答是的若ready为低data会持续直到完成传输
3.每个数据之间为什么会存在无效的间隔
答由slave内部控制的可以设置burst传输各个数据包之间存在delay。 写猝发类似从图上看master把地址和控制信息发送在写地址通道上。之后master往写数据通道上发送数据。当master发送最后一个数据时WLAST信号会变高电平和读一致。如果slave接受了所有的数据它将驱动一个写响应信号返回master以表示这个写操作结束。这里需要注意的是写操作中写数据和写地址没有严格的先后关系可以先发送数据再发送地址原因是因为写数据、写地址通道中有寄存器可以进行缓存而地址通道寄存器比数据通道更多时写数据可以在地址到达之前达到 1.3传输顺序 可通过对操作进行一个ID标记同一个ID按指定顺序即发送前后顺序进行操作不同ID可以不按顺序进行这使得AXI支持乱序传输后进行的传输操作可能比先进行的操作要快。一个读或写猝发的各个ID即地址、数据的ID是一致的。 二、各个通道中的信号描述
2.1全局信号 全局时钟ACLK上升沿采样复位ARESRTn低电平有效。
2.2写地址通道信号 地址通道主要包含地址及控制信号重点关注标出的几个信号AWID为写地址ID可通过ID控制顺序AWADDR为第一个数据包的初始地址AWLEN为一个burst的长度即有多少个数据包其值为1-16不能超出边界AWSIZE为一个猝发中单个数据包的传输位宽3bits的值分别对应1248163264128字节AWBURSR为burst的类型会决定猝发方式从而影响各个数据的地址计算AWVALID和AWREADY为该通道的握手信号。
2.3写数据通道信号 这几个信号都很重要WID不再重复WDATA是数据总线宽度这里需要注意与地址通道中AWSIZE的区别一个决定总线宽度一个决定数据传输的有效宽度有效宽度小于总线宽度时即为窄带传输后续展开WSRTB是字节开关1bit对应1字节数据即1111对应字节通道开4字节0011对应开较低2字节WLAST和WVALID和WREADY握手信号去之前类似。
2.4写响应通道信号 BRESP为2bit数据表明写操作的4种状态。其余信号和前文类似。
2.5读地址通道信号 与写地址通道类似不再重复。
2.6读数据通道 RRESP是读响应信号对应写响应通道的信号读操作时响应随数据通道一同进行传输其余信号类似。 关于在读数据没有字节开关strobe信号的问题这里我的理解是在写操作时数据总线会传输完整的数据包但在slave接收端会根据strobe确定有效的字节位并写入对应的地址所以需要通过strob告诉slave哪些字节数据是有效的但在读操作时对对应地址进行读数据通过slave传到master的数据都是有效的在窄带传输、非对齐等情景下只需要根据地址进行读操作即可不需要字节开关来控制有效因为读出的单一地址上的一字节数据是肯定有效的。
三、通道握手
3.1单一信息传输时的握手过程 单个信号的握手比较好理解发送方在地址或是数据有效时拉高valid信号接收方拉高ready两者同为高时完成一次传输。若未握手成功数据和valid信号会一直保持直到完成一次传输。ready拉高可以在valid之前也可以在valid之后或同时拉高。 3.2不同通道之间的信号握手关系 在传输操作中valid信号不能依赖于其他部件的ready信号否则容易出现锁死情况而ready信号可以依赖于valid拉高在valid置起之后再置起。ready默认值保持高电平也可行握手更快更高效 如图所示是读操作时的握手信号依赖关系单箭头表示没有严格的前后关系双箭头是有严格的前后关系。 即ARVALID和ARREADY没有严格的前后关系读地址的握手必须在读数据之前这是因为没有地址是无法得到读数据的值的。 如图所示是写操作时的握手信号依赖关系除了写响应信号的握手信号需要在最后写地址和写数据握手信号没有严格的先后关系即数据可以比地址先发送这是因为通道中的寄存器可以进行缓存等待地址达到之后再写入数据。 需要注意的是写操作中slave中的AWREADY不必等待WVALID置起后再置起不然可能造成锁死。
四、寻址项 AXI协议的猝发传输是如何确定地址在一次猝发过程中master只会通过地址传输通道发送一个基地址而slave在接收到之后会更具其他的控制信息进行地址的计算以存放后续发送的其他数据。 在一次猝发传输中数据总量不能超过4KB的边界避免出现slave在地址增加计算时出现超出边界的情况。在这里4KB指的是有效的数据传输总量。 猝发传输的数据数量由AWLEN或ARLEN来控制每个猝发有1-16个数据传输。len位宽为4。而对于卷绕式传输长度必须是24816。组件不能提前终止一个burst来减少传输的数量在一个写猝发中master可以通过字节开关全关来关闭后续的数据传输但它必须完成当前的写数据传输。一次读猝发中master可以选择丢弃后续的数据包可能造成数据丢失例如在fifo中。 猝发传输的数据包大小有ARSIZE或AWSIZE决定。 AXI协议由传输的地址来决定对每个传输使用哪个数据总线的字节通道设置strobe。对于传输的大小窄于数据总线的自增式或者卷绕式猝发对猝发的每个数据包数据在不同的字节通道上传输。一个固定地址的猝发每个传输使用相同的字节通道。任何传输的大小一定不能超过数据总线的宽度总线宽度由数据通道信号WDATA或RDATA控制。 猝发类型有三种分别是固定式自增式卷绕式。固定式猝发地址不变会重复访问相同的区域例如写入或读取外部fifo时自增式猝发猝发的每个传输的地址是在之前的传输地址基础上的增加。增加值依赖于传输数据的大小。例如猝发式传输每个4字节大小数据的地址是在之前基础上加4常用在一般的缓存设备中 卷绕式猝发和自增式猝发类似因为猝发的每个传输的地址都是在之前地址上的增加。然而在卷绕式的猝发里当到达了卷绕边界时地址会卷绕到一个较低的地址常用在高速缓存中。应用卷绕式有两个限制开始的地址必须和传输的大小对齐猝发的长度必须为248或者16。 通过上述的控制信息可以对猝发中的各个数据的地址进行计算以及选择字节通道的开关具体的计算公式略。 五、数据总线 AXI协议有2个独立的数据总线读和写有各自的握手信号。每一笔传输的位宽可以和总线宽度一致也可以小于总线宽度小于总线宽度的情况被称作窄带传输。
5.1字节开关WSTRB 每一个字节开关信号对应于写数据总线上一个字节。当WSTRB为高时字节开关指示数据总线上对应的字节部分包含内存中要更新的有效信息即对应的数据字节有效。数据总线上每一个8比特都有一个字节开关所以WSTRB[n]对应WDATA[(8*N)7: 8*N)]。
5.2窄带传输 当master产生的数据传输宽度比数据总线宽度窄时由地址和控制信息决定了传输使用哪个字节位。在递增和环回猝发传输时每一个数据包都由不同的字节定位传输数据。在固定式猝发传输时地址保持不变使用的字节定位也可以保持不变。 例1 1个burst有5个传输即len5,起始地址为0单个传输为8bitssize8传输总线是32bits传输宽度小于总线宽度。 例21个burst有3个传输起始地址是4单个传输为32bits总线宽度为64bits。 六、非对齐传输 猝发传输数据大小有时是大于一个字节的可能需要存取的前几个字节不会和数据地址边缘对齐。例如32位4个字节的数据包开始于0x1002的地址并没有和32位的地址边缘对齐0x1000或0x1004等这种情况就是非对齐传输。 传输示例1总线宽度为32bits数据位宽为32图中第1个是对齐传输的场景后三个是非对齐传输的例子。非对齐传输的例子中第一个传输数据的地址由于起始地址没有对齐会导致有的地址是没有数据存取的例如起始地址为1地址0没有地址存取而此时由于有效地址为并没有4字节无法存取4字节的数据则数据开关strobe也需要进行相匹配的数据选通对数据进行存取。 传输示例2总线宽度为64数据位宽为32。第1个是对齐传输的后2个为非对齐的传输。 七、其他 其余还有原子访问、排序、低功耗等内容由于暂时未接触在这里不做阐述。