UPGRADE YOUR BROWSER

We have detected your current browser version is not the latest one. Xilinx.com uses the latest web technologies to bring you the best online experience possible. Please upgrade to a Xilinx.com supported browser:Chrome, Firefox, Internet Explorer 11, Safari. Thank you!

cancel
Showing results for 
Search instead for 
Did you mean: 
Highlighted
Participant sean.durkin
Participant
9,176 Views
Registered: ‎05-15-2013

Vivado Simulator 2015.3: xelab and xvhdl commands "unknown" (Warning Common 17-259)

Jump to solution

Hi *,

 

Quoting AR#64118, the usage for overriding VHDL GENERICs on the command line should be like this:

 

Example: xelab -generic_top "N=12" work.Counter

 

If I try exactly that, the following happens:

 

xelab -generic_top "N=12" work.Counter
WARNING: [Common 17-259] Unknown Tcl command 'xelab -generic_top N=12 work.Counter' sending command to the OS shell for execution.
Vivado Simulator 2015.3
Copyright 1986-1999, 2001-2015 Xilinx, Inc. All Rights Reserved.
Running: C:/Xilinx/Vivado/2015.3/bin/unwrapped/win64.o/xelab.exe -generic_top N 12 work.Counter
Multi-threading is on. Using 6 slave threads.
ERROR: [XSIM 43-3225] Cannot find design unit work.12 in library work located at xsim.dir/work.
child process exited abnormally

So, for whatever reason my Vivado installation does not seem to know about the "xelab" command and then sends it on to the shell for execution. The problem is that it is messing up the arguments in the process (it converts "N=12" to "N 12", which is bulls***).

 

I see the same problem exists also for the xvhdl command, this also generates a warning about the command being unkown...

 

What is going on here? Is this a problem of my installation? I tried this on my colleagues' machines, and we all have the same problem in every installation, also with older Vivado releases.

 

Bug, feature, installation mistake...? Any ideas?

0 Kudos
1 Solution

Accepted Solutions
Xilinx Employee
Xilinx Employee
17,237 Views
Registered: ‎09-25-2014

Re: Vivado Simulator 2015.3: xelab and xvhdl commands "unknown" (Warning Common 17-259)

Jump to solution

Hi,

 

xvhdl,xelab and xsim are shell commands so when you are trying to run from Vivado tcl shell, it's sending to shell and during that "N=12" get converted into N 12 and hence you are seeing the ERROR. To invoke it correctly from Vivado TCL, you should invoke like below

 

exec xvhdl counter.vhd

exec xelab -generic_top "N=12" work.counter

 

--Srimayee

 

0 Kudos
2 Replies
Xilinx Employee
Xilinx Employee
17,238 Views
Registered: ‎09-25-2014

Re: Vivado Simulator 2015.3: xelab and xvhdl commands "unknown" (Warning Common 17-259)

Jump to solution

Hi,

 

xvhdl,xelab and xsim are shell commands so when you are trying to run from Vivado tcl shell, it's sending to shell and during that "N=12" get converted into N 12 and hence you are seeing the ERROR. To invoke it correctly from Vivado TCL, you should invoke like below

 

exec xvhdl counter.vhd

exec xelab -generic_top "N=12" work.counter

 

--Srimayee

 

0 Kudos
Participant sean.durkin
Participant
9,149 Views
Registered: ‎05-15-2013

Re: Vivado Simulator 2015.3: xelab and xvhdl commands "unknown" (Warning Common 17-259)

Jump to solution

Hi Srimayee,

 

thanks for the quick response!

 

Calling with "exec" works, but why is that necessary in the first place? Why are the arguments manipulated when a command is passed on to the OS shell? Isn't Vivado using "exec" anyway to call OS shell commands?

 

I think it is counter-intuitive for the end-user, if simulation commands that you want to execute when you're inside the simulator have to be called with "exec". When you use Modelsim, the "vcom" command is also an external shell command, but you don't have to call it with "exec", Modelsim will take care of that automatically.

 

Can't you just add a Tcl wrapping proc named "xelab" that calls "exec xelab"?

 

Greetings,

Sean



@srimaye wrote:

Hi,

 

xvhdl,xelab and xsim are shell commands so when you are trying to run from Vivado tcl shell, it's sending to shell and during that "N=12" get converted into N 12 and hence you are seeing the ERROR. To invoke it correctly from Vivado TCL, you should invoke like below

 

exec xvhdl counter.vhd

exec xelab -generic_top "N=12" work.counter

 

--Srimayee

 


 

0 Kudos