Documente Academic
Documente Profesional
Documente Cultură
Question:
I would like to verify the maximum delay on the asynchronous path in the following circuit.
u1 u2
+----+ +----+
clk1 |D Q|=============|D Q|
o---------------|CP | +--|CP |
+----+ | +----+
o-------------------------------+
clk2
In this circuit, clk1 and clk2 are asynchronous with each other, and both clocks are defined by the create_clock command
in SDC. To verify the delay from u1/CP to u2/D, I tried to constrain the path with the following command:
However, this command did not constrain the path, and PrimeTime reported a "No constrained paths" message when I ran
the report_timing command on these paths.
Is there a way to verify this kind of path? This circuit example is commonly used in asynchronous FIFOs. Even though clk1
and clk2 are intrinsically asynchronous with each other, the delay on the data paths must be limited to ensure the circuit
functionality.
Answer:
1. It assumes false paths between the clk1-to-clk2 and clk2-to-clk1 domain paths.
2. It assumes infinite timing windows for the active aggressor net from the asynchronous clock domains on a victim net—
that is, active asynchronous aggressor timing windows are always considered to overlap with the victim timing window.
Note:
When running Design Compiler or PrimeTime without PrimeTime SI, only the first assumption applies.
To check the timing between the asynchronous clock domains clk1 and clk2, use the set_clock_groups -asynchronous
command with the -allow_paths option, as shown in the following example:
Notes:
If the asynchronous relationship is already set before using the -allow_paths option, you must remove the
asynchronous relationship with the remove_clock_group command before applying the set_clock_groups -
asynchronous command with the -allow_paths option.
When using the -allow_paths option, you must also use the -asynchronous option.
With the -allow_paths option, Primetime SI does not apply the false paths between the specified asynchronous clock
domains. However, the tool applies an infinite timing window for the asynchronous clock domain's aggressor net.
Although the -allow_paths option has no effect in Design Compiler or PrimeTime without PrimeTime SI, you should
maintain consistency between your Design Compiler, PrimeTime, and PrimeTime SI constraints by using the
set_clock_groups -asynchronous command with the -allow_paths option.
The check_timing -override_defaults clock_crossing command reports as such the asynchronous clock
domains has valid clock crossings.
Design Compiler considers the asynchronous paths for timing optimization if the -allow_paths option is used.
To apply timing exceptions on the asynchronous paths and override the default single cycle behavior, you can apply the
set_multicycle_path or set_max_delay command if you use the set_clock_groups -asynchronous command
https://solvnet.synopsys.com/retrieve/print/033777.html 1/2
15/11/2018 Checking the Timing Between Asynchronous Clock Group Paths
with the -allow_paths option. For example:
No constrained paths.
Next, use the set_clock_groups -asynchronous command with the -allow_paths option:
https://solvnet.synopsys.com/retrieve/print/033777.html 2/2