Wednesday, June 15, 2016

How can I selectively reset the global timing derate values?

Questions:
I have set the following global timing derate values:
pt_shell>set_timing_derate -late 1.05
pt_shell>set_timing_derate -early 0.95
Now, I want to reset the timing derate values on a specific instance, for example, U1;
pt_shell> reset_timing_derate [get_cells U1]
why is this command not resetting the timing derate values on the instance?

Answer:
The following cmds set the timing derate values globally on the entire current design:
pt_shell>set_timing_derate -late 1.05
pt_shell>set_timing_derate -early 0.95
pt_shell> report_timing_derate

                                             ----------Clock-----------                            -----------Data-----------------
                                        Rise                        Fall                      Rise                                  Fall
                                 Early        Late        Early      Late        Early    Late                 Early          Late
---------------------------------------------------------------------------------------------------------------------------------------------------
Design: test
Net delay static          0.95        1.05         0.95      1.05        0.95    1.05                  0.95           1.05
Net delay dynamic     0.95        1.05         0.95      1.05        0.95    1.05                  0.95           1.05
Cell Delay                  0.95        1.05         0.95      1.05        0.95    1.05                  0.95           1.05
Cell Check                    ---          ---            ---          ---            ---       ---                      ---              ---



Resetting derate values on instance U1 of the design only resets the timing derate values specifically set earlier on instance U1 but does not override the global timing derate settings:
pt_shell> set_timing_derate 1.55 -cell_delay -late [get_cells U1]
pt_shell> set_timing_derate 0.55
pt_shell> report_timing_derate [get_cells U1]
                                          ---------clock------------                    ------------Data------------
                                       Rise                    Fall                     Rise                       Fall
                                 Early      Late         Early   Late        Early   Late           Early    Late
-------------------------------------------------------------------------------------------------------------------------------
Cell(leaf):U1               0.55       1.55          0.55   1.55        0.55   1.55             0.55     1.55

Cell delay
2. Reset all timing derate values set globally on the complete current design:
pt_shell> reset_timing_derate
pt_shell>report_timing_derate [get_cells U1]
                            -------clock--------                            --------Data-------
                                      Rise                   Fall                       Rise                   Fall
                                Early     Late       Early    Late          Early    Late       Early    Late
---------------------------------------------------------------------------------------------------------------------
Cell(leaf):U1               ---        ---            ---        ---            ---          ---          ---        ---
    Cell delay
In conclusion, the reset_timing_derate cmd only resets the timing derate values at or below the scope where they were set. The cmd does not override the timing derate values set at a higher scope.

No comments:

Post a Comment