【干货】AXI Register Slice

更多精彩内容,请微信搜索“FPGAer俱乐部”关注我们。

AXI协议是目前广泛采用的总线协议。为了使总线能够跑上更高的频率,获得更好的timing性能,register slice 被广泛采用,用于切断/分割AXI总线的criticle path。
通常来讲,register slice有4种工作模式:
1. Pass Through
2. Forward Registered
3. Backward Registered (Reverse Registered)
4. Full Registered
下面我们分别介绍一下。
1. Pass Through
没什么好说的,直连。等于没有用register slice。
2. Forward Registered

【干货】AXI Register Slice_第1张图片X


Valid(from source)/channel payload 路径被插入了registers.
对于destination来讲,其得到的valid/payload必然来自RS中的registers,即若payload为full,则valid(to destination)有效。
对于source来讲,ready(to source)表明在下一个cycle,内部registers可以接受新的payload。在如下两种情况下为高:1.当前payload为空;2.当前payload为full,但同时destination的ready为高。
【干货】AXI Register Slice_第2张图片
3. Backward Registered (Reverse Registered)
【干货】AXI Register Slice_第3张图片        
这种模式下,forward control path/payload没有刻意插入registers,而backward control path/payload(尤其指ready from destination这条路上),被插入了registers。
对于source来讲,其valid和payload直接的交易对象是RS内部的registers,ready(to source)有效的条件是内部payload为空。
对于destination来讲,其交易的对象可能是RS内部的payload,也可能直接来自于source。valid(to destination)表明当前是否有有效的payload给destination,这分为两种情况:1.RS内部payload为full;2.若payload为空,但此时valid(from source)有效。
【干货】AXI Register Slice_第4张图片
4. Full Registered
【干货】AXI Register Slice_第5张图片
Full Registered就是前两者的集合,即在forward path和backward path上都插入了registers, 切断了相关的path。在forward path上,使用了两套registers,类似ping-pong buffer的实现方式。
对于source来讲,其直接交易对象是ping-pong buffer,ready(to source)在ping-pong buffer至少其中一组为空时有效。
对于destination来讲,其直接交易对象也仅是ping-pong buffer,valid(to destination)在ping-pong buffer不为空时有效。
【干货】AXI Register Slice_第6张图片
Summary
Register slice的使用可以打断forward control/payload path或者backward control/payload path,在timing比较紧张的时候,选择适当的模式可以提高bus的频率。当然,register slice的引入会增大size,引入latency,因此也不建议随意使用。

============华 丽 的 分 割 线============

想加入我们FPGA学习交流群吗?可以长按或扫描以下二维码,审核通过后我们邀请您加入。

这些微信群旨在打造一个提供给FPGA工程开发人员及兴趣爱好者(统称“FPGAer”)进行技术交流、答疑解惑和学习的平台。而且我们也将会通过网络举办FPGA技术讲座,分享相关研究文献。

【干货】AXI Register Slice_第7张图片

了解更多FPGA知识可以长按或扫描以下二维码关注“FPGAer俱乐部”。

【干货】AXI Register Slice_第8张图片

你可能感兴趣的:(【干货】AXI Register Slice)