yaboPP电子
技术文章

AXI互连教程:Digital Logic中的多个AXI主人和奴隶

2019年11月28日通过斯蒂芬·圣迈克尔

本文将浏览AXI互连,数字逻辑,允许多个AXI主机和AXI从站进行通信。

在里面上一篇文章,我们介绍了AXI,先进的可扩展界面,SoC设计的ARM AMBA规范的一部分。

AXI使用通过五个不同频道通信的良好定义的主设备和从属接口:

  • 读地址
  • 读取数据
  • 写地址
  • 写入数据
  • 写回应

图1显示了5个axis通道。

图1.AXI频道

为了将单个主机连接到单个从站,这五个通道都需要。用于连接多个主机和/或多个从设备需要不同的方法。

输入AXI互连。

AXI交易

AXI Interconnect管理AXI主从之间的AXI事务。

在先前的AXI文章中,许多AXI信号与五个通道中的每一个相关联。要了解互连如何处理这些信号,需要仔细看看简单的AXI交易。

阅读交易

图2示出了AXI主站和从站之间的读取事务的时序图。

注意,为了清楚起见,已经省略了一些信号。烧焦的橙色表示主控信号,而蓝色是从控制信号。

为了启动事务,主服务器将从服务器的地址放在ARADDR行上,并断言存在一个有效地址(ARVALID)。在T1时间之后,从端断言就绪信号(ARREADY)。记住,当信息可用时,数据源断言有效信号,而接收方断言就绪信号,当它能够使用该信息时。为了使转移发生,必须同时断言READY和VALID。所有这些都发生在读地址通道上,地址传输在时间T2上升沿完成。

图2。AXI阅读交易

从这里开始,事务的其余部分发生在读取数据通道上。当主服务器准备好接收数据时,它断言它的RREADY信号。然后从服务器将数据放在RDATA行上,并断言存在有效数据(RVALID)。在这种情况下,从服务器是源服务器,而主服务器是接收服务器。

回想一下,只要VALID不依赖于READY,就可以以任何顺序断言VALID和READY。该读取表示由4个节拍或数据传输组成的单个突发事务。注意,当最后一个节拍被传输时,从服务器会断言RLAST。

写事务

写呢?图3显示了一个axis写事务的时间图。寻址阶段类似于读取。主机在AWADDR行上放置一个地址,并断言一个有效的信号。从服务器断言它已经准备好接收地址,地址就被转移了。

接下来,在写数据通道上,主服务器将数据放在总线上并断言有效信号(WVALID)。当slave就绪时,它断言WREADY并开始数据传输。这个传输也是4拍一次。

当数据的最后一次节拍已经转移时,主人断言Wlast。与读取相比,写入包括写入响应通道,其中从站可以断言写事务已成功完成。

图3。AXI写交易

AXI互连

回想一下,在AMBA修订2.0中,将多个AHB主机连接到AHB从属,所以需要一个AHB仲裁器,其具有更高优先级的主机的权限。

为了连接一个AHB主AHB到多个AHB从AHB, AHB解码器检查输入地址并连接适当的从AHB被使用。图4显示了这两个场景的一个示例。

图4.AHB仲裁和AHB解码器的多主/多从系统

这是Axi提供最灵活性的地方。AXI标准而不是规定多主机和多从系统的工作原理,而不是定义接口,并将其余部分定义为设计人员。如果系统有多个掌握尝试与单个从站通信,则AXI互连可以包含在主设备和从属接口之间路由数据的仲裁器。可以使用简单的优先级,循环架构或任何适合设计者的需求来实现该仲裁器。

图5示出了将多个主机连接到从设备的互连。

图5。AXI与多个大师互连

如果有多个具有单个主的奴隶呢?为此工作,互连需要解释地址并将事务路由到正确的从站。在这种情况下,解码器可以工作。

图6示出了通过互连逻辑内包含的解码器通信到多个从站的单个主。

图6。AXI与多个奴隶互连

使用多个大师和多个从站的系统可以具有包含仲裁器,解码器,多路复用器的互连,以及成功处理事务所需的其他任何其他操作。这可能包括用于在AXI3,AXI4和AXI4-LITE协议之间转换的逻辑。

此外,互连可以执行总线宽度转换,使用数据fifo,包含寄存器片来中断计时路径,甚至在两个不同的时钟域之间转换。

图7显示了具有多个主控器和从设备的互连。

图7。AXI互连多主/多从属

这里写地址通道和读地址通道有它们自己的专用仲裁器和解码器;通过这种方式,读写可以同时发生。为了了解它是如何工作的,需要一个示例。在一种情况下,主服务器将一个地址放在写地址(AW)通道上,仲裁程序将授予它权限并将该地址传递给解码器。然后解码器将选择要写入地址的正确的从服务器。

接下来,写数据多路复用器将打开一条到同一从服务器的路径,以便主服务器和从服务器可以使用写数据通道(如图W所示)来执行传输。同时,另一个主服务器可以使用读(R)和读地址(AR)通道从同一个或不同的从服务器读取数据,读多路复用器在两者之间打开一条路径。请记住,图7只是布局互连的一个示例。

请注意互连内置的主站和从属接口。如前所述,AXI标准仅定义接口。因此,通过AXI从接口连接AXI主站到互连的唯一方法。将从站连接到互连时,相同的规则适用,即,它必须连接到AXI主接口。

设计中的互连

根据系统的要求,设计自定义AXI互连可能不是最佳决策。像Xilinx这样的供应商提供AXI互连,以便与其IP和任何符合AMBA标准的IP和任何IP一起使用。Altera(现在英特尔)另一个供应商提供将Avalon事务映射到AXI设备的互连。

还有许多开源设计。例如,一些项目Opencores.org.包括AXI主站和从属接口以及通用互连设计。甚至有智能互连,可检测它们连接的主人和从站,并自动实现控制所需的逻辑。

图8显示了两个互连实现。图8A是Altera的QSYS互连,允许Avalon,AXI和APB事务在主站和从站之间移动。图8B显示了Xilinx通用AXI互连,用于AXI3,AXI4和AXI4-LITE组件。

图8。Altera / Intel(A)和Xilinx(B)都提供互连

在实现自定义互连时可能是困难且耗时的,但是当某些东西不起作用时,正确的调查可以更容易地证明高密度脂蛋白代码是开放的和可用的。

供应商提供的互连基本上是黑匣子。如果其中一个有一个错误,那么找到或更正问题可能很难。已经说,许多供应商互连已经被时间随着时间的审吐,并且通常是安全的。

结论

本文介绍了AXI互连,这是一个数字逻辑块,允许多个AXI主从机与多个AXI从机通信。AMBA修订3.0明确保留了未定义的互连细节,以保持AXI协议的灵活性和可扩展性。

互连可以包含许多不同的数字组件,具体取决于连接到它们的内容。这可以是仲裁者,解码器和多路复用器或协议转换器,寄存器切片和时钟转换器。

AXI互连是任何AXI系统中的基本组件,代表硕士和奴隶之间的胶水。具有直观的互连工作如何使构建和故障排除任何AXI系统更容易。