时间:2025-01-29 来源:FPGA_UCY 关于我们 0
在FPGA学习中,流水线技术是FPGA工程师必须要了解的一个重要知识点,我在面试的时候面试官详细问过流水线的知识,因此,这里总结一下流水线知识。
第一, 有哪些模块可以用流水线的方式。
一般的定义是如果某个设计的处理流程可分为若干步骤,而且整个数据处理是“单流向”的,即没有反馈或者迭代运算,且前一个步骤的输出是下一个步骤的输入,则可以考虑采用流水线设计方法来提高系统频率。从这里我们可以看出,流水线就是将我们的以前的大逻辑块分解为小逻辑块,以此来降低寄存器间的传播时延,从而保证系统维持在一个高的系统时钟速度。
第二,那这优势又是啥那?
因为在FPGA,关键路径延迟的倒数就是系统可以到达的最大运行频率,而关键路径就是定义为由非时钟逻辑元件引起的最大延迟。因此就可以看出,降低寄存器使用就可以有效减小关键路径的时延,从而提高运行频率。可以看出,流水线技术可以有效的提高运行速度。
下面是一个我采用的4级流水线加法器的代码模块
//4级流水线结构
module top(clk,rst_n,din1,din2,cin,cout,sum
);
input clk,rst_n;
input cin;
input [7:0] din1,din2;
output reg cout;
output reg [7:0] sum;
reg [1:0]