这两天一直在调试FPGA,调试了半个月后,时序采用CLASS timing ,总结了一下 ,在qsf文件中采用了以下几种约束 :
1 : 最常用的时钟约束
set _global_assignment - name FMAX_REQUIREMENT "125 MHZ" -section_id clk .
如果还有别的相关约束可以采用 assignment中的 clock setting 来设置,
如果是分频 可以采用以下来设置 :
set _global_assignment -name MULTIPLY_BASE_CLOCK_PERIOD_BY DIV -section_id clk0_div
set_instance_assignment -name CLOCK_SETTINGS clk0_div -to "a : b : c :d"
2 : 采用logiclock region 进行固定
3: 对于关键路径 采用寄存器固定的方式 ,如下 ;
set_location_assignment FF_X1_Y1_N1 -to "a:b:c" 寄存器固定
set_location_assignment LCCOMB_X1_Y1_N2 -to "A :B :C" 线型固定
4:采用input_min_delay output _min_delay 方式,这个网上很多介绍 ;
5: 采用current 约束
6: 采用TH,TSU,TCO约束,这个网上也有很多,不过我对于这个还是有点迷茫,我只是看着报告来尝试添加的, 但是有的时候添加了以后,会被软件忽略,比如
我对TH进行约束后,提示 :
No timing path applicable to specified source and destination
对于这个还是要深入研究 ,争取周末研究明白 ;
7: 对输入进行 input delay from Pin to input Register 约束 ,
这个约束必须要结合这chip planner 进行查看,
当采用默认设置的时候,
一般输入走的是 input pin to logic array delay1 并且默认设置为6 ,
当添加上面的约束后,走的路线便经过延迟器,同时输出的位置也会发生变化,
如果有关键路径进行这样设置后,会对关键路径有很大影响 ,
遇到的问题是 : 不知道怎么设置input pin to logic array delay1 ,因为不管我怎么改,最终发现结果还是6 ,
8 : 约束添加为 input delay from pin to internal cells ;
这个我没有研究明白,还要继续深入研究
失音吉他
2011-10-08