***时序分析目的是通过分析FPGA设计中各个寄存器之间的数据和时钟传输路径,来分析数据延迟和时钟延迟的关系。一个设计好的系统,必然能保证整个系统中所有的寄存器能正确地寄存数据。IC设计者分析时序,EDA软件报告生成时序。
***数据和时钟传输路径是通过EDA软件对特定器件布局布线得到。
***时序约束的作用分为两部分:①告知EDA软件该设计需要达到怎样的设计指标,然后EDA软件会根据时序约束的各个参数尽力优化布局布线,以达到该约束的指标;②协助EDA软件分析设计的时序路径,以产生相应的时序报告。
要想知道当前运行频率,需要进行时序约束,可根据时序报告优化设计。
时序约束的基本模型(数据传输模型)
module reg_test(clk,a,b,c);
input a;
input b;
input clk;
output c;//输入输出端口
reg a_reg;
reg b_reg;//定义寄存器
reg c_wire;
always@(posedge clk)//将a、b存入寄存器
a_reg<=a;
b_reg<=b;
end
assign c_wire = a_reg & b_reg;//按位与
always@(posedge clk)
c<=c_wire;
end
endmodule
代码在FPGA上的实现逻辑图如下。
程序中的寄存器用DFF实现;与门用查找表(LUT)实现;Q到与门,与门输出到寄存器之间都用IC(内部连线)。故路径包括内部走线延迟*n、组合逻辑单元延迟*n、内部走线延迟*n,还要考虑DFF的延迟。
代码中的数据时钟
Tco数据输出时间,为时钟上升沿到达D触发器—数据输出端到Q端的延迟;
Tsu建立时间,为了保证C的输入端接收的数据为定值,为目的寄存器自身的特性决定,在时钟信号上升沿到达其时钟接口时,其数据输入端(D)的数据必须提前Nns稳定下来,否则无法保证数据正确存储。(D触发器D端口的数据必须比时钟上升沿提前Nns到达);
Tdata数据传输时间
时序约束:保证C正确寄存,时钟上升沿开始Tco、内部连线、组合逻辑、目的寄存器的Tsu时间和小于时钟周期。
假设clk到达所有寄存器的时间完全一致,故简单地,Tco+Tdata=Tclk。