FPGA时序分析和时序约束
时序分析:时序的目的是通过分析FPGA设计中各个寄存器之间的数据和时钟传输路径,来分析数据延迟和时钟延迟之间的关系,一个设计OK的系统,必然能够保证整个系统中所有的寄存器能够正确的寄存数据。
数据和时钟传输路径是由EDA软件(quartus),通过针对特定器件布局布线得到的。
时序约束:两个作用
1、告知EDA软件,该设计需要达到怎样的时序指标,然后EDA软件会根据时序约束的各个参数,尽力优化布局布线,以达到该约束的指标。
2、协助EDA软件进行分析设计的时序路径,以产生相应的时序报告。
时序分析的基本模型
module reg_test(a,b,c,clk);
input clk;
input a;
input b;
output c;
reg a_reg;
reg b_reg;
reg c_reg;
wire c_wire;
always @(posedge clk)begin
a_reg <= a;
b_reg <= b;
end
assign c_wire = a_reg & b_reg;
always @(posedge clk)
c <= c_wire;
endmodule
Tco:时钟上升沿到达D触发器 到 数据输出到Q端的延迟
D和Q好比两个小球,从一个小球滚落到另一个小球,需要一定的时间,这就是Tco。
Tsu:建立时间,目的寄存器自身的特性决定,在时钟信号上升沿到达其时钟接口时,其数据输入端(D)的数据必须提前Nns稳定下来,否则就无法确保数据存储。
Tdata:a_reg的Q端,到c_reg的D端;
这个假设的前提是:时钟在同一时间到达所有寄存器。