# Can't rebuild the base overlay Pynq 2.6 - couldn't execute "vivado\_hls"

**URL:** <https://discuss.pynq.io/t/cant-rebuild-the-base-overlay-pynq-2-6-couldnt-execute-vivado-hls/2310>\
**Category:** Support\
**Created:** [February 9, 2021, 4:40pm UTC](https://discuss.pynq.io/t/cant-rebuild-the-base-overlay-pynq-2-6-couldnt-execute-vivado-hls/2310 "2021-02-09T16:40:47Z")\
**Posts on this page:** 6\
**Page:** 1

<div class="post-metadata">

**Author:** ![Gwyc](https://avatars.discourse-cdn.com/v4/letter/g/f6c823/32.png) [@Gwyc](https://discuss.pynq.io/u/Gwyc)\
**Post date:** [February 9, 2021, 4:40pm UTC](https://discuss.pynq.io/t/cant-rebuild-the-base-overlay-pynq-2-6-couldnt-execute-vivado-hls/2310/1 "2021-02-09T16:40:47Z")

</div>

Hi everyone.

I followed [the tutorial](https://discuss.pynq.io/t/tutorial-rebuilding-the-pynq-base-overlay-pynq-v2-6/1993) to rebuild the base overlay for Pynq 2.6. However, I get an error

```
start_gui
cd <my_repo>/boards/ZCU104/base
source ./build_ip.tcl
# set current_dir [pwd]
# cd ../../ip/hls/
# set ip {color_convert_2 pixel_pack_2 pixel_unpack_2}
# foreach item $ip {
# if {[catch { glob -directory ${item}/solution1/impl/ip/ *.zip} zip_file]} {
# # Build IP only if a packaged IP does not exist
# puts "Building $item IP"
# exec vivado_hls -f $item/script.tcl
# } else {
# # Skip IP when a packaged IP exists in ip directory
# puts "Skipping building $item"
# }
# unset zip_file
# # Testing the built IP
# puts "Checking $item"
# set fd [open ${item}/solution1/syn/report/${item}_csynth.rpt r]
# set timing_flag 0
# set latency_flag 0
# while { [gets $fd line] >= 0 } {
# # Check whether the timing has been met
# if [string match {+ Timing: } $line] { 
# set timing_flag 1
# set latency_flag 0
# continue
# }
# if {$timing_flag == 1} {
# if [regexp {[0-9]+} $line] {
# set period [regexp -all -inline {[0-9]*\.[0-9]*} $line]
# lassign $period target estimated uncertainty
# if {$target < $estimated} {
# puts "ERROR: Estimated clock period $estimated > target $target."
# puts "ERROR: Revise $item to be compatible with Vivado_HLS."
# exit 1
# }
# }
# }
# # Check whether the II has been met
# if [string match {+ Latency: } $line] { 
# set timing_flag 0
# set latency_flag 1
# continue
# }
# if {$latency_flag == 1} {
# if [regexp {[0-9]+} $line] {
# set interval [regexp -all -inline {[0-9]*\.*[0-9]*} $line]
# lassign $interval lc_min lc_max la_min la_max achieved target
# if {$achieved != $target} {
# puts "ERROR: Achieved II $achieved != target $target."
# puts "ERROR: Revise $item to be compatible with Vivado_HLS."
# exit 1
# }
# }
# }
# # Testing ends
# if [string match {== Utilization Estimates} $line] { 
# unset timing_flag latency_flag period interval
# break
# }
# }
# unset fd
# }
Building color_convert_2 IP
couldn't execute "vivado_hls": no such file or directory

```

I have Vivado 2020.2. What did I do wrong ?

---

<div class="post-metadata">

**Author:** ![cathalmccabe](https://sea1.discourse-cdn.com/flex019/user_avatar/discuss.pynq.io/cathalmccabe/32/3348_2.png) [@cathalmccabe](https://discuss.pynq.io/u/cathalmccabe)\
**Post date:** [February 9, 2021, 5:11pm UTC](https://discuss.pynq.io/t/cant-rebuild-the-base-overlay-pynq-2-6-couldnt-execute-vivado-hls/2310/2 "2021-02-09T17:11:16Z")

</div>

You need to use **Vivado 2020.1**. This is indicated in the first line of the tutorial.  
Vivado 2020.1 is the version of Vivado that was tested with PYNQ 2.6.  
The tutorial/overlay build is untested with 2020.2.

For info, vivado\_hls was replaced with vitis\_hls in 2020.2 so this is why this part fails. Even if you update the commands to “vitis\_hls” I still expect other parts may not work as they have not been tested.  
Can you use 2020.1?

Cathal

---

<div class="post-metadata">

**Author:** ![Gwyc](https://avatars.discourse-cdn.com/v4/letter/g/f6c823/32.png) [@Gwyc](https://discuss.pynq.io/u/Gwyc)\
**Post date:** [February 9, 2021, 5:17pm UTC](https://discuss.pynq.io/t/cant-rebuild-the-base-overlay-pynq-2-6-couldnt-execute-vivado-hls/2310/3 "2021-02-09T17:17:00Z")

</div>

I didn’t think it wouldn’t work with a newer version.

Can I downgrade to 2020.1 ?

---

<div class="post-metadata">

**Author:** ![cathalmccabe](https://sea1.discourse-cdn.com/flex019/user_avatar/discuss.pynq.io/cathalmccabe/32/3348_2.png) [@cathalmccabe](https://discuss.pynq.io/u/cathalmccabe)\
**Post date:** [February 9, 2021, 5:28pm UTC](https://discuss.pynq.io/t/cant-rebuild-the-base-overlay-pynq-2-6-couldnt-execute-vivado-hls/2310/4 "2021-02-09T17:28:54Z")

</div>

No, unfortunately you need to install 2020.1 separately. You can have the two versions on your computer if you want to/if disk space allows.

Cathal

---

<div class="post-metadata">

**Author:** ![Gwyc](https://avatars.discourse-cdn.com/v4/letter/g/f6c823/32.png) [@Gwyc](https://discuss.pynq.io/u/Gwyc)\
**Post date:** [February 9, 2021, 5:41pm UTC](https://discuss.pynq.io/t/cant-rebuild-the-base-overlay-pynq-2-6-couldnt-execute-vivado-hls/2310/5 "2021-02-09T17:41:14Z")

</div>

My problems are that I use it for an internship for college and I don’t have enough space to install both.

build\_ip.tcl tries to open color\_convert\_2\_csynth.rpt (“color\_convert\_2/solution1/syn/report/color\_convert\_2\_csynth.rpt”) that doesn’t exist either.

---

<div class="post-metadata">

**Author:** ![cathalmccabe](https://sea1.discourse-cdn.com/flex019/user_avatar/discuss.pynq.io/cathalmccabe/32/3348_2.png) [@cathalmccabe](https://discuss.pynq.io/u/cathalmccabe)\
**Post date:** [February 17, 2021, 9:30am UTC](https://discuss.pynq.io/t/cant-rebuild-the-base-overlay-pynq-2-6-couldnt-execute-vivado-hls/2310/6 "2021-02-17T09:30:31Z")

</div>

Just to be clear, the build\_ip.tcl tries to build the IP, and then checks the generated report (.rpt) to check if timing was met and the build was successful. I think it is the first part that fails (building the IP) and therefore the report isn’t generated.

Cathal
