Updating to the latest version of Xilinx Vivado can provide access to new features, improved performance, and bug fixes. However, it also often requires migrating existing projects to the new version. For ARM-based designs, this migration process can be tricky if not handled properly. Here are some tips for smoothly updating Vivado and migrating ARM projects.
Back Up Your Projects
Before updating Vivado or migrating projects, it is critical to back up all your important project files and directories. This includes constraint files, block diagrams, HDL sources, IP repositories, etc. Store these backups separately from your main project folder. That way, if anything goes wrong during migration, you have the original files to fall back on.
Update Vivado First
Install and launch the new version of Vivado before attempting to open or migrate any projects. The migration process is handled automatically by Vivado when opening an older project file. Trying to migrate before updating can result in errors.
Open Projects in Non-Project Mode
After updating Vivado, open your existing project files using the Non-Project mode. This prevents Vivado from trying to automatically migrate before you are ready. Take this opportunity to review your project source files and constraints before migration.
Update IP Repositories
With a new Vivado version often comes new IP cores and versions. You will need to upgrade your local IP repositories to match before migrating your project. In Non-Project mode, select “Tools –> Upgrade IP” to update your repositories to the latest.
Migrate Libraries Next
The first thing you will want to migrate are any compiled IP libraries that the project depends on. Vivado can migrate these libraries while still in Non-Project mode. Once migrated, generate an updated IP catalog.
Migrate the Entire Project
You are now ready to migrate the entire project. Close any open windows, then from the main menu select “Project –> Migrate”. The migration wizard will launch to walk you through the process. Let it complete before making any other changes.
Resolve Migration Issues
The Vivado migration process is generally robust, but you may encounter issues. Common problems include outdated IP, invalid constraints, and toolchain compatibility. Examine any warnings or errors reported in the migration report. You may need to upgrade specific IP cores or adjust constraints to resolve.
Review ARM-Based IP Cores
For ARM projects, pay close attention to any ARM-based IP cores used, like processors, peripherals, interconnects, etc. Data width, interface, and parameter changes in new core versions can cause connectivity issues. Review the core data sheets and make any necessary adjustments.
Reload HDL Sources
In some cases, Vivado may not properly link migrated HDL sources into the new project. If you notice missing files, manually reload them into the project to restore the connections.
Re-Import Constraint Files
Vivado will automatically migrate constraint files (.xdc) to the new project. However, it is good practice to delete these migrated constraints and re-import them from the original sources. This avoids any potential issues from constraint file migration.
Remake Design Block Diagram
For complex projects, consider remaking the top-level block diagram from scratch in the new version. Making the block diagram again ensures all connections are configured correctly for the migrated version of each IP block.
Resolve Floorplanning Issues
Device floorplans can change between Vivado versions, so your existing project floorplan may need adjustment. If you get floorplanning errors, try rerunning floorplanning from scratch in the migrated project.
Remigrate After Software Changes
If you needed to make significant changes to IP cores, constraints, or software to resolve migration issues, it is recommended to rerun the project migration after those changes. This will ensure the project is fully migrated to the new version.
Save Project as New Version
Once the project has been migrated successfully, save it using the “Save Project As” command. Give it a new name indicating the Vivado version, like “design_2020.1”. This preserves the original project file while giving you a working copy for the new version.
Create a New Project Folder
When starting a new design in an updated version of Vivado, create a fresh project folder instead of overwriting your original. For example “project_2020.1”. This keeps the old project separate in case you ever need to go back to it.
Verify Design Functionality
After migration, formally verify the design functions correctly through simulation and implementation. Validate timing, power, utilization, I/O, and other key performance metrics match expectations. Only if the migrated project passes verification should it be used for production.
Update Firmware Projects Too
Don’t forget to also migrate any firmware projects associated with the hardware design. Software IDEs like Xilinx SDK may also need to be updated to match the new Vivado version. Migrate firmware code to the new SDK workspace after updating.
Maintain Revision Control
Use version control systems like Git throughout the migration process to track changes. Commit updates made during migration as you go along. This preserves a complete change history in case any issues need to be reverted.
In Summary
Migrating ARM projects requires careful steps when updating to a new Vivado release. Backup projects, upgrade IP, validate migrated designs, and manage software changes. Stay organized and track all changes made during migration. Follow these tips to smoothly transition ARM projects to new Vivado versions.