医院网站建设联系方式,wordpress密码邮件,婚纱摄影网站排名,塑胶模具东莞网站建设文章目录 1.1 AXI 双向握手机制简介1.1.1 信号列表1.1.2 双向握手目的1.1.3 握手过程 1.2 数据通路的握手要求1.2.1 读数据通路1.2.2 读地址通路1.2.3 写数据通路1.2.4 写地址通路1.2.5 写回复通路1.2.6 全信号 1.3 不同数据通路间的约束关系1.3.1 读操作约束关系1.3.2 写操作约… 文章目录 1.1 AXI 双向握手机制简介1.1.1 信号列表1.1.2 双向握手目的1.1.3 握手过程 1.2 数据通路的握手要求1.2.1 读数据通路1.2.2 读地址通路1.2.3 写数据通路1.2.4 写地址通路1.2.5 写回复通路1.2.6 全信号 1.3 不同数据通路间的约束关系1.3.1 读操作约束关系1.3.2 写操作约束关系AXI3.0版1.3.3 写操作约束关系AXI4.0版 1.1 AXI 双向握手机制简介
AXI 标准协议有五路独立的数据通道这些通道都只支持单向传输五路通道分别为
读地址通道主机在读地址通道上写入想要读取的数据的地址以及控制信息读数据通道从机在接收到地址后将该地址上的数据通过读数据通道发送给主机写地址通道主机在写地址通道上写地址和控制信息在写地址操作结束之后即主机确保从机已经获得了此次传输的地址和控制信息后才开始在写数据通道上写数据写数据通道写回复通道从机在写回复通道上将此次写传输的状态回复给主机。
每一路数据通道都遵循双向握手机制即使用 VALID 和 READY 信号作为控制信号来传输数据只有 VALID 与 READY 同时为高的时候才可以正常的发送数据而通常情况下
VALID 信号用来表示什么时候 “地址、数据、和 控制信号” 是有效的主设备置高 VALID 信号表示主设备已经将数据地址或者控制信息放到的写总线上并保持。READY 信号则用来表示什么时候从设备准备好采集数据了; 从设备置高 READY 信号表示从设备已经做好接收的准备。
主设备可以通过 VALID 信号置起来控制发送速度的同时从设备也可以通过 READY 信号的置起与否控制接收速度反压主设备的发送速度。 当双方的信息同时为高时钟上升沿到达后一次数据传输完成在 1 到 N 次时钟上升沿后双方传完了要传的信息后两信号同时拉低。
1.1.1 信号列表
AXI 标准协议中双向握手信号共10个无论是主设备还是从设备这10个信号都对应于5个输入信号5个输出信号。
数据通路握手信号对写地址通路AWVALID, AWREADY写数据通路WVALID, WREADY写回复通路BVALID, BREADY读地址通路ARVALID, ARREADY读数据通路RVALID, RREADY
1.1.2 双向握手目的
握手目的是控制数据在总线上的流动和采样; 双向目的是主设备和从设备都可以控制总线数据流动。于AXI总线 而言无论是主设备还是从设备都可以控制数据的传输。
1.1.3 握手过程
握手的三种情况 READY 信号先于 VALID 信号改变这种情况下如果我们将目光对向主设备会发现从设备在主设备发送数据前就做好了接受的准备当主设备VALID后时钟上升沿就完成了数据的传输READY 信号与 VALID 不同接收方在置起 READY 之后发现其实我好像还挺忙然后拉低 READY 信号。只要此时 VALID 信号没有置起这种操作是完全可以。 READY 信号与 VALID 信号同时改变表明数据有效的同时也可以进行采样 READY 信号晚于 VALID 信号改变VALID信号先拉高表明数据正确再往后READY拉高表明可以进行采样。
协议规定“VALID信号一旦拉高除非READY信号拉高接收数据完成不会主动变低”
1.2 数据通路的握手要求
以下的叙述包含两个前提
默认READY和VALID信号为低有效时为高叙述中VALID等待READY的表达实际的意思为在VALID拉高后的时钟上升沿检测READY是否为高若为高完成握手并不代表VALID与READY的拉高顺序。
1.2.1 读数据通路
在一个 Burst 读传输操作时从设备在数据有效时置高 RVALID一旦置高RVALID 需要等待 RREADY 信号拉高完成握手进行数据传输。读数据通道上包括从机发送给主机的读数据以及读操作完成状态回复数据的宽度可以是 8,16,64,128,256,512 或者是 1024bits。
1.2.2 读地址通路
主设备在地址信号和控制信号有效时置高 ARVALID一旦置高需要等待从设备的ARREADY信号置高完成握手进行数据传输。虽然名字为读地址通道但实际上仍由主机写入地址只不过是写入要读取数据的地址。
1.2.3 写数据通路
在 Burst 写传输时主设备在写数据有效时置高 WVALID 信号拉高后 WREADY 等待 WREADY 信号拉高完成握手。一般来说写数据都发生在写地址操作之后但也不是绝对的在有些情况下可以先写数据。但是所有情况下写回复必然是在写数据之后是对此次写数据的状态回复。
写通道有一点读通道所不具有的特性是有 STROBE 信号用于标识写数据中有效的传输字节即有些无效的数据出于减少主机工作量的目的或者在读写宽度不对称时被放到写数据通道上和有效数据一起发送。而 STROBE 的信号的作用就是标识出这些无用的数据告知从机不需要接收无用数据。
1.2.4 写地址通路
主设备在地址信息与控制信息有效时拉高 AWVALID拉高后 AWVALID 等待从设备拉高 AWREADY完成握手进行数据传输。
1.2.5 写回复通路
用于从机将写完成情况回复给主机。所有的写传输操作都需要在写回复通道上接收此次写传输操作的完成情况。值得注意的是写回复是针对一次突发传输的而不是针对每一次的写数据操作的。一次突发传输包括了多次写操作。
1.2.6 全信号
AXI 总线中有两个全局信号
ACLK全局的时钟信号所有的传输操作都发生在 ACLK 的上升沿ARESETn全局复位信号低电平有效。
1.3 不同数据通路间的约束关系
在前文中我们延伸出通道内的约束关系如下 VALID信号一旦拉高除非READY信号拉高接收数据完成不会主动变低
不同数据通路之间同样的存在约束关系这很好理解写回复通路的信号传递一定晚于写数据通路这就天然的构建起不同通路的先后顺序关系假如不满足这种约束关系AXI 协议就可能会发生死锁即 deadlock 没有办法正确工作。
同时一个AXI slave 按功能进行区分的行为建模无非是读与写两种操作读操作与写操作的约束关系同样不同。
1.3.1 读操作约束关系
首先我们讨论的是读操作约束关系 RVALID 和 RREADY 对应读数据通路的信号 ARVALID 和 ARREADY对应读地址通路的信号 读操作固定的约束关系为数据通道必须要等待地址通道的数据传输完成才可以尝试握手操作。
1.3.2 写操作约束关系AXI3.0版
其次我们讨论的是写操作的约束关系 这里涉及到了三个数据通路来考虑约束关系唯一的一个硬约束关系为BVALID需要等到写数据通路完成握手后才能置高。
初学者在这里往往会感到迷惑 比如说 BREADY 跟 WVALD 与 WREADY间有无关系 BVALID 和 AWVALID与AWREADY有无关系实际上是只要设计中的线没有进行相连就是没有关系针对于AXI而言甚至可以 BREADY 信号第一个拉高再去考虑其他信号的关系唯一需要满足的即为写回复通路与写数据通路之间的约束剩下的信号都是自由的。
1.3.3 写操作约束关系AXI4.0版
AMBA4在兼容AMBA3的基础上更为严格目的是希望从设备不会在接收到数据信号后还需要等待地址信号。
推荐阅读 https://developer.arm.com/documentation/100806/0402/?langen https://aijishu.com/a/1060000000134828 http://www.tlcement.com/37357.html https://zhuanlan.zhihu.com/p/96804919