
大家好,欢迎来到今天的总线学习时间!如果你对电子设计、特别是FPGA和SoC设计感兴趣那你绝对不能错过我们今天的主角——AXI4总线。作为ARM公司AMBA总线家族中的佼佼者AXI4以其高性能和高度可扩展性成为了现代电子系统中不可或缺的通信桥梁。上一课时我们了解到AXI4有五大独立通道对他们有了初步的认识这一课时我们再深入的了解下AXI的基础事务进一步加深认识。这里会有一系列的课程和大家分享AMBA总线家族欢迎大家一起学习收藏点赞。系列文章【总线】AMBA总线架构的发展历程-CSDN博客【总线】设计fpga系统时为什么要使用总线-CSDN博客【总线】AXI总线FPGA设计中的通信骨干-CSDN博客【总线】AMBA总线家族的明星成员AXI协议简介-CSDN博客【总线】AXI4第一课时揭秘AXI4总线的五大独立通道-CSDN博客【总线】AXI4第二课时深入AXI4总线的基础事务-CSDN博客【总线】AXI4第三课时握手机制-CSDN博客回顾5个通道每一个AXI传输通道都是单方向的读地址 read address读数据 read data写地址 write address写数据 write data写回复 write response每个事务都有地址和控制信息在地址通道 address channel中用来描述被传输数据的性质。读事务的结构图如下。写事务的结构图如下这 5 条独立的通道都包含一个信息信号和一个双路的 VALD、 READY 握手机制。信息源通过 VALID 信号来指示通道中的数据和控制信息什么时候有效。目地源用READY 信号来表示何时能够接收数据。 读数据和写数据通道都包括一个LAST 信号用来指明一个事物传输的最后一个数据。读和写事务都有他们自己的地址通道这地址通道携带着传输事务所必须的地址和信息。独立的读写地址通道每个读写事务都拥有自己的地址通道。这意味着读事务和写事务分别通过它们自己的地址通道进行通信。地址和控制信息每个地址通道都携带了执行事务所需的全部地址和控制信息。这包括事务的目标地址、事务的类型、大小等。支持的机制可变长度突发突发Burst是指连续的数据传输。在AXI协议中突发的长度可以变化从1到16个数据传输transfers。突发传输大小每个突发传输的大小可以是8到1024位bits这提供了灵活的数据传输粒度。回环Wrapping、增量Incrementing和非增量Non-incrementing突发回环突发在达到某个边界时地址会回环到较低的地址继续传输。增量突发地址随着每个传输而递增。非增量突发地址在突发传输中保持不变。原子操作原子操作确保在执行期间不会被其他事务中断使用独占Exclusive或锁定Locked访问来实现。系统级缓存和缓冲控制AXI协议支持缓存和缓冲机制以提高系统的性能和效率。这允许对数据进行缓存、合并写操作等。总结来说这部分强调了AXI协议在处理读写事务时通过地址通道提供了一系列的高级特性以支持复杂的系统设计和优化数据传输效率。读数据通道传送着从设备到主机的读数据和读响应信息。读响应信息指明读事务的完成状态。写数据通路传送着主机向设备的写数据。每八个数据都会有一个 byte lane 用来指明数据总线上面的哪些 byte 有效。写响应通道提供了设备响应写事务的一种方式。写响应通道的作用在AXI协议中写响应通道是用于从机Slave向主机Master发送写事务响应的通信路径。这意味着当主机向从机发起写事务请求后从机通过写响应通道告知主机该事务是否成功完成。完成信号的使用所有写事务都使用完成信号Completion Signal来指示事务的结束。完成信号是写事务中一个重要的部分它确保了主机知道何时写操作已经完成。完成信号的触发时机完成信号是针对每个突发Burst触发一次而不是针对突发内的每个单独数据传输。这里的“突发”是指一系列连续的写操作它们共享相同的地址和控制信息。例如如果一个突发包含4个数据传输那么完成信号将在最后一个数据传输完成后触发一次而不是在每个数据传输后分别触发。事务完成的确认完成信号的存在确保了主机可以准确地知道何时写事务已经完全处理完毕从而可以继续执行后续的操作或者发起新的事务。总结来说这部分强调了写响应通道在AXI协议中用于指示写事务完成的重要性以及完成信号是按突发而不是按单个数据传输来触发的机制。这有助于提高系统的效率因为它减少了需要发送的信号数量并且允许主机更有效地管理数据传输和事务处理。主机和设备的接口和互联图如下。在AMBA AXI协议中接口定义如何支持多种不同的互连interconnect实现方式以及系统设计中常见的几种互连方法。以下逐点解释接口定义的灵活性AXI协议的接口定义允许实现多种不同的互连架构。这意味着设计者可以根据系统的需求和约束选择或设计合适的互连方案。互连的等效设备在AXI协议中互连在功能上等同于一个具有对称的主master和从slave端口的设备。这样实际的主设备和从设备可以连接到这个互连设备上就像它们直接连接到另一个AXI设备一样。常见的互连方法共享地址和数据总线所有设备共享相同的地址和数据总线。这是一种简单的互连方式但可能在高负载下成为性能瓶颈。共享地址总线和多个数据总线系统中有一条共享的地址总线但是有多条数据总线。这样可以在保持地址总线简单性的同时提高数据传输的带宽。多层互连具有多个地址和数据总线这是一种更复杂的互连方式可能包含多个层次的地址和数据总线以支持大规模或高性能的系统设计。地址和数据通道带宽的需求差异在大多数系统中地址通道的带宽需求远小于数据通道。这是因为地址信息通常比数据量小得多而且通常不需要那么高的传输速率。系统性能与互连复杂性的平衡通过使用共享地址总线和多个数据总线的方案系统可以在保持较低互连复杂性的同时实现较高的系统性能。这种方法允许并行数据传输提高了整体的数据传输效率。总结来说这部分内容强调了AXI协议提供的灵活性允许设计者根据系统的具体需求选择最合适的互连策略并通过合理的互连设计实现高性能和适中的系统复杂性。寄存器切片的使用单向传输每个AXI通道仅支持一个方向的信息传输没有规定各个通道之间必须有固定的关系。灵活性由于通道之间没有固定的顺序要求可以在任何通道中插入寄存器切片而不会影响其他通道的操作。寄存器切片的作用寄存器切片可以被看作是一种缓冲机制它在数据传输路径中增加了一个或多个寄存器阶段。这样做的目的是为了在设计中引入可配置的延迟以适应不同操作频率的组件。延迟与频率的权衡插入寄存器切片会增加数据传输的延迟因为数据需要通过额外的寄存器阶段但这样做可以提高系统的最高操作频率。这是因为额外的寄存器可以用于时钟域交叉Clock Domain Crossing, CDC减少亚稳态的风险并允许不同频率的组件协同工作。互连中的寄存器切片使用在互连interconnect的几乎任何位置都可以使用寄存器切片。这为设计者提供了灵活性可以根据系统的需求在不同的位置插入寄存器切片。性能优化在处理器和高性能内存之间可能使用直接、快速的连接以最小化延迟。而在通往性能要求不高的外围设备的较长路径上可以使用简单的寄存器切片来隔离这样可以降低对高速时钟的需求同时减少功耗。总结来说寄存器切片是一种设计工具用于在系统设计中平衡延迟和操作频率以及适应不同性能要求的组件。通过在AXI通道中适当地使用寄存器切片设计者可以实现更高效的系统性能和更低的功耗。传输地址信息和数据都是在 VALID 和 READY 同时为高时有效。突发式读的时序图如下当地址出现在地址总线后 传输的数据将出现在读数据通道上。 设备保持 VALID为低直到读数据有效。为了表明一次突发式读写的完成设备用 RLAST 信号来表示最后一个被传输的数据。重叠突发式读时序图如下设备会在第一次突发式读完成后处理第二次突发式读数据。也就意味着主机一开始传送了两个地址给设备。 设备在完全处理完第一个地址的数据之后才开始处理第二个地址的数据。突发式写时序图如下这一过程的开始时主机发送地址和控制信息到写地址通道中然后主机发送每一个写数据到写数据通道中。当主机发送最后一个数据时WLAST 信号就变为高。当设备接收完所有数据之后他将一个写响应发送回主机来表明写事务完成。AXI 协议支持乱序传输。他给每一个通过接口的事务一个 IDtag。协议要求相同 ID tag 的事务必须有序完成而不同 ID tag 可以乱序完成。在AXI协议中无序传输out-of-order transactions是一个重要的特性它允许系统在处理多个事务时提高效率和吞吐量。这段描述提到的“复杂从机Complex slaves可以无序返回读取数据”可以理解如下复杂从机的能力在AXI协议中从机Slave可以是简单的或者复杂的。复杂从机拥有更高级的功能比如内部缓冲buffering或者其他能够改善性能的特性。无序返回数据复杂从机在处理多个读取事务时可能会根据其内部逻辑或优化选择在不同顺序返回数据项。这意味着即使某些数据项属于较早发起的读取事务它们也可能在属于较晚事务的数据项之后被返回。内部缓冲的影响复杂从机可能拥有内部缓冲区能够暂存一定量的数据。如果一个较晚发起的读取请求所需的数据已经存在于缓冲区中那么复杂从机可以更快地提供这些数据即使这意味着跳过了一些较早但尚未处理的请求。对系统性能的影响这种无序返回数据的能力可以减少等待时间和提高系统的整体性能。例如如果系统能够快速响应对已经缓存数据的请求那么它就可以更有效地利用资源减少主设备Master的空闲时间。事务ID的作用尽管从机可以无序返回数据但是每个事务都会分配一个唯一的ID以确保每个事务的完整性和可追踪性。这样即使数据返回是无序的主设备也能够识别和处理每个事务的正确数据。