這些方法是從PrimeTime的文件抽出
但一樣適用於Desing Compile
Four Clocks and One Selection Signal
有不同的寫法設定方法1
One way to prevent checking between unrelated clocks is to set a false path between the clocks. For example,
pt_shell> set_false_path -from CK1 -to CK2
pt_shell> set_false_path -from CK2 -to CK1
pt_shell> set_false_path -from CK3 -to CK4
pt_shell> set_false_path -from CK4 -to CK3
pt_shell> set_false_path -from CK1 -to CK4
pt_shell> set_false_path -from CK4 -to CK1
pt_shell> set_false_path -from CK2 -to CK3
pt_shell> set_false_path -from CK3 -to CK2
In that case, PrimeTime tests all of the valid combinations of enabled clocks in a single run, while ignoring the invalid combinations.
設定方法2
Another way is to use case analysis and set a logic value, either 0 or 1, on the SEL input, which checks the timing for a particular case of SEL=0 or SEL=1.
For example,
pt_shell> set_case_analysis 0 [get_ports SEL]
With SEL=0, only CK1 and CK3 are active; CK2 and CK4 are ignored. If you want to analyze both cases, two analysis runs are necessary: one with SEL=0 and another with SEL=1.
pt_shell> set_case_analysis 0 [get_ports SEL]
With SEL=0, only CK1 and CK3 are active; CK2 and CK4 are ignored. If you want to analyze both cases, two analysis runs are necessary: one with SEL=0 and another with SEL=1.
設定方法3 這個方法較適用於PT
Another method to accomplish the same effect is to use the set_disable_timing
command. For example, to disable checking of all paths leading from the CKP2 and CKP4 clock input pins of the design:
pt_shell> set_disable_timing [get_ports {CKP2 CKP4}]
command. For example, to disable checking of all paths leading from the CKP2 and CKP4 clock input pins of the design:
pt_shell> set_disable_timing [get_ports {CKP2 CKP4}]
設定方法4
Still another way is to specify which clocks can be active together at the same time and which clocks are currently active. For example,
pt_shell> set_clock_groups -logically_exclusive -name E1 \
-group {CK1 CK3} -group {CK2 CK4}
pt_shell> set_active_clocks [all_clocks]
The set_clock_groups command defines groups of clocks that are exclusive with respect to each other. PrimeTime does not check paths that start from a clock in one group and end at a clock in another group. If you specify just one group, that group is considered exclusive with respect to all other clocks in the design.
pt_shell> set_clock_groups -logically_exclusive -name E1 \
-group {CK1 CK3} -group {CK2 CK4}
pt_shell> set_active_clocks [all_clocks]
The set_clock_groups command defines groups of clocks that are exclusive with respect to each other. PrimeTime does not check paths that start from a clock in one group and end at a clock in another group. If you specify just one group, that group is considered exclusive with respect to all other clocks in the design.
設定方法5
In the preceding example, the set_active_clocks command makes all four clocks active, so that PrimeTime analyzes all valid paths while avoiding the invalid clock combinations.
If you want to consider only the case where SEL=0, you can do it easily by using a different set_active_clocks command:
pt_shell> set_clock_groups -logically_exclusive -name E1 \
-group {CK1 CK3} -group {CK2 CK4}
pt_shell> set_active_clocks {CK1,CK3}
Setting clocks CK1 and CK3 active means that CK2 and CK4 are inactive, which is just like using case analysis and setting SEL=0 or setting false paths between all combinations of clocks not using CK1 and CK3.
If you want to consider only the case where SEL=0, you can do it easily by using a different set_active_clocks command:
pt_shell> set_clock_groups -logically_exclusive -name E1 \
-group {CK1 CK3} -group {CK2 CK4}
pt_shell> set_active_clocks {CK1,CK3}
Setting clocks CK1 and CK3 active means that CK2 and CK4 are inactive, which is just like using case analysis and setting SEL=0 or setting false paths between all combinations of clocks not using CK1 and CK3.

沒有留言:
張貼留言