The following table compares the two methods of revision controlling a Vivado project.
| Script-based | Source-based | |
|---|---|---|
| Files to check in | A script to regenerate the project
|
Project XPR and .srcs directory |
| Size | Small | Medium |
Compile time
|
Slow Must be rebuilt Must be regenerated 1 |
Medium Available immediately Must be regenerated 1 |
| External sources | Revision control separately | Revision control separately |
Read-only capable
|
Must be writable Can be locked |
Must be writable Can be locked |
|
||
Script-based projects require fewer revision-controlled files than source-based projects. Whether you auto-generate or manually create the build script, only that script needs revision control.
Source-based projects require managing both the XPR file and the .srcs directory, which are much larger than a text script. This method makes the project available immediately after checkout.
With script-based methodology, you must run the script to completion before opening the project. AMD does not typically revision control output products, so recompiling consumes considerable compute time. Maintaining an external cache reduces the compile time significantly in either method.
In both methods, revision control all external separately from the project. AMD does not fully support BDs or IPs as entirely read-only. BDs must be writable to run validation. Validation updates XCI files in the BD directory even if no design changes occur. IP can be read-only, but they are locked and cannot upgrade in this state.