FPGA之流水线思想(含代码)
本文主要涉及以下几个问题:
1:什么是流水线
2:流水线使用场景
3:一个例子来说明流水线
1:CASE1: 例如工厂要对一个产品进行组装,分为A,B,C三步,以往是一个人负责这三步。这三步分别用时T1,T2,T3。且一个人完成所有步骤后才能发出通知:我完成这个产品了,其他部门只有接收到这个通知后才能继续生产零部件供应下一次的生成。有一天领导觉得这样似乎效率低了,于是想出一个办法:每个人只负责这三个步骤中的一个,且以每步最长完成时间为通知标志,以往发出完成标志的时间是T1+T2+T3,假如T2的时间最长。那么改进后的时间就为T2了。生成效率大大提高。
CASE2:术业有专攻,这个工厂的工人不是对产品组装的每一步都熟练掌握,他只会其中的一步,这样会A的到A部门,会B的到B部门,会C的到C部门。这样就解决了这个问题。
2:回到FPGA中,有时候组合逻辑过长势必会造成很大的延时,而系统的时钟频率的限制往往由这些关键路径延时来决定的,如果时钟频率过快,那一个clock的边沿到来时,组合逻辑的信号还没有传到端口或者传到后建立时间没有满足会产生亚稳态。这时把一个组合逻辑拆成几块,每一块