cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 
mrcoulter45
Visitor
Visitor
1,636 Views
Registered: ‎08-06-2018

Vivado 2018.3 launch_runs synth_1 hangs in TCL script

Hello,

I am running Vivado 2018.3 in a Docker container on a CircleCI server to do synthesis/implementation CI on an RTL project. The entire process works corrctly to completion on my local Ubuntu 18.04 VM, but hangs during the

launch_runs synth_1 -verbose

command on the CircleCI server. The commands run in CircleCI are:

build_vivado:
  docker:
    - image: mrcoulter45/vivado-ci
  steps:
    - checkout # check out the code in the project directory
    - run: echo 'export XILINX_VIVADO="/opt/Xilinx/Vivado/2018.3"' >> $BASH_ENV
    - run: echo 'export PATH="/opt/Xilinx/Vivado/2018.3/bin:$PATH"' >> $BASH_ENV
    - run: source $BASH_ENV
    - run: rm -rf project_basys3/
    - run:
      command: vivado -mode batch -source synth-impl-bit.tcl
      no_output_timeout: 30m
    - run: echo 'done'

The TCL script "synth-impl-bit.tcl" called above that contains the hanging command is:

source generate_project_basys3.tcl
cd /home/vivado/project/project_basys3
set_param general.maxThreads 1
launch_runs synth_1 -verbose
wait_on_run synth_1 -verbose
launch_runs impl_1 -verbose
wait_on_run impl_1 -verbose
launch_runs impl_1 -to_step write_bitstream -verbose
wait_on_run impl_1 -verbose
exit

The last few lines of the log that get printed are:

|109   |      spi_slave_tester_apb2_slave         |spi_slave_tester_apb2_slave             |  1600|
|110   |        spi_master                        |spi_master                              |  1195|
|111   |          clock_divider                   |clock_divider                           |   481|
|112   |      uart_tester_apb2_slave              |uart_tester_apb2_slave                  |  1032|
|113   |        uart_rx                           |uart_rx                                 |   206|
|114   |        uart_tx                           |uart_tx                                 |   222|
|115   |  reprogram_controller                    |reprogram_controller                    |   122|
+------+------------------------------------------+----------------------------------------+------+
---------------------------------------------------------------------------------
Finished Writing Synthesis Report : Time (s): cpu = 00:02:05 ; elapsed = 00:02:47 . Memory (MB): peak = 1936.609 ; gain = 555.395 ; free physical = 14129 ; free virtual = 52458
---------------------------------------------------------------------------------
Synthesis finished with 0 errors, 0 critical warnings and 47 warnings.
Too long with no output (exceeded 30m0s)

The full log is attached. Any help on this would be greatly appreciated, thank you.

0 Kudos
5 Replies
hemangd
Moderator
Moderator
1,575 Views
Registered: ‎03-16-2017

Hi @mrcoulter45 ,

The easiest thing to try is to attempt to run natively (not within the container). Please try this and let us know that you face the same hang or not. 

From UG 973, for 2018.3 Vivado - docker container is not supported. Still i will check it internally and get back to you.

 

Regards,
hemangd

Don't forget to give kudos and mark it as accepted solution if your issue gets resolved.
0 Kudos
falconpc
Visitor
Visitor
1,493 Views
Registered: ‎07-02-2018

Any further update on this issue.
We encounter a similar one with SDAccel 2019.1 + Docker.
Vivado keeps generating the following messages:
Block-level synthesis in progress, 1 of 3 jobs complete, 1 job running.
0 Kudos
mreiband
Visitor
Visitor
1,358 Views
Registered: ‎07-02-2018

Hi @hemangd,

we see the same issues with Vivado 2018.3/2019.1 and different docker containers. The effect is sporadic if changing the source code but reproducible if you run it with the same source code again.

Do you have anny update on this issue?

BR
Markus
0 Kudos
davidngardner
Newbie
Newbie
1,217 Views
Registered: ‎10-16-2018

Another vote for this issue.  I see the same thing:

Vivado hangs waiting for synth to complete when running under docker.  Works fine when running natively outside of docker.

Effect is sporatic, for a give set of source it is reproducible, but changing the source makes the problem come and go.

Can someone offer some suggestions for how we might narrow the problem down?  What is the mechanism by which Vivado detects synth is complete?

0 Kudos
vbardell
Newbie
Newbie
819 Views
Registered: ‎10-10-2018

If anyone is still suffered from this issue, try running docker with --init, or including tini, so that zombie processes get reaped. This fixed it for me. See this post: https://stackoverflow.com/questions/55733058/vivado-synthesis-hangs-in-docker-container-spawned-by-jenkins

0 Kudos