目录
先想好再写代码
1. decoder
解码器的思路很简单,将AXI信息交互分为读写两种。
写控制AW通道依赖于AWADDR的高2bit,即AWSEL来片选Slave。写数据W通道其实也依赖于AWADDR的高2bit,因为只有这样才能把匹配的写控制和写数据正确的送入某个Slave。写反馈B通道同理。
这个涉及到AXI Master那边AW、W和B三通道是如何协同的了。
例如AXI Master需要分别为Slave0、Slave1和Slave2写入数据。那么Master可以先令AWSEL为0与Slave0写交互完成之后,再令AWSEL为1与Slave1进行写交互。
当然AXI Master也可以先分别令AWSEL为0、1、2将AW通道分别分发给Slave0、Slave1、Slave2,再重新令AWSEL为0、1、2将W通道分别分发给Slave0、Slave1、Slave2,最后在令AWSEL为0、1、2将等待各Slave的B通道反馈
同理,读控制AR通道依赖于ARSEL,读反馈R通道也依赖于ARSEL。
1.1. 代码
代码如下
module decoder#(
博客详细介绍了AXI_Bus_Matrix_4x4的设计,包括decoder和axi_round_robin_arbiter的实现。在decoder部分,解释了读写通道的依赖关系,以及如何根据AWSEL和ARSEL进行片选。axi_round_robin_arbiter部分则讨论了AW、W、AR通道的轮询仲裁策略,强调了通道间的协同问题。最后提到了axi_bus_matrix_4x4的顶层模块设计,强调了ID的扩位标记。
订阅专栏 解锁全文
3559

被折叠的 条评论
为什么被折叠?



