Forum Discussion
Realistic values for set_max_skew
I have a design with asynchronous input and output bus signals.
For the input bus signals I do not care how much time it takes from the Input Ports to the first register. For the output signals I also do not care how much time it takes from the last register to the output ports. The only thing that I really care about is, the skew of the bus signals.
I have created a very simple dummy design and added sdc design constraints.
module top(
input clk,
input [1:0] input_bus,
output reg [1:0] output_bus
);
reg [1:0] register;
always @(posedge clk) begin
register <= input_bus;
output_bus <= register;
end
endmodulecreate_clock -name clk -period 20 [get_ports clk]
set_max_skew -from [get_ports {input_bus[*]}] 0.5
set_max_skew -to [get_ports {output_bus[*]}] 0.5Timing Analyzer fails.
I do not have a lot of experience with SDC constraints and bus timing. My feelfing is, that 0.5ns bus skew is not unrealistic.
Is my expectation wrong, or am I doing something wrong?
4 Replies
- sstrell
Super Contributor
What are your set_input_delay and set_output_delay constraints?
- SimonT
New Contributor
I do not have any set_input_dealy and set_output_delay constraints.
The hardware on input and output side is running on a completly independent clock. I do not know what their frequency and phase offset to my clock is.- sstrell
Super Contributor
Then it sounds like you should just false path the I/O. I don't know if set_max_skew still matches skews on cut paths, but it's worth it to try.
- RichardT_altera
Super Contributor
Do you need any further help regarding this case?
Which device are you using?
You could also try changing the Optimization Mode to High or Superior Performance (Assignments → Settings → Compiler Settings), or run a seed sweep to see if the skew improves.
Regards,
Richard Tan