02-18-2021 10:53 AM
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.
02-21-2021 11:02 PM
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.
02-22-2021 10:03 PM
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.
02-23-2021 01:55 AM - edited 02-23-2021 03:56 AM
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.)
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?
02-23-2021 05:32 AM
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.
02-23-2021 08:55 AM
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.