菜鸟请教切割流水线问题
时间:10-02
整理:3721RD
点击:
高速设计时候,流水线的切割有什么依据么?是在每个块的in 和out都拿寄存器存一下吧。
不太懂得这方面的东东 大家能讨论下么。
不太懂得这方面的东东 大家能讨论下么。
关键路径上,如果时序不过,或者是时序已经紧张,那么就要寄存一拍,减小DFF到DFF上的延迟。一般来说,模块out都寄存出去好些。
也不一定,有一定数字设计经验后,可以通过一些组合逻辑的RTL代码技巧(完全看个人对综合器的领悟了),实现相同的功能,减少组合逻辑的级联数目,来达到改善长线延迟的目的,因为在有些情况下,突然改成pipeline,会修改周边的很多逻辑时序。
要考虑的还挺多的。在满足timing的前提下,流水线级数越少越好,因为加入的pipeline register会增加面积;同时尽量使每一级的timing一致,因为流水线的频率由timing最差的一级决定;同时还要考虑到pipeline后一级往前一级的bypass通路的设计(如果需要的话)
建议看看处理器设计类的书,里面会有比较详细的介绍
为了实现流水,中间插入寄存器,会使寄存器到寄存器之间的组合逻辑级数变少,进而提升电路的时钟频率;但是代价是改变了时序,增加了处理延时,多消耗寄存器;而且在组合逻辑只需要1级组合逻辑时,再插入寄存器,也不会提升性能,这时的时延大部分都在布线上;对一般默认综合,不会优化模块到模块之间的组合逻辑,加入输入输出寄存器可以解决这个问题,当然也可以改变综合设置,不保留模块分界,从而消除这个问题。
学习了 ,谢谢几位兄台的回答 我在自己看看论文
大家说的都挺好的,学习了
大家说的都挺好的,学习了
谢谢分享
插入流水线就要调整时序
