User Tools

Site Tools



This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
xilinx_upgrading_vivado_project [2019/05/16 11:19]
rpjday [Processing 2018.2 project]
xilinx_upgrading_vivado_project [2019/05/30 12:49] (current)
rpjday [Upgrading bd.tcl]
Line 1: Line 1:
 ===== Overview ===== ===== Overview =====
-Basic steps to upgrade a Vivado project.+The purpose of this technical note is to enumerate the steps to upgrade a Vivado project ​directory from some earlier version of Vivado to some more recent version, in the process allowing Vivado to generate warnings about any IP that might have been adjusted or ignored during the process due to the upgrade.
-===== Required ​=====+===== Prerequisites ​===== 
 +This process requires some fairly obvious components:
-  * A current (older) Vivado project. 
   * Two installed versions of Vivado.   * Two installed versions of Vivado.
 +  * A Vivado project directory compatible with the earlier version of Vivado, which will be upgraded.
 +In this example, we will upgrade a Vivado 2018.2 project directory to 2018.3
-===== Project ​structure =====+===== The structure ​of a Vivado project directory ​=====
 Minimally, a Vivado project directory should have a structure something like this: Minimally, a Vivado project directory should have a structure something like this:
Line 36: Line 40:
         └── holder         └── holder
 </​code>​ </​code>​
-        ​ + 
-Additionally,​ you can verify ​the project version ​from the ''​bd.tcl''​ file, which should contain a line something like this:+There is no need for the directory to contain any generated artifacts ​from a previous Vivado run. 
 +The project can comment out the final several steps for the 2018.2 processing in the ''​project_all.tcl''​ file -- there is no need to do any of that in the first phaseand it will all be done manually in the second phase, anyway. See below to appreciate what can be commented out so that it is not performed in the first phase of the processing.
 <​code>​ <​code>​
-set scripts_vivado_version 2018.2+#Compile Project 
 +# reset_run synth_1 
 +# set_property strategy "​Vivado Synthesis Defaults"​ [get_runs synth_1] 
 +# launch_runs synth_1 
 +#​wait_on_run synth_1 
 +#Implement Project 
 +# set_property strategy "​Vivado Implementation Defaults"​ [get_runs impl_1] 
 +# launch_runs impl_1 
 +# wait_on_run impl_1 
 +#Generate Bitstream 
 +# launch_runs impl_1 -to_step write_bitstream 
 +# wait_on_run impl_1 
 +##Create SDK HDF 
 +# file mkdir ./​projects.sdk 
 +# write_hwdef -force ​ -file ./​projects.sdk/​DMA_PCIe_EP.hdf
 </​code>​ </​code>​
-For this example, we'll upgrade the project above from 2018.2 to 2018.3.+===== Steps =====
-===== Processing 2018.2 project ​=====+==== Processing 2018.2 project ====
-Source 2018.2 Vivado environment, ''​cd''​ to project directory:+Source 2018.2 Vivado environment:​
 <​code>​ <​code>​
Line 53: Line 76:
 </​code>​ </​code>​
-Create ​the pre-requisite ​''​.xpr''​ file with:+''​cd''​ to the underlying ''​projects/''​ directory (you must be in that directory if the project Tcl file uses silly ''​../​../''​ references),​ and start Vivado 2018.2: 
 +$ cd .../​vivado/​projects/​ 
 +$ vivado 
 +At this point, run ''​project_all.tcl'',​ then exit Vivado. 
 +  * Tools-> Run Tcl Script -> project_all.tcl 
 +  * Exit 
 +The result of this is to generate, among other things, the 2018.2 version of the ''​.xpr'' ​project ​file that will be used in the second phase of the upgrade. 
 +==== Upgrading the project by running Vivado 2018.3 ==== 
 +From exactly the same directory as in the previous section, source the environment for Vivado 2018.3, then execute Vivado:
 <​code>​ <​code>​
-$ vivado ​-mode tcl -source scripts/​bd.tcl -notrace+$ vivado
 </​code>​ </​code>​
-You need to ''​exit'' ​from Vivado ​shell when done.+At this point, open the project file produced in the previous section, and upgrade it via the operations:​ 
 +  * Open Project -> .xpr file -> Upgrade 
 +  * "​Report IP Status"​ -> "​Upgrade Selected"​ 
 +It is entirely possible that you will get warnings about IP that can't properly be upgraded, so look for warnings or errors along the lines of: 
 +[Coretcl 2-1279] The upgrade of 'DMA_PCIe_EP_xdma_1_0' ​has 
 +identified issues that may require user intervention. Please 
 +review the upgrade log '.../​vivado/​projects/​ip_upgrade.log',​ 
 +and verify that the upgraded IP is correctly configured. 
 +At this point, you can use Vivado ​to complete the upgrade of the project as normal: 
 +  * Synthesis 
 +  * Implementation 
 +  * Generate bitstream 
 +  * Export hardware (hdf) 
 +Provided that all of the above runs successfully,​ you can import the newly-generated ''​.hdf''​ and ''​.bit''​ files into the corresponding newer version of PetaLinux as normal. 
-Generated artifacts include essential ''​project_1.xpr''​. 
xilinx_upgrading_vivado_project.1558005590.txt.gz · Last modified: 2019/05/16 11:19 by rpjday