Getting Started with Targeting Xilinx Zynq Platform

Hi,
I get the following error at : 3. Generate the IP Core.
Failed Task "Vivado IP Packager" unsuccessful. See log for details. Generated logfile: hdl_prj\hdlsrc\hdlcoder_led_blinking\workflow_task_VivadoIPPackager.log
Error using hdlturnkey.ip.IPEmitterVivado/packageVivadoIP
Task "Vivado IP Packager" unsuccessful. See log for details.
Generated logfile: hdl_prj\hdlsrc\hdlcoder_led_blinking\workflow_task_VivadoIPPackager.log
Error in hdlturnkey.ip.IPEmitterVivado/generateIPCore
Error in hdlturnkey.ip.IPDriver/generateIPCore
Error in hdlturnkey.TurnkeyDriver/makehdlturnkeycore
Error in hdlturnkey.TurnkeyDriver/makehdlturnkey
Error in slhdlcoder.HDLCoder/makehdlturnkey
Error in downstream.DownstreamIntegrationDriver/runIPCoreCodeGen
Error in generateIPCore
Error in Simulink.ModelAdvisor/executeCheckCallbackFct
Error in Simulink.ModelAdvisor/run
Error in Simulink.ModelAdvisor/runCheck
Error in ModelAdvisor.Node/runTaskAdvisor
Error in ModelAdvisor.Node.runtohere>runToBreakpoint
Error in ModelAdvisor.Node.runtohere
I am using Vivado 2018.2.
Accordingly, I set up the Xilinx Vivado synthesis tool path using the following command:
hdlsetuptoolpath('ToolName', 'Xilinx Vivado', 'ToolPath', 'C:\Xilinx\Vivado\2018.2\bin\vivado.bat');
Upon typing h = zynq in the command window I get:
h = zynq
h =
LinuxShell with properties:
IPAddress: '169.254.0.2'
Username: 'root'
Port: 22
Any help is much appreciated!
Thanks,
Vishnu
P.S.: Some additional images and dialogues are given in the comments below

14 Comments

When I enter this command from the example,
open_system('hdlcoder_led_blinking');
,right-click on led_counter subsytem and run the HDL Workflow advisor tool,
I get this warning:
Warning: Unable to calculate synthesis tool version
number.
Please make sure command
"C:\Xilinx\Vivado\2018.2\bin\vivado -version" is
available and executable.
Synthesis tool log:
I also tried this example:
Here, Vivado 2018,2 is used even in the example.
But still I get the same error of IP core generation failure: Failed Task "Vivado IP Packager" unsuccessful.
A series of other warnings in the command window when I run the HDL workflow advisor:
The MATLAB version I'm using is 2020a
These are the directory of files automatically created by the process:

Sign in to comment.

 Accepted Answer

Dear Team,
I had a meeting with J T Ferrara and Hoda Sharifi. J T suggested I try to invoke vivado from the command terminal. When I tried :
cd C:\Xilinx\Vivado\2018.2\bin
followed by the command
vivado&
vivado did not launch and there was an error message with code 0xc00000020.
Then, when we opened the file location of Vivado shortcut icon on desktop and tried to cd to the same directory.
J T noticed that the working Vivado installation was in a different folder.
Basically all the files including vivado.bat was present at two places - one in the folder "Xyl" and the other in "Xilinx" and the working one with the license was in "Xyl".
See command window output below:
Accordingly, we changed the matlab hdlsetuppath command to :
hdlsetuptoolpath('ToolName', 'Xilinx Vivado', 'ToolPath', 'C:\Xyl\Vivado\2018.2\bin\vivado.bat');
Now the IP core was successfully generated.
Thank you for all the help!
Sincerely,
Vishnu

More Answers (2)

The error essage seems to indicate this is an issue with Xilinx Vivado installation?
Task "Vivado IP Packager" unsuccessful. See log for details.
Generated logfile: hdl_prj\hdlsrc\hdlcoder_led_blinking\workflow_task_VivadoIPPackager.log
What does the error log say?
Thanks

4 Comments

Thank you for your reply!
The error log is as follows and it does not seem to contain any new information:
This kind of problem with the same error log and similar other details has been reported within mathworks before and one of the fixes was as follows:
However, this workaround did not solve the problem for me since I could not find the said string ERROR anywhere in the subsytems or the files in the path.
Vivado on its own works fine for me since I am able to run algorithms on an FPGA with it.
I tried generating the IP core and the HDL code in a separate folder as shown below:
This again results in the same error as before.

Sign in to comment.

(follow up from my team)
Hi Kiran,
I think I might know the issue. In one of the images, I can see the Tool Version text box is empty. If the hdlsetuptoolpath command is run successful before invoking the HDLWA, then the GUI should have been updated with “2018.2” version of Vivado.
Can you try to run the hdlsetuptoolpath and then invoke the tool and ensure the tool version is updated correctly in the “tool Version” text box in the “Set Target Device and Synthesis Tool “ tab ?
The example is passing at my end when I use Vivado 2018.2.
Regards,
Vighnesh

10 Comments

Thanks a lot for getting back!
After running the hdlsetuptoolpath command the command window output is shown above.
I too notice it does not update the tool version to 2018.2 as shown in the image below, as it does as 2019.1 in the example .
But I don't know why it does not get updated.
Hi, Can you please confirm if it is happening with any other example at your end.
Secondly, Can you click on Refresh button and check if it updates.
Finally, Is it possible for you to share all the associated files of this project?
Regards, Vighnesh
Hi, There is more thing we would like to know. After executing hdlsetuptoolpath, can you run !Vivado from MATLAB command window and ensure Vivado 2018.2 invokes correctly?
I also tried this example:
Here, Vivado 2018,2 is used even in the example.
But still I get the same error of IP core generation failure: Failed Task "Vivado IP Packager" unsuccessful.
Zip files for the second example 'test_IP.zip' and the original example in this discussion "hdl_prj.zip" are attached.
I did click on the refresh button but nothing happens.
This example works fine for me:
Files attached for this example are called "zynqgettingstarted.zip"
Sure! After typing !Vivado in the command window, I guess it was invoked since there was no error reported in the command window:
Hi Vishnu,
Thankyou very much for the information. I will take a look at the zip files attached and get back to you.
It is possible that we may have to connect and check it at your end.
Regards, Vighnesh
Hi Vishnu,
Here is an update to the failing project "hdl_prj.zip" that you have shared with us.
I tried a couple of debug steps and the project is working as expected at my end.
Here is another something which I would request you to do it at your end.
  1. Unzip hdl_prj.zip ( the same zip file which you have shared with us )
  2. Invoke matlab and migrate to hdl_prj\hdl_prj\ipcore\led_count_ip_v1_0\prj_ip
  3. Here you will see vivado_ip_packge.tcl file which is used to create the ipcore.
  4. Now run the following set of MATLAB commands while you are in prj_ip directory.
>> scriptName = fullfile(pwd, 'vivado_ip_package.tcl');
>> cmdstring = ['vivado -mode batch -source ' scriptName] ;
>> [status, logTxt] = system(cmdString);
After completion please share the logTxt variable which will be generated in the Workspace.
Let me know if you find any issues when running the above steps.
Regards,
Vighnesh
Hi Vighnesh,
I ran the commands you mentioned as shown below:
logTxt (attached) seems to be empty.
Hi Vishnu,
You have typed:
>>cmdstring = ['vivado -mode batch -source ' scriptName];
then you typed:
>> [status, logTxt] = system(cmdString);
%Note cmdstring != cmdString%
%Variables ARE case sensitive!%

Sign in to comment.

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!