dc的min_delay/hold错误处理
时间:10-02
整理:3721RD
点击:
在完成一次dc的综合的时候,发现某路径上有如题的错误,错误的信号 endpoint 是send_final_out_reg2;
这条路径的上的代码很简单啊,
就是把一个16分频使用下得到的信号(send_final_out_reg),用8分频的时钟完成一次“延时”得到send_final_out_reg2。
always @ ( posedge clk8 or negedge rst ) begin
if (~rst) ..
else begin
send_fianl_out_reg2 <= send_final_out_reg ;
end
end
我怀疑会不会是我对时钟的约束有问题,我约束时钟的时候设置了一个dont_touch_network和ideal net work 属性,报告如下:
PointIncrPath
--------------------------------------------------------------------------
clock clk16 (rise edge)0.000.00
clk_div/clk16 (clk_div)0.000.00 r
send_encode/clk16 (send_encode)0.000.00 r
send_encode/U66/O (INV1S)0.130.13 f
send_encode/U170/O (AOI112S)0.200.33 r
send_encode/U171/O (OAI112S)0.110.44 f
send_encode/send_final_out_reg2_reg/D (QDFFSBN)0.000.44 f
data arrival time0.44
clock clk8 (rise edge)0.000.00
clock network delay (ideal)1.001.00
clock uncertainty0.501.50
send_encode/send_final_out_reg2_reg/CK (QDFFSBN)0.001.50 r
library hold time-0.081.42
data required time1.42
--------------------------------------------------------------------------
data required time1.42
data arrival time-0.44
--------------------------------------------------------------------------
slack (VIOLATED)-0.97
补充一个小问题啊:
我对时钟的transition、latency、uncertainty设置不同的值进行分析,有几个疑问1、如果时钟已经设置了属性dont touch和ideal network,那么latency的值为何还会在timing report中的;如果是分频时钟要对其设置这个latency吗?
2、transition的值是否是会影响到信号通过单元的延时时间?
3、uncertainty的估算到底要如何进行,特别是hold uncertainty的设置,我一般对10Mhz的频率设置个0.4;如果是时钟是个分频时钟,那么uncertainty要如何处理?
求指导,我对这个已经头疼很久啦
1、有必要。dont_touch是让dc不做时钟树,于是你要手动指定这个
2、会,计算延时要考虑输入transiton。但时钟上的不影响数据
3、这个一般根据公式:skew+pll的jitter+margin
hold violation没什么问题, 在dc也不需要修,, 留到PR再处理..
tree都没有,分析hold没有意义