UPGRADE YOUR BROWSER

We have detected your current browser version is not the latest one. Xilinx.com uses the latest web technologies to bring you the best online experience possible. Please upgrade to a Xilinx.com supported browser:Chrome, Firefox, Internet Explorer 11, Safari. Thank you!

cancel
Showing results for 
Search instead for 
Did you mean: 
Highlighted
Explorer
Explorer
6,001 Views
Registered: ‎03-22-2017

Exporting new hardware "corrupts" SDK project

Jump to solution

I am refining my component in Vivado 2017.2. The process iterates between Vivado (HW) and Vivado SDK (SW): I make small changes in Vivado, I (re-)generate the bitstream, export the hardware and run the component from the SDK. I monitor the component behavior through "printf" on the UART with minicom.

 

In the described flow, only the first exported bitstream works properly (I can see the "printf" on the UART). For the following bitstreams I have to cancel the SDK project, re-export the hardware and re-create the SDK project.

 

Is this a problem introduced with a latest version of Vivado? I never experienced this problem before.

 

Thank you

0 Kudos
1 Solution

Accepted Solutions
Explorer
Explorer
6,583 Views
Registered: ‎07-18-2011

Re: Exporting new hardware "corrupts" SDK project

Jump to solution

In case anyone missed it, this patch in AR# 69489 fixes the problem:

 

https://www.xilinx.com/support/answers/69489.html

 

 

19 Replies
Moderator
Moderator
5,938 Views
Registered: ‎07-31-2012

Re: Exporting new hardware "corrupts" SDK project

Jump to solution

Hi,

 

This issue is not seen in 2017.2.

Are you making any changes in hw design and resetting the runs?

 

Regards

Praveen


-------------------------------------------------------------------------
Don’t forget to reply, kudo, and accept as solution.
-------------------------------------------------------------------------
0 Kudos
Explorer
Explorer
5,922 Views
Registered: ‎03-22-2017

Re: Exporting new hardware "corrupts" SDK project

Jump to solution

@pvenugo,

the complete flow is actually: vivado_hls -> vivado -> sdk

and yes, I make changes in the C (HLS) design.

 

I confirm that this behavior occurs only with 2017.2, I rolled back to 2017.1 and I do not see any problems. I can regenerate the RTL (HLS), package it for Vivado, re-synthesize the system design, export for SDK, and, finally, run the software/hardware without re-creating the SDK project.

 

0 Kudos
Xilinx Employee
Xilinx Employee
5,877 Views
Registered: ‎02-01-2008

Re: Exporting new hardware "corrupts" SDK project

Jump to solution

When you export to SDK the second time, check to make sure SDK doesn't create a second hardware project.

 

Apps are linked to specific BSPs and BSPs are linked to specific hardware projects.

0 Kudos
Adventurer
Adventurer
5,783 Views
Registered: ‎09-23-2011

Re: Exporting new hardware "corrupts" SDK project

Jump to solution

I'm having a similar problem with 2017.2.  Maybe the same problem.  

 

After modifying an IP (over and over for hours, trying to figure out why none of the changes I was making were doing anything), regenerating the hardware, and exporting to SDK with "Include Bitstream" checked, I finally discovered that Vivado is not writing the bitstream files, only the .hdf file.  I copied the bitstream files manually and my changes finally were there.

 

I believe I'll go back to 2017.1 and just stay there.

Explorer
Explorer
5,744 Views
Registered: ‎07-18-2011

Re: Exporting new hardware "corrupts" SDK project

Jump to solution
I'm having the same problem with 2017.2, it doesn't update the bitstream on a new export.

I have to either manually copy the bitstream over, or usually I just delete the hardware design file in SDK, then close SDK out before exporting the new bitstream from Vivado, which will generate a new hardware design file that has the correct bitstream when you start SDK again.
Xilinx Employee
Xilinx Employee
5,718 Views
Registered: ‎02-01-2008

Re: Exporting new hardware "corrupts" SDK project

Jump to solution

I have what may be a simular issue and have submitted a CR.

 

In my case, the .hdf is exported correctly, and SDK correctly copies the .hdf into the SDK workspace hardware project. But SDK is not extracting the psu/ps7_init files or the .bit from this new .hdf.

 

Currently, after I export and SDK updates the workspace, I then open project1.sdk/design_1_wrapper_hw_platform_0/system.hdf using winzip or 7zip, and then I manually extract the updated files into project1.sdk/design_1_wrapper_hw_platform_0

 

If you have a FSBL application project, make sure to 'clean' or recompile it so that the FSBL uses the newer extracted psu/ps7_init.c file.

Explorer
Explorer
5,608 Views
Registered: ‎07-18-2011

Re: Exporting new hardware "corrupts" SDK project

Jump to solution

i just had a case where deleting the hardware platform in SDK, closing out, and re-exporting wouldn't fix the issue.  It still had the old xparameters.h file in the bsp. Even though the system.hdf file was correct and had my new AXI peripherals,  they weren't showing up in the xparameters.h file.

 

In addition to deleting and re-exporting, this time I had to make a new application project and bsp, and delete the old ones in order to get the correct xparameters.h file. 

 

I hope they come up with a fix for this soon.

0 Kudos
Xilinx Employee
Xilinx Employee
5,597 Views
Registered: ‎02-01-2008

Re: Exporting new hardware "corrupts" SDK project

Jump to solution

Deleting the hardware platform project is not the best idea because the BSP is linked to the hdwr project. So the BSP would loose its source and therefore would not be able to update its xparameters.

Xilinx Employee
Xilinx Employee
5,587 Views
Registered: ‎06-29-2017

Re: Exporting new hardware "corrupts" SDK project

Jump to solution

I also observed this issue, updating hdf is not updating psu_init files even though there is change in new HDF.

 

 

0 Kudos
Adventurer
Adventurer
4,252 Views
Registered: ‎09-23-2011

Re: Exporting new hardware "corrupts" SDK project

Jump to solution

For what it's worth, I was able to revert to 2017.1 with no issues.

Explorer
Explorer
4,213 Views
Registered: ‎07-18-2011

Re: Exporting new hardware "corrupts" SDK project

Jump to solution

I am a bit leery of going back to 2017.1, since I have developed so much custom IP in 2017.2 recently.

 

So far, I've had good luck with the recommendation from @johnmcd of using 7zip to extract the system.hdf file to the same directory after opening SDK, then running Project->Clean...

 

 

 

Explorer
Explorer
4,089 Views
Registered: ‎07-18-2011

Re: Exporting new hardware "corrupts" SDK project

Jump to solution

A new 2017.2 update was released today, hopefully this problem is fixed.  Unfortunately, I won't be able to test it for a day or two.

0 Kudos
Visitor michaeltombs
Visitor
3,955 Views
Registered: ‎01-04-2017

Re: Exporting new hardware "corrupts" SDK project

Jump to solution

NB the hdf file is not on its own sufficient to export the hardware definition on its own, it must reference other resources stored elsewhere, for example the large fpga bit file, which may be temporarily stored in a system temp file?.  When the SDK notices the hdf file has changed it should prompt to update the other SDK files, and it needs access to these other resources.  If you have changed names of any blocks in Vivado the new hardware description will break bsps with mss files referring to old names, you have to manually edit the mss files as text or start again even if the mss files were auto-generated before in my limited experience

Explorer
Explorer
3,826 Views
Registered: ‎07-18-2011

Re: Exporting new hardware "corrupts" SDK project

Jump to solution

Well, it looks like 2017.2 is still badly broken.   I still have to manually extract the files to get HW changes to take effect.

 

I guess we'll just have to wait for 2017.3 and hope somebody at Xilinx notices this issue and fixes it.

Explorer
Explorer
3,758 Views
Registered: ‎03-22-2017

Re: Exporting new hardware "corrupts" SDK project

Jump to solution

Try the following script (you have to adapt it) and let me know. I put it into the project .sdk folder, e.g.

 

basic_3x3_blur_axim_project/basic_3x3_blur_axim_project.sdk

Please let me know if it works for you. After running it, you should clean and rebuild the project:

 

SDK >> Project >> Clean... >> Clean all projects [OK]

 

#!/bin/bash

MODULE=basic_3x3_blur_axim
DESIGN=$MODULE\_design
PROJECT=$MODULE\_project

echo "INFO: Copy HDF file ..."
cp $DESIGN\_wrapper.hdf $DESIGN\_wrapper_hw_platform_0/system.hdf

cd $DESIGN\_wrapper_hw_platform_0

echo "INFO: Extract HDF file ..."
7z e -y system.hdf

echo "INFO: Move some of the files into the project folder ..."
cp $DESIGN\_bd.tcl ../../$PROJECT\.srcs/sources_1/bd/$DESIGN\/hw_handoff
cp $DESIGN\.hwh ../../$PROJECT\.srcs/sources_1/bd/$DESIGN\/hw_handoff
cp $DESIGN\_system_ila_0_0_bd.tcl ../../$PROJECT\.srcs/sources_1/bd/$DESIGN\/ip/$DESIGN\_system_ila_0_0/bd_0/hw_handoff
cp $DESIGN\_system_ila_0_0.hwh ../../$PROJECT\.srcs/sources_1/bd/$DESIGN\/ip/$DESIGN\_system_ila_0_0/bd_0/hw_handoff

 

0 Kudos
Explorer
Explorer
3,749 Views
Registered: ‎03-22-2017

Re: Exporting new hardware "corrupts" SDK project

Jump to solution

A fix for the script:

 

#!/bin/bash

MODULE=basic_3x3_blur_axim
DESIGN=$MODULE\_design
PROJECT=$MODULE\_project

echo "INFO: Copy HDF file ..."
cp $DESIGN\_wrapper.hdf $DESIGN\_wrapper_hw_platform_0/system.hdf

cd $DESIGN\_wrapper_hw_platform_0

echo "INFO: Extract HDF file ..."
7z x -y system.hdf

echo "INFO: Move some of the files into the project folder ..."
cp $DESIGN\_bd.tcl ../../$PROJECT\.srcs/sources_1/bd/$DESIGN\/hw_handoff
cp $DESIGN\.hwh ../../$PROJECT\.srcs/sources_1/bd/$DESIGN\/hw_handoff
cp $DESIGN\_system_ila_0_0_bd.tcl ../../$PROJECT\.srcs/sources_1/bd/$DESIGN\/ip/$DESIGN\_system_ila_0_0/bd_0/hw_handoff
cp $DESIGN\_system_ila_0_0.hwh ../../$PROJECT\.srcs/sources_1/bd/$DESIGN\/ip/$DESIGN\_system_ila_0_0/bd_0/hw_handoff
0 Kudos
Explorer
Explorer
6,584 Views
Registered: ‎07-18-2011

Re: Exporting new hardware "corrupts" SDK project

Jump to solution

In case anyone missed it, this patch in AR# 69489 fixes the problem:

 

https://www.xilinx.com/support/answers/69489.html

 

 

Visitor zyxer
Visitor
3,531 Views
Registered: ‎11-30-2016

Re: Exporting new hardware "corrupts" SDK project

Jump to solution

Why do we have to struggle with problems like this? Just because Xilinx tool developers put a "new" bug?

 

 

 

 

0 Kudos
Explorer
Explorer
3,462 Views
Registered: ‎07-18-2011

Re: Exporting new hardware "corrupts" SDK project

Jump to solution

Everyone makes mistakes, even the brilliant engineers at Xilinx.

 

I can only imagine the complexity of the code that goes into something like Vivado, so I'm inclined to give them a break if they occasionally miss something.

0 Kudos