Forum Discussion
set_max_skew giving path not found warning
- 5 years ago
Hey,
I have the exact same problem. https://community.intel.com/t5/Intel-Quartus-Prime-Software/Crossing-Clock-Domain-Problems-Timing-Analyser-ignores-set-max/td-p/1308590 .
However it works during the place and route and also the designs output is correct. I can not detect any metastability.Am I right assuming that this error just occurs while using the Timing Analyser and no error is thrown during compilation?
Sadly I also got no answer as do other people with the same question (looking through the forum it gets asked at least once a week I would say).
Best regard
Christian
Hi Syafieq,
I was following the guidelines in the article you shared.
I created a clock group with only the spi clk and spi virtual clock
# Create clock group for SPI clk
set_clock_groups -asynchronous -group [get_clocks {spi_clk spi_virt_clk}]
Then i created the net delay and max skew constraints
# Set net delay between spiclk to sys clk data crossings
set_net_delay -from [get_registers {*spi*shift_reg[*]*}] -to [get_registers {*spi*rx_data_reg[*]*}] -max -get_value_from_clock_period dst_clock_period -value_multiplier 0.8
# Set max skew between spiclk to sys clk data crossings
set_max_skew -from [get_registers {*spi*shift_reg[*]*}] -to [get_registers {*spi*rx_data_reg[*]*}] -get_skew_value_from_clock_period min_clock_period -skew_value_multiplier 0.8
Only the max skew command generated warning. The net delay command using the same search keywords found the path.
Warning (332182): No path is found satisfying assignment "set_max_skew -from [get_registers {*spi*shift_reg[*]*}] -to [get_registers {*spi*rx_data_reg[*]*}] -get_skew_value_from_clock_period min_clock_period -skew_value_multiplier 0.800 ". This assignment will be ignored.
Info (286030): Timing-Driven Synthesis is running
Warning (332182): No path is found satisfying assignment "set_max_skew -from [get_registers {*spi*shift_reg[*]*}] -to [get_registers {*spi*rx_data_reg[*]*}] -get_skew_value_from_clock_period min_clock_period -skew_value_multiplier 0.800 ". This assignment will be ignored.
Warning (332182): No path is found satisfying assignment "set_max_skew -from [get_registers {*spi*shift_reg[*]*}] -to [get_registers {*spi*rx_data_reg[*]*}] -get_skew_value_from_clock_period min_clock_period -skew_value_multiplier 0.800 ". This assignment will be ignored.
I tried by commenting out only the clock group command. Then the max skew and net delay commands gave no warnings.
The net delay command works and doesnt generate a warning.
If i comment out the set_clock_group command then the max_skew command executes and doesn't generate a warning.
I also tried to use the name finder as you suggested to see the response. I get an error showing that, first create timing netlist must be run. I think in the normal compilation flow, the sdc are executed after the netlist is created. so this command should work as it does for other commands.
In the TA, I am able to see the registers using the get registers command:
Regards
Jay