cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 
jpsmith888
Visitor
Visitor
265 Views
Registered: ‎08-17-2018

Sysgen2020 Block Property Timeout

When I double click a Xilinx block in System generator to customize the properties, I get the following error.

Error evaluating 'OpenFcn' callback of Xilinx Adder/Subtracter Block block (mask) 'IIR_DirectForm_3pole_1/AddSub'. Callback string is 'xlOpenGui(gcbh, 'addsub_gui.xml', @addsubenablement, -1)' 

Error using xlNMIProxy Timed out waiting for a response from GUI to: (2.0001) buildGUI DISPLAY ENV = ":0" timeout value = 180.0014

More background: I installed MATLAB R2020b and Xilinx Vivado 2020.2 in my Ubuntu 18.04 virtual machine. I followed the install guides and didn't notice anything amiss. Vivado and MATLAB both work separately on their own. I am launching system generator by first sourcing the settings64.sh script in /tools/Xilinx/Vivado/2020.2/ then running /tools/Xilinx/Vivado/2020.2/bin/sysgen. I've seen some similar errors back in 2012 but none of the solutions works for me.

5 Replies
zengin
Visitor
Visitor
189 Views
Registered: ‎02-21-2021

I'm facing exactly the same problem. None of the solutions given before worked for me. All the other questions were answered with "check the OS version, check MATLAB version, etc." This still remains for me. I'm waiting for someone to reply @jpsmith888 's question. There is serious integration problem here. There are a lot of threads in the forums asking the same question for years and years.

0 Kudos
Reply
wesleyl
Xilinx Employee
Xilinx Employee
158 Views
Registered: ‎07-17-2018

The xlNMIProxy 3 minutes time out usually happen when you are missing some libraries in your system. Most likely it will be the Qt4 library.

When launching SysGen, it also launch another program call "sysgensockgui". This executable should be in your install directory "../Vivado/2020.2/bin/unwrapped/lnx64.o". Simply cd to that directory and do a "ldd sysgensockgui" in your shell. It should listed all the linked libraries. If you see any missing library other than "librdi_itlib.so => not found", you will need to install those libraries in your system.

For Ubuntu 18.04, I believe the default Qt version is Qt5. In order for SysGen to work, you will need to install Qt 4.8.x. You should talk to your IT to get those libraries install on your OS. 

Hope that helps.

 

0 Kudos
Reply
zengin
Visitor
Visitor
132 Views
Registered: ‎02-21-2021

Thank you @wesleyl ,

Since I'm on KDE Plasma, all the Qt libraries were already installed. However, Qt 4.8.x is an old version and not in use anymore. Up-to-date version is 5.x.

libQt shared files installed with Vivado are located in Vivado/2020.2/lib/lnx64.o/ directory. Unfortunately Vivado can't find them.

When I `ldd sysgensockgui` as you suggested, I've seen that it was looking for libQtCore.so.4, libQtGui.so.4, libQtNetwork.so.4, and libQtXml.so.4. But the .so filenames in Vivado/2020.2/lib/lnx64.o/ are slightly different. So, I did the following, and it worked:

Add this to your ~/.bashrc and source it. (My LD_LIBRARY_PATH was empty before, if your variable has a preexisting value, then concatenate it.)

 

 

export LD_LIBRARY_PATH=/Vivado_Installation_Directory/Vivado/2020.2/lib/lnx64.o

 

 


Then link the libraries to correct filenames:

 

 

cd /Vivado_Installation_directory/Vivado/2020.2/lib/lnx64.o
ln -s libQtCore.so libQtCore.so.4
ln -s libQtGui.so libQtGui.so.4
ln -s libQtNetwork.so libQtNetwork.so.4
ln -s libQtXml.so libQtXml.so.4

 

 

After that, sysgen started working correctly. Thank you for the tip.


PS: But why did we need to do this? Wasn't it supposed to find the libraries installed by itself?

 

0 Kudos
Reply
zengin
Visitor
Visitor
104 Views
Registered: ‎02-21-2021

CORRECTION!

I think I was too excited to see the Xilinx config dialogs show up. Timeout error disappeared but the simulation still doesn't work. It stuck in the initialization stage.

0 Kudos
Reply
wesleyl
Xilinx Employee
Xilinx Employee
80 Views
Registered: ‎07-17-2018

Hi @zengin 

Your solution would not work and you shouldn't need to do that. 

"sysgensockgui" needs the entire framework of Qt 4.8.x to run correctly. If you have Qt 4 install in your system, those should be taken care for you.

The four libraries libQtCore.so.4, libQtGui.so.4, libQtNetwork.so.4, and libQtXml.so.4 is our version of the Qt 4 libraries. It will be overloaded when you launch the SysGen blocks within the Qt 4 framework.

 

0 Kudos
Reply