cancel
Showing results for 
Search instead for 
Did you mean: 
Highlighted
Anonymous
Not applicable
2,636 Views

Simulation script from Vivado 2015.2 to 2017.2

Jump to solution

Hi all,

I have a non project mode simulation environment for Vivado 2015.2. When I changed it to Vivado 2017.2, the simulation scripts generated(compile.sh) do not contain information of some of IPs(especially Xilinx VHDL based IPs).

 

My TCL Script  for 2015.2(non project mode) look like below. It was working fine.

----------------------------------------------------------------------------------

source BD_file_name.tcl

set bd_file "*/design_1.bd"
reset_target {all} [get_files $bd_file]
generate_target {all} [get_files $bd_file]
launch_simulation -scripts_only -absolute_path

------------------------------------------------------------------------------------------

 

In Vivado 2017.2, When I opened the project, source BD_file_name.tcl , generate target in GUI (After right click BD) and give launch_simulation -scripts_only -absolute_path, it worked correctly.

 

I want to do it in non-project mode. Please help.

 

Note:

When I generated target in GUI for Vivado 2017.2,  following commands also shown in TCL window.

export_ip_user_files -of_objects ........

create_ip_run [get_files -of_objects..........

launch_runs -jobs 10 {design_1_axi_ahblite_bridge_0_0_synth_1...........

export_simulation -of_objects [get_files.............

 

I can add these commands too in my TCL script but not sure about launch_runs, because that can change if there is a modification in Block design also that command is too long.

 

Regards

Anoop

 

0 Kudos
1 Solution

Accepted Solutions
Highlighted
Moderator
Moderator
3,801 Views
Registered: ‎11-09-2015

Re: Simulation script from Vivado 2015.2 to 2017.2

Jump to solution

Hi @Anonymous,

 

Could you give more information when you say it is not working? Do you have any output message in the log console?

 

A quick way to launch all runs should be something like:

launch_runs [get runs <bd name>*]

or

launch_runs [get runs *_synth*]

 

Hope that helps,

 

regards,

 

Florent


Florent
Product Application Engineer - Xilinx Technical Support EMEA
**~ Don't forget to reply, give kudos, and accept as solution.~**

View solution in original post

18 Replies
Highlighted
Anonymous
Not applicable
2,602 Views

Re: Simulation script from Vivado 2015.2 to 2017.2

Jump to solution

One more information to add,

In Vivado 2017.2, When I opened the project, source BD_file_name.tcl , type generate_target all in TCL window and give launch_simulation -scripts_only -absolute_path, it DID NOT work correctly. (Only GUI mode worked).

0 Kudos
Highlighted
Moderator
Moderator
2,596 Views
Registered: ‎01-16-2013

Re: Simulation script from Vivado 2015.2 to 2017.2

Jump to solution
Hi,

The IP may changed from 2015.2 to 2017.2. It's always recommended to upgrade the IP, generate output products and use the latest files.

Regarding simulation scrip, if you generate the script for 2017.2 and use is it working? If yes that's the correct usage.

If you have any problem with 2017.2 project files and script let us know.

Thanks,
Yash
0 Kudos
Highlighted
Anonymous
Not applicable
2,593 Views

Re: Simulation script from Vivado 2015.2 to 2017.2

Jump to solution

Hi yash,

Thanks for the reply.

 

<<The IP may changed from 2015.2 to 2017.2. It's always recommended to upgrade the IP, generate output products and use the latest files>>

When I migrated the project to Vivado 2017.2, all IPs were updated and generated bit stream successfully. This problem is with generating simulation scripts.

 

<<If you have any problem with 2017.2 project files and script let us know>>

"generate_target all" command behaves differently when invoked from GUI(Right click Block design) and run from TCL window. That is my point here. 
Please look this and give me some advice.

 

Regards

Anoop

0 Kudos
Highlighted
Moderator
Moderator
2,565 Views
Registered: ‎11-09-2015

Re: Simulation script from Vivado 2015.2 to 2017.2

Jump to solution

HI @Anonymous,

 

From 2015.2 to 2017.2 there was a change in the default option for the output product generation. I was global in 2015.2 it is now OOC per IP per default.

I know this created some issues in batch mode.

 

If you generate the output products with the GUI and clear them, save the project and try again with the GUI, does it works? If yes, there should be a command to convert the BD.

 

Hope that helps,

 

Florent


Florent
Product Application Engineer - Xilinx Technical Support EMEA
**~ Don't forget to reply, give kudos, and accept as solution.~**
0 Kudos
Highlighted
Anonymous
Not applicable
2,553 Views

Re: Simulation script from Vivado 2015.2 to 2017.2

Jump to solution

Hi 

 

 

 

 

0 Kudos
Highlighted
Moderator
Moderator
2,551 Views
Registered: ‎11-09-2015

Re: Simulation script from Vivado 2015.2 to 2017.2

Jump to solution

Hi @Anonymous,

 

The AR#68238 is mentioning the issue I was thinking about. I still think this is linked. Could you have a look?


Florent
Product Application Engineer - Xilinx Technical Support EMEA
**~ Don't forget to reply, give kudos, and accept as solution.~**
0 Kudos
Highlighted
Moderator
Moderator
2,550 Views
Registered: ‎04-24-2013

Re: Simulation script from Vivado 2015.2 to 2017.2

Jump to solution

Hi @Anonymous,

 

The launch_simulation command is for the project flow and isn't recommended for non-project flow.

You would be recommended to use the export_simulation command instead.

 

If you are using a third party simulator  e.g. Questa then the syntax will be similar to this

 

export_simulation -simulator questa -directory ./where_to_store_script -lib_map_path ./where_compiled_libraries_are/

 

If using Vivado as your Simulator then it will be similar to this

 

export_simulation -simulator xsim -directory./where_to_store_script

 

Using export_simulation -help will give you a list of the options available.

 

 

Also if using a third party simulator you will need to compile the simulation libraries.

This can be done either with the GUI in Tools, Compile Simulation Libraries or with the compile_simlib command.

 

Be careful of the version of the simulator that you use as each version of Vivado supports only a minimum version of the simulators. This is documented in UG973. Moving from one version of Vivado to another needs the libraries to be recompiled even if the simulator version has not changed.

 

Let me know if this helps.

Best Regards
Aidan

 

------------------------------------------------------------------------------------------------------------------
Please mark the Answer as "Accept as solution" if this answered your question
Give Kudos to a post which you think is helpful and may help other users
------------------------------------------------------------------------------------------------------------------
Highlighted
Anonymous
Not applicable
2,536 Views

Re: Simulation script from Vivado 2015.2 to 2017.2

Jump to solution

Hi 

Thanks for the AR. I too expected it could solve my issue.But unfortunately not.

 

My problem is not about generating simulation script(compile,elaborate & simulate.sh). They are generating but compile information of some modules are missing.

 

Regards

Anoop

0 Kudos
Highlighted
Anonymous
Not applicable
2,535 Views

Re: Simulation script from Vivado 2015.2 to 2017.2

Jump to solution

Hi 

 

 

0 Kudos
Highlighted
Moderator
Moderator
2,327 Views
Registered: ‎04-24-2013

Re: Simulation script from Vivado 2015.2 to 2017.2

Jump to solution

Hi @Anonymous,

 

Yes the export_simulation command creates one batch file that performs the compile, elaborate and simulate.

 

The steps to simulate the design in IES would be the following.

 

Setup your project, you can check that it launches simulation in Vivado Simulator if you wish.

 

Compile the simulation libraries in 2017.2 for IES 15.20.014 or later, previous versions are not supported (UG973) in 2017.2

This is a one time run and can take several minutes (cup of coffeee)

 

Capture.JPG

 

Once the libraries are compiled use export_simulation

 

export_simulation -simulator ies -directory ./path_to -lib_map_path ./path_to_libraries

 

This should create a directory called ies in the ./path_to directory

 

Then cd to the ies directory which you specified in the -directory switch and run the .sh batch file.

 

Cadence IES should now launch and run the simulation.

 

Best Regards
Aidan

------------------------------------------------------------------------------------------------------------------
Please mark the Answer as "Accept as solution" if this answered your question
Give Kudos to a post which you think is helpful and may help other users
------------------------------------------------------------------------------------------------------------------
Highlighted
Anonymous
Not applicable
2,323 Views

Re: Simulation script from Vivado 2015.2 to 2017.2

Jump to solution

 

0 Kudos
Highlighted
Anonymous
Not applicable
2,322 Views

Re: Simulation script from Vivado 2015.2 to 2017.2

Jump to solution

Hi 

 

 

 

 

To work in batch mode , I need to give export_ip_user_files,create_ip_run,launch_runs,export_simulation commands manually after genertae_target command.

 

Is there any way to give launch_runs command in an easy and short way? because that command contains all the IPs in BD and can change also based on BD change.

 

Regards

anoop

 

0 Kudos
Highlighted
Moderator
Moderator
3,802 Views
Registered: ‎11-09-2015

Re: Simulation script from Vivado 2015.2 to 2017.2

Jump to solution

Hi @Anonymous,

 

Could you give more information when you say it is not working? Do you have any output message in the log console?

 

A quick way to launch all runs should be something like:

launch_runs [get runs <bd name>*]

or

launch_runs [get runs *_synth*]

 

Hope that helps,

 

regards,

 

Florent


Florent
Product Application Engineer - Xilinx Technical Support EMEA
**~ Don't forget to reply, give kudos, and accept as solution.~**

View solution in original post

Highlighted
Moderator
Moderator
2,306 Views
Registered: ‎04-24-2013

Re: Simulation script from Vivado 2015.2 to 2017.2

Jump to solution

Hi @Anonymous,

 

Just to clarify, you can run both project and non-project flows using batch scripts so just make sure that you don't mix the flows in the one script as it can lead to issues.

 

User Guide 900 (attached), Chapter 7 has information on simulating in batch / scripted mode.

 

Capture.JPG

 

Best Regards
Aidan

 

------------------------------------------------------------------------------------------------------------------
Please mark the Answer as "Accept as solution" if this answered your question
Give Kudos to a post which you think is helpful and may help other users
------------------------------------------------------------------------------------------------------------------
Highlighted
Anonymous
Not applicable
2,299 Views

Re: Simulation script from Vivado 2015.2 to 2017.2

Jump to solution

Hi 

{A quick way to launch all runs should be something like:

launch_runs [get runs <bd name>*]

or

launch_runs [get runs *_synth*]

}

A good solution. Seems my problem solved at last. Thank you.

 

{Could you give more information when you say it is not working? Do you have any output message in the log console?}

 

If I give only 'genertae_target all' and 'launch_simulation -script only -absolute path', few files ( below ) were not included in compile.sh. So they never compiled and end up error in simulation saying that module not found.

 

"/home/FPGA_TOP/FPGA_TOP.ip_user_files/bd/design_1/ip/design_1_RXMODULE_D_0_0/RTL/crop/xil_crop_mult_gen/sim/xil_crop_mult_gen.vhd"
"/home/FPGA_TOP/FPGA_TOP.ip_user_files/bd/design_1/ip/design_1_RXMODULE_D_0_0/RTL/TOP/IP/dpram_8x256to32x64/sim/dpram_8x256to32x64.v"

 

When I included the new steps( export_ip_user_files,create_ip_run,launch_runs) after genertae_target all and ran 'launch_simulation -script only -absolute path', the above files were included in compile.sh

 

If you have any information, please share it. Otherwise I shall close this thread.

 

regards

Anoop

 

 

0 Kudos
Highlighted
Moderator
Moderator
2,284 Views
Registered: ‎11-09-2015

Re: Simulation script from Vivado 2015.2 to 2017.2

Jump to solution

Hi @Anonymous,

 

When I included the new steps( export_ip_user_files,create_ip_run,launch_runs) after genertae_target all and ran 'launch_simulation -script only -absolute path', the above files were included in compile.sh

> I just think this is the new way vivado works. You have to generate what you want "manually". (This way vivado does not generate stuffs you don't want)

 

Regards,

 

Florent


Florent
Product Application Engineer - Xilinx Technical Support EMEA
**~ Don't forget to reply, give kudos, and accept as solution.~**
0 Kudos
Highlighted
Anonymous
Not applicable
2,276 Views

Re: Simulation script from Vivado 2015.2 to 2017.2

Jump to solution

 

(This way vivado does not generate stuffs you don't want)

 

The stuffs mentioned here are components inside a user IP packager. There are many other components inside this packager as well as in other packages. They were all included in compile.sh.

Then I wonder why vivado thought only these files are not needed for me :)

 

Regards

Anoop

0 Kudos
Highlighted
Moderator
Moderator
2,273 Views
Registered: ‎11-09-2015

Re: Simulation script from Vivado 2015.2 to 2017.2

Jump to solution

Hi @Anonymous,

 

You can generate the output products for only a specific simulator or for all simulators. For most of the case you don't need all the simulators but you at least need to select one (vivado simulator).

You might find more information in some UG (probably the one for the vivado flow).

 

Regards,

 

Florent


Florent
Product Application Engineer - Xilinx Technical Support EMEA
**~ Don't forget to reply, give kudos, and accept as solution.~**
0 Kudos