Step 2) Add set_input_delay or set_output_delay on the I/O port/s Add it twice, once using -min and once using -max. Use the value 0.0 for both delays, and the virtual clock for the clock
default setup and hold, specifically the affect of phase-shifts.有详细介绍。 Step 5) Modify the -max and -min delays to account for external delays. 到这里为止,我们得到了正确的relationship,现在到了修改-max -min 值的时候了。当前他们的值还是0ns,这意味着模型没有延时,整个data window(即余量时间)都被FPGA 的延时用了。但实际上,data window 中的一部分是被外部设备延时和走线延时(board delay)利用的。-max 和-min就是估计这些外部的延时的。 当-max和-min都为0,则外部延时不会对我们的内部分析产生影响。一旦-max增大,则会缩小我们的 setup relationship。如:如果我们默认的setup relationship是10ns,而-max 为4ns,那么FPGA最大的data delay只能是6ns(而不是之前的10ns了)。注意到setup relationship仍然是10ns,只不过是FPGA内部延时要求变了。所以-max越大,FPGA的数据延时越小,时序越难满足。Tco就必须很小。 -min则很容易混淆视听,因为它完全是以相反的方式在工作的。即-min越小,越难满足。如果hold relationship是0ns,而-min是 -1ns(Note:这里负号是因为Th保持时间,见下面的计算公式),则对FPGA来说,唯一满足时序的方式就是在1ns之后得到输出数据,见下图:
第一幅图显示的是默认的relationship,第二幅则是存在外部延时的relationship。FPGA在第二幅图中必须满足数据输出时间在1ns~6ns之间。同样的,对于外部寄存器输入FPGA的时序约束: 大家可能对两个箭头不从同一个点开始表示疑惑。这里传达的信息是:当外部launch clock 发射数据时,可能在 -1ns~4ns之间任意一个时间点到达FPGA,因而我们使用最大的来分析setup relationship,最小的分析hold relationship。 外部延时是怎样添加到timing reports中,见章节correlating constraints to the timing reports. 以输出为例,默认relationship是数据要在0~10ns之间传递过来,当外部延时改为-1ns~4ns,外部设备使用了10ns window中的5ns,所以FPGA只有5ns的 时间余量来工作。这里特地说明这一点,是因为设计者总是不能立即看清存在的relationship,点出来有助于大家的理解。 现在我们来看看外部延时是怎么工作的,首先看FPGA到外部输出:
External device parameters: Tsu_ext = Tsu of external device Th_ext = Th of external device Data delays on board: Max_fpga2ext = Max board delay to external device min_fpga2ext = min board delay to external device
而外部数据输入FPGA则是如下: External device parameters: Tco_ext = Tsu of external device minTco_ext = Th of external device Data delays on board: Max_ext2fpga = Max board delay from external device to FPGA min_ext2fpga = min board delay from external device to FPGA Clock delays on board: Max_clk2fpga = Max delay from board clock to FPGA min_clk2fpga = min board delay from clock to FPGA Max_clk2ext = Max delay from board clock to external device min_clk2ext = min board delay from clock to external device
External device parameters外部寄存器参数: Tsu_ext = Tsu of external device Th_ext = Th of external device Data delays on board板上数据延时: Max_fpga2ext = Max board delay to external device min_fpga2ext = min board delay to external device Clock delays on board板上时钟延时: Max_clk2fpga = Max delay from board clock to FPGA min_clk2ext = min board delay from clock to external device Max_clk2ext = Max delay from board clock to external device min_clk2fpga = min board delay from clock to FPGA
对输入延时来说: External device parameters: Tco_ext = Tco of external device minTco_ext = min Tco of external device Data delays on board: Max_ext2fpga = Max board delay from external device to FPGA min_ext2fpga = min board delay from external device to FPGA Clock delays on board: Max_clk2fpga = Max delay from board clock to FPGA min_clk2fpga = min board delay from clock to FPGA Max_clk2ext = Max delay from board clock to external device min_clk2ext = min board delay from clock to external device
文章评论(0条评论)
登录后参与讨论