Pipelining 知识总结
采用pipelining的方式可以提高设计的通量;
Pipelining的定义: 在数据通路中插入触发器被称作流水作业;减少触发器间的组合逻辑LUTs可以有效的提升电路的性能表现;以下面的例子为例:在两个组合逻辑中间插入触发器可以使逻辑的最高运行时钟提升接近一倍;
引入pipelining需要考量的点:
- 触发器资源是否充足;
- 触发器间是否有多层组合逻辑?如果两个触发器间只有一层组合逻辑,增加pipelining不能提升电路性能;
- 参考implement后的时序报告;
- 系统是否可以忍受逻辑延时;
举例说明,使用pipelining 带来信号延时;每增加一级pipeline会增加一个时钟周期的信号延迟;
下面的例子是 o = I * 3 +5 , 插入了两级pipeline , 所以输出相较输入有两个时钟周期的数据延迟;
以下是两种电路的性能对比: