Release Description
Last supported Release
Type or File | Version |
---|---|
Vivado Design Suite | 2015.4 |
Trenz Project Scripts | 2015.4.13 |
Trenz <board_series>_board_files.csv | 1.2 |
Trenz apps_list.csv | 1.5 |
Name Description of Zip-delivery
Description | PCB Name | Project Name+(opt. Variant) | supported VIVADO Version | Build Version and Date | ||||
---|---|---|---|---|---|---|---|---|
Example: | TE0726 | - | hdmi_fb_noprebuilt | - | vivado_2015.4 | - | build_10_20160304143905 | .zip |
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>/vivado_lab/ | work, generated | (Optional) Working directory where Vivado LabTools is created. LabTools project file is <design_name>.lpr |
<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 |
---|---|
Settings | |
start_settings.cmd | Settings for the other *.cmd files. Following Settings are avaliable:
|
Hardware Design | |
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. |
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. |
Software Design | |
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". |
Programming | |
program_flash_binfile.cmd | (optional) For Zynq Systems only. Programming Flash Memory via JTAG with specified Boot.bin. Used SDK Programmer (Same as SDK "Program Flash") or LabTools Programmer (Vivado or LabTools only), depends on installion settings. 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". |
program_flash_mcsfile.cmd | (optional) For Non-Zynq Systems only. Programming Flash Memory via JTAG with specified <design_name>.mcs. Used LabTools Programmer (Vivado or LabTools only), depends on installion settings. It used the <design_name>.mcs from: <design_name>/prebuilt/hardware/<board_file_shortname>. Set <board_file_shortname> in "start_settings.cmd". |
program_fpga_bitfile.cmd | (optional) Programming FPGA via JTAG with specified <design_name>.bit. Used LabTools Programmer (Vivado or LabTools only), depends on installion settings. It used the <design_name>.bit from: <design_name>/prebuilt/hardware/<board_file_shortname>. Set <board_file_shortname> in "start_settings.cmd". |
vivado_labtools.cmd | Create or open an existing Vivado Lab Tools Project. (Additional TCL functions from Programming and Utilities Group are usable). |
Utilities | |
clear_project.cmd | Attention: Delete "<design_name>/v_log/", "<design_name>/vivado/","<design_name>/vivado_lab/", and "<design_name>/workspace/" directory with related documents! |
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 | |
Hardware Design | ||
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 |
Software Design | ||
TE::sw_run_hsi | [-run_only] [-prebuilt_hdf <arg>] [-no_bif] [-no_bin] [-clear] [-help] | Copies current Hardware files and reports from the vivado project to the prebuilt folder, if -prebuild_hdf <arg> isn't set. 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] | Copies current Hardware files and reports from the vivado project to the prebuilt folder, if -prebuild_hdf <arg> isn't set. Copy the Hardware Defintition file to the working directory:<design_name>/workspace/sdk Start SDK GUI in this workspace |
Programming | ||
TE::pr_init_hardware_manager | [-help] | Open Hardwaremanager, autoconnect target device and initialise flash memory with configuration from *_board_files.csv. |
TE::pr_program_jtag_bitfile | [-used_board <arg>] | Copies current Hardware files and reports from the vivado project to the prebuilt folder, if -used_board <arg> isn't set (Vivado only). Programming Bitfile from <design_name>/prebuilt/hardware/<board_file_shortname> to the fpga device. |
TE::pr_program_flash_binfile | [-no_reboot] [-used_board <arg>] [-swapp <arg>][-available_apps] [-force_hw_manager] [-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> After programming device reboot from memory will be done. Default SDK Programmer is used, if not available LabTools Programmer is used. |
TE::pr_program_flash_mcsfile | [-no_reboot] [-used_board <arg>] [-help] | Copies current Hardware files and reports from the vivado project to the prebuilt folder, if -used_board <arg> isn't set (Vivado only). Initialise flash memory with configuration from *_board_files.csv Programming MCSfile from <design_name>/prebuilt/hardware/<board_file_shortname> to the Flash Device. After programming device reboot from memory will be done. |
Utilities | ||
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