cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 
wfjmueller
Explorer
Explorer
318 Views
Registered: ‎11-23-2009

Howto disable bitstream generation when timing closure missed

I'm using a Vivado -batch in a GitLab CI/CD flow and like to prevent bitstream generation when timing closure is missed.

https://www.xilinx.com/support/answers/59051.html suggests that escalating  Timing 38-282 to severity error is enough, but a simple

set_msg_config -id {Timing 38-282} -new_severity {ERROR}

doesn't work, the batch flow simply run to the end.

I've tried to disable the bitstream creation in the post route hook. But that doesn't work because this hook is executed before the timing report, which issues the essential warning, is created. So finally I abort in the write_bitstream pre hook with

if {[get_msg_config -severity {error} -count]} {
  error "ABORT bitstream creation, errors seen before"
}

 Is that the recommended way to go ?
Or is there a less rude way to conditionally prevent bitstream generation ?

0 Kudos
2 Replies
surajc
Xilinx Employee
Xilinx Employee
238 Views
Registered: ‎01-30-2019

Hi @wfjmueller 
instead of launching runs from GUI, Can you try launching it from TCL console but in such manner that the tool will stop once it detects that Timing is not met. 
For example: 

launch_runs impl_1
wait_on_run impl_1
set timing_score [get_property STATS.WNS [get_runs impl_1]]
if {  $timing_score < 0 } {
    puts stderr "Timing not met"
    
} else {
	write_bitstream ./test.bit

}

 

surajc
Xilinx Employee
Xilinx Employee
238 Views
Registered: ‎01-30-2019

@wfjmueller 

I tested the above script on one of the projects and it works

surajc_0-1611812271597.png

 

0 Kudos