Last supported Release
Type or File | Version |
---|---|
Vivado Design Suite | 2015.4 |
Trenz Project Scripts | 2015.4.09 |
Trenz <board_series>_board_files.csv | 1.2 |
Trenz apps_list.csv | 1.5 |
Directory structure
File or Directory | Type | Description |
---|---|---|
<design_name> | base directory | Base directory with predefined batch files (*.cmd) to generate or open VIVADO-Project |
<design_name>/block_design/ | source | Script to generate Block Design in Vivado (*_bd.tcl) |
<design_name>/board_files/ | source | Local board part files repository and a list of available board part files (<board_series>_board_files.csv) |
<design_name>/constraints/ | source | Project constrains (*.xdc) |
<design_name>/doc/ | source | Documentation |
<design_name>/ip_lib/ | source | Local Vivado IP repository |
<design_name>/misc/ | source | (Optional) Directory with additional sources |
<design_name>/prebuilt/boot_images/ | prebuilt | Directory with prebuild boot images (*.bin) and configuration files (*.bif) included in subfolders: default or <board_file_shortname>/<app_name> |
<design_name>/prebuilt/hardware/ | prebuilt | Directory with prebuild hardware sources (*.bit, *hdf, *.mcs) and reports included in subfolders: default or <board_file_shortname> |
<design_name>/prebuilt/software/ | prebuilt | (Optional) Directory with prebuild software sources (*.elf) included in subfolders: default or <board_file_shortname>/<app_name> |
<design_name>/prebuilt/os/ | prebuilt | (Optional) Directory with predefined OS images included in subfolders <os_name>/<board_file_shortname> or <os_name>/default |
<design_name>/scripts/ | source | TCL scripts to build a project |
<design_name>/software/ | source | (Optional) Directory with additional software |
<design_name>/sw_lib/ | source | (Optional) Directory with local SDK/HSI software IP repository and a list of available software (apps_list.csv) |
<design_name>/v_log/ | generated | Temporary directory with vivado log files (used only when vivado is started with predefined command files (*.cmd) from base folder otherwise this logs will be writen into the vivado working directory) |
<design_name>/vivado/ | work, generated | Working directory where Vivado project is created. Vivado project file is <design_name>.xpr |
<design_name>/workspace/hsi | work, generated | (Optional) Directory where hsi project is created |
<design_name>/workspace/sdk | work, generated | (Optional) Directory where sdk project is created |
<design_name>/backup/ | generated | (Optional) Directory for project backups |
Windows Command Files
File Name | Description |
---|---|
clear_project.cmd | !Delete "<design_name>/v_log/", "<design_name>/vivado/", and "<design_name>/workspace/" directory with related documents! |
create_project_firstgui.cmd | Create Project with setting from "start_settings.cmd" and source folders. Vivado GUI will be opened during the process. Delete "<design_name>/v_log/", "<design_name>/vivado/", and "<design_name>/workspace/" directory with related documents before Projekt will created. |
create_project_nogui.cmd | Create Project with setting from "start_settings.cmd" and source folders. Delete "<design_name>/v_log/", "<design_name>/vivado/", and "<design_name>/workspace/" directory with related documents before Projekt will created. |
open_project_gui.cmd | Opens an existing Project "<design_name>/vivado/<design_name>.xpr". Delete old "<design_name>/v_log/" before Projekt will opend. |
program_zynqflash.cmd | (optional) For Zynq Systems only. Programming Flash Memory with specified Boot.bin. (Same as SDK "Program Flash"). Used Boot.bin from prebuilt-Folder. It used the boot.bin from: <design_name>/prebuilt/boot_images/<board_file_shortname>/<app_name>. Set <board_file_shortname> and <app_name> in "start_settings.cmd". |
create_prebuilt_sdk.cmd | (optional) Create SDK project with hardware definition file from prebuild folder. It used the *.hdf from: <design_name>/prebuilt/hardware/<board_file_shortname>/. Set <board_file_shortname> and <app_name> in "start_settings.cmd". |
run_project_nogui.cmd | Create Project with setting from "start_settings.cmd" and source folders. Build all Vivado hardware and software files if the sources are available. Delete "<design_name>/vivado/", and "<design_name>/workspace/hsi/" directory with related documents before Projekt will created. |
start_settings.cmd | Settings for the other *.cmd files. Following Settings are avaliable:
|
Additional TCL functions for usage on Vivado TCL Console
Name | Options | Description (Default Configuration) |
---|---|---|
TE::help | Display currently available functions. Important: Use only displayed functions and no functions from sub-namespaces | |
TE::hw_blockdesign_export_tcl | [-no_mig_contents] [-mod_tcl] [-svntxt <arg>] [-help] | Export Blockdesign to project folder <design_name>/block_design/ . Old *bd.tcl will be overwritten! |
TE::hw_build_design | [-help] | Run Synthese, Implement, and generate Bitfile, optional MCSfile and some report files |
TE::sw_run_hsi | [-run_only] [-prebuilt_hdf <arg>] [-no_bif] [-no_bin] [-clear] [-help] | Copy Hardwarefiles to the prebuild folders <design_name>/prebuilt/... Copy the Hardware Defintition file to the working directory:<design_name>/workspace/hsi Run HSI in <design_name>/workspace/hsi for all Programes listed in <design_name>/sw_lib/apps_list.csv If HSI is finished, BIF-GEN and BIN-Gen are running for these Apps in the prepuilt folders <design_name>/prebuilt/... |
TE::sw_run_sdk | [-open_only] [-update_hdf_only] [-prebuilt_hdf <arg>] [-clear\] [-help] | Copy Hardwarefiles to the prebuild folders <design_name>/prebuilt/... Copy the Hardware Defintition file to the working directory:<design_name>/workspace/sdk Start SDK GUI in this workspace |
TE::sw_program_zynq | [-used_board <arg>] -swapp <arg> [-available_apps] [-help] | Attention: For Zynq Systems only! Program the Bootbin from <design_name>/prebuilt/boot_images/<board_file_shortname>/<app_name> to the fpga device. Appname is selected with: -swapp <app_name> |
TE::util_zip_project | [-save_all] [-remove_prebuilt] [-manual_filename <arg>] [-help] | Make a Backup from your Project in <design_name>/backup/ Zip-Program Variable must be set in start_settings.cmd. Currently only 7-Zip is supported. |
Usage
Create project
- Unzip project files
- Rename basefolder (basefolder name is used as project name)
- Edit start_settings.cmd
- Select the correct board part number for your PCB (See: Windows Command Files → start_settings.cmd)
- Other settings are optional (See: Windows Command Files → start_settings.cmd)
- Excecute create_project_firstgui.cmd or create_project_nogui.cmd to generate a vivado project with the predefined block_design from the block_design folder
- Open Vivado with open_project_gui.cmd (if you use create_project_firstgui.cmd on step 4, you didn't need this)
- Open the Block Design and create your own design inside this Block Design.
- Backup your Block Design as tcl-script: Type "TE::hw_blockdesign_export_tcl" on Vivado Tcl Console. The old one will be overwritten.
- Build your Design...
Initial scripts on existing Vivado project
- Variant 1:
- Start the project with the predefined command file (open_project_gui.cmd)
- Variant 2:
- Create your own Initialisation Button on the Vivado GUI:
- Tools → Customize Commands → Customize Commands...
- Push
- Type Name ex.: Init Scripts
- Press Enter
- Select Run command and insert: cd [get_property DIRECTORY [current_project]]; source -notrace "../scripts/reinitialise_all.tcl"
- Press Enter
- A new Button is shown on the Vivado Gui: All Scripts are reinitialised, if you press this Button.
- Create your own Initialisation Button on the Vivado GUI:
- Variant 3:
- Reinitialise Script on Vivado TCL-Console:
- Type: source ../scripts/reinitialise_all.tcl
- Type: source ../scripts/reinitialise_all.tcl
- Reinitialise Script on Vivado TCL-Console:
Use predefined TE-Script functions
- Variant 1:
- Typ function on Vivado TCL Console, ex.: TE::help
- TE::help
- Show all predefined TE-Script functions.
- TE:<functionname> -help
- Show short description of this function.
- Attention: If -help argument is set, all other args will be ignored.
- Variant 2:
- Create your own function Button on the Vivado GUI:
- Tools → Customize Commands → Customize Commands...
- Push +
- Type Name ex.: Run SDK
- Press Enter
- Select Run command and insert function:
- Variante 1 (no Vivado request window for args):
- insert function and used args, ex.: TE::sw_program_zynq -swapp hello_world
- Variant 2 (Vivado request window for args):
- insert function, ex.:TE::sw_program_zynq
- Press Define Args...
- For every arg:
- Push
- Typ Name, Comment, Default Value and set optional
- Press Enter
- Example for args:
- Push
- Index, Key Name, -swapp,
- Push
- Appname, Arg, hello_world,
- Variante 1 (no Vivado request window for args):
- Press Enter
- A new Button is shown on the Vivado Gui.
- Create your own function Button on the Vivado GUI:
Checklist
- Are you using exactly the same Vivado version? If not then the scripts will not work, no need to try.
- Do you run the script from Vivado console? They may work from Vivado GUI TCL prompt also, but they are tested only from pure Vivado TCL console prompt.
- Ary you using Vivado in Windows PC? Vivado works in Linux also, but the scripts are tested on Windows only.
- Is you PC OS Installation English? Vivado may work on national versions also, but there have been known problems.
- Are space character on the project path? Somtimes TCL-Scripts can't handle this correctly. Remove spaces from project path.
References
- Xilinx User Guide UG949
- Revision Control use guide from Vivado User Club 2015 Stuttgart
- SDSoC platform builder file structure