1. m2sPipe(data插入寄存器打断)
电路图:

时序图:
可以看到折叠气泡时如果流水线上正好有气泡,b.ready 为0 时 不会传导给 a.ready, 流水线继续。
但是如果不折叠气泡,b.ready为0时,不管流水线有没有气泡,都会传导给a.ready, 导致流水线要保持hold一拍。

{signal: [
["折叠气泡",
{wave: 'P...................', name: 'clk'},
{wave: '0.1.01...01....0....', name: 'a.valid[I]', node:'....a',},
{wave: 'x.22x3.22x22222x....', name: 'a.data[I]',data:["a","b","c","d","e","f","g","h","i","g"]},
{wave: '1.....01............', name: 'a.ready[O]', node:'......b...f',},{},
{wave: '0..1.01...01....0...', name: 'b.valid[O]', node:'.....c',},
{wave: 'x..22x3.22x22222x...', name: 'b.data[O]',data:["a","b","c","d","e","f","g","h","i","g"]},
{wave: '1.....01..01........', name: 'b

本文探讨了两种流水线设计方法:m2sPipe通过数据插入寄存器来处理气泡问题,确保流水线效率;s2mPipe则通过ready信号插入寄存器来优化流水线中的数据流动。文中通过电路与时序图详细解析了这两种方法的工作原理。

2769

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



