cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 
Highlighted
Contributor
Contributor
1,469 Views
Registered: ‎02-08-2013

use of beta_device in vivado_hls (2017.2)

Jump to solution

Hello,

 

I try to synthesize the so called "targeted reference design" for the ZCU106, that is a Ultrascale+ MPSOC EV device. Some of the many OOC subsystems fail to synthesize, all of them have in common the usage of vivado_hls, whilst the many successfull subsystems use plain vivado.

 

The vivado_hls.log file which is deployed in one of the "run" subdirectories, mentions:

ERROR: [HLS 200-70] Part 'xczu7ev' is not installed.

But the plain vivado has no problem with this "beta" device.

 

To better understand the issue, I've written a very short .tcl file

open_project -reset try_hls
open_solution -reset solution1
set_part {xczu7ev-ffvc1156-2-i-es2}

and execute this on the command line once with 2017.4 vivado_hls and once with 2017.2 vivado_hls. 2017.4 does succeed, 2017.2 does not.

I'm aware of this

enable_beta_device xczu7ev*

in the Vivado_init.tcl file, which I have installed for both versions.

I can't use 2017.4, because the IP upgrade drowns me with lots of IP issues which I currently can not bear to cope with, and thus like to use 2017.2 for this evaluation.

Can You give me a hint, how to identify the actual issue.

 

Regards,

0 Kudos
1 Solution

Accepted Solutions
Highlighted
Moderator
Moderator
1,869 Views
Registered: ‎10-04-2011

Hello larice,

 

You are right, we did work on improving the device synchronization between Vivado and Vivado HLS as part of a larger tool integration project during the 2017.x timeframe. 

 

In 2017.2, there are a few things to check for this. When HLS runs it looks at two TCL file initialization scripts:

 

In the software installation: <install_path>/Vivado/<version>/scripts/VivadoHLS_init.tcl

 

And, In the local user directory:
For Linux: $HOME/.Xilinx/Vivado/VivadoHLS_init.tcl
For Windows: %APPDATA%/Xilinx/Vivado/VivadoHLS_init.tcl

 

You can place the following into either of those TCL files:

enable_beta_device xczu7ev*

 

Note that this is in addition to the Vivado command that you have already entered. 

 

Also, it is requires that the device be installed (which it appears in your case it is) and you can quickly view this by looking at the installed_devices.txt file inside the Vivado install:

<install_path>/Vivado/<version>/data/parts/installed_devices.txt

 

OK, I hope this helps,

Scott

View solution in original post

0 Kudos
3 Replies
Highlighted
Moderator
Moderator
1,870 Views
Registered: ‎10-04-2011

Hello larice,

 

You are right, we did work on improving the device synchronization between Vivado and Vivado HLS as part of a larger tool integration project during the 2017.x timeframe. 

 

In 2017.2, there are a few things to check for this. When HLS runs it looks at two TCL file initialization scripts:

 

In the software installation: <install_path>/Vivado/<version>/scripts/VivadoHLS_init.tcl

 

And, In the local user directory:
For Linux: $HOME/.Xilinx/Vivado/VivadoHLS_init.tcl
For Windows: %APPDATA%/Xilinx/Vivado/VivadoHLS_init.tcl

 

You can place the following into either of those TCL files:

enable_beta_device xczu7ev*

 

Note that this is in addition to the Vivado command that you have already entered. 

 

Also, it is requires that the device be installed (which it appears in your case it is) and you can quickly view this by looking at the installed_devices.txt file inside the Vivado install:

<install_path>/Vivado/<version>/data/parts/installed_devices.txt

 

OK, I hope this helps,

Scott

View solution in original post

0 Kudos
Highlighted
Contributor
Contributor
1,421 Views
Registered: ‎02-08-2013

Hello Scott,

 

Thank you for the pointer to VivadoHLS_Init.tcl. I tried before my posting with "strace" whether there is such a thing. Unfortunately vivado_hls dies of segfault when being straced. Your suggestion

$HOME/.Xilinx/Vivado/VivadoHLS_init.tcl

does not work here. I've added a "puts" and additonally montitored with

inotifywait --monitor --recursive $HOME/.Xilinx

There is not any access monitored when I start

LANG=C /local/Vivado_HLS/2017.2/bin/vivado_hls testscript.tcl

whilst I see various accesses with

LANG=C /local/Vivado/2017.4/bin/vivado_hls testscript.tcl 

I then tried some different spellings, and different subdirectories but without any luck so far. But inotify can only check for successful "open" calls,  it does not monitor "stat" and thus can not say whether "vivado_hls" checks for presence of some different named file.

 

Then there is this difference: here vivado_hls was installed by the xilinx installer into /local/Vivado_HLS, not into /local/Vivado. Thus I suppose your suggested "software installation" path would not fit exactly.  But 2017.4 did not use this separate directory Vivado_HLS. Has this something to do with the problem ?

 

Further, I've tried to add the "enable.." directly into the testscript, in the hope it should fit there too.

But then 2017.2 vivado_hls says

invalid command name "enable_beta_device"

 which makes me think this wouldn't work anyway, even if I find a proper "init.tcl" file location.

 

Can you provide another thing, I might check for ?,

For example some sort of "verbosity" flag to find out what the correct init.tcl file name is ?

And whats with this seemingly nonexistant "enable_beta_device" command ?

 

Regards,

Robert

0 Kudos
Highlighted
Contributor
Contributor
1,413 Views
Registered: ‎02-08-2013

Hello Scott,

 

The problem is solved, with your hint to installed_devices.txt.

I have checked plain vivado 2017.2 with tcl command "get_parts *zu7ev*", and it did report

  the devices being available. I have checked plain vivado 2017.2 fresh project with a zu7ev device, it did work. Then I checked vivado_hls fresh project, there is no zu7ev. Then I peeked into your installed_devices.txt file, no zu7ev to be seen. Then I've "upgraded" plain vivado 2017.2 another time, I did so previously, and it did not download anything, but before finishing it said approximately "updating list of installed devices", and voila installed_devices.txt has changed and vivado_hls does find them. I can remember having seen this "updating" message previously, so I've not really any idea why it didn't complete in the first place.

 

Anyway your response was very helpful,

Thanks,

Robert

0 Kudos