Showing results for 
Show  only  | Search instead for 
Did you mean: 
Registered: ‎11-20-2019

Erratic behaviour of vivado script (MIG in a bloc design)

Hello everybody.


On my current project, I use a vivado script which cannot reach to the end each time. It fails at different steps during the execution. I only use the make prj.gen command to generates the vivado project. After I use the gui interface.

What happen is, when the Block Design file (.tcl) containing a MIG is executed, an error can appear (not all the time, but really frequently). I share in attached file the kind of error I got this Morning. The other workers of my team who use thos kind of scripts does not have any problem like that, but does not generate MIG in a block design as I do.

One of the work around is to deactivate Kaspersky protection, but this cannot be done all the time because it is really unsafe.

My IT support is trying to find a solution to this problem, without succes yet. As I understand, they found that Kaspersky could be activated or called by a Windows process during the script execution.

I also give you the script I use.

Do you have any idea ?



Antoine MASSON

0 Kudos
1 Reply
Registered: ‎09-12-2007

When you are doing the command below. What do you specify for X? 

launch_runs synth_1 -jobs X

If you are creating a script, that you want to be portable, then you should read the amount of CPU you have available

You can create  a proc similar to here:

launch_runs synth_1 -jobs [numberOfCPUs]

I pulled this off of the web somewhere. 

proc numberOfCPUs {} {
    	# Windows puts it in an environment variable
    	global tcl_platform env
    	if {$tcl_platform(platform) eq "windows"} {
    	    return $env(NUMBER_OF_PROCESSORS)
    	# Check for sysctl (OSX, BSD)
    	set sysctl [auto_execok "sysctl"]
    	if {[llength $sysctl]} {
    	    if {![catch {exec {*}$sysctl -n "hw.ncpu"} cores]} {
    	        return $cores
    	# Assume Linux, which has /proc/cpuinfo, but be careful
    	if {![catch {open "/proc/cpuinfo"} f]} {
    	    set cores [regexp -all -line {^processor\s} [read $f]]
    	    close $f
    	    if {$cores > 0} {
    	        return $cores


0 Kudos