目录
先想好再写代码
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