02-17-2021 04:02 PM
Hello, quick question for the forum members. Would one set LED indicator signals or test outputs signals as False Paths? Is that generally done? Signals that you don't care about timing.
Thank you
Joe
02-17-2021 05:18 PM
To add to markg@prosensing.com 's response, what he is suggesting is completely correct from the static timing point of view. If an output port has no set_output_delay, then it is not part of a path - a path can only end at a clocked object; in the case of an output port, the "clocked object" is the one "created" by the set_output_delay - it "creates" a clocked object clocked by the clock specified in the -clock option and with a delay specified by the value in the command. So without a set_output_delay, the cells and nets between the final flip-flop (technically the clock pin of that flip-flop) and the output port are not part of a path, and hence will not result in a timing report.
However, the tools have a specific check for unconstrained output ports - the "check_timing" command (which is done as part of the normal flow) will flag these "unconstrained output ports" (which are either a warning or a critical warning - I don't remember which). If these are asynchronous outputs like LEDs, then you can ignore the warning. But many designed are uncomfortable ignoring warnings, so they want to fix them.
To do this, you do two things:
This, then satisfies the check_timing command and tells the tool that there are no timing requirements on the path.
Avrum
02-17-2021 04:29 PM
Hi Joe,
The set_false_path timing exception is placed on a signal path.
So, for an LED, there will be a signal in the FPGA (lets called it LED1_CTRL) that travels the following path:
Unless you have placed an a set_output_delay constraint on the port, LED1, then the path described above is automatically not analyzed by timing analysis - and there is no need to use a set_false_path constraint.
Other test outputs can be handled like the LED example I have shown. That is, if you have not placed a set_output_delay constraint on the IO port then you don't need to use a set_false_path constraint.
However, make sure that your test outputs travel from a flipflop to the IO port - and not from a LUT to the IO port. This is called "registering outputs" of the FPGA and is needed to prevent sending signal glitches out of the FPGA.
Cheers,
Mark
02-17-2021 05:18 PM
To add to markg@prosensing.com 's response, what he is suggesting is completely correct from the static timing point of view. If an output port has no set_output_delay, then it is not part of a path - a path can only end at a clocked object; in the case of an output port, the "clocked object" is the one "created" by the set_output_delay - it "creates" a clocked object clocked by the clock specified in the -clock option and with a delay specified by the value in the command. So without a set_output_delay, the cells and nets between the final flip-flop (technically the clock pin of that flip-flop) and the output port are not part of a path, and hence will not result in a timing report.
However, the tools have a specific check for unconstrained output ports - the "check_timing" command (which is done as part of the normal flow) will flag these "unconstrained output ports" (which are either a warning or a critical warning - I don't remember which). If these are asynchronous outputs like LEDs, then you can ignore the warning. But many designed are uncomfortable ignoring warnings, so they want to fix them.
To do this, you do two things:
This, then satisfies the check_timing command and tells the tool that there are no timing requirements on the path.
Avrum
02-17-2021 05:53 PM
Thanks Mark!
02-17-2021 05:56 PM
Avrum,
Hello, thank you for your detailed response. I sure have a lot to learn.
Joe