Online version of this manual and other related documents can be found at https://wiki.trenz-electronic.de/display/PD/Project+Delivery+-+Xilinx+devices
Custom_table_size_100
Quick Start
scroll-ignore
scroll-pdf
...
Table of contents
Table of Contents
outline
true
...
true
scroll-office
true
scroll-chm
true
scroll-docbook
true
scroll-eclipsehelp
true
scroll-epub
true
scroll-html
true
The most Trenz Electronic FPGA Reference Designs are TCL-script based project.
...
There are several options to create the Vivado project from the project delivery. These options are described in Vivado Projects - TE Reference Design.
Since 2018.3 special "Module Selection Guide" is included into "_create_win_setup.cmd" and "_create_linux_setup.sh"
...
Execute "_create_win_setup.cmd" or "_create_linux_setup.sh"
Select "Module Selection Guide" (press "0" and Enter)
Follow instructions
For manual configuration or addition command files for execution will be generated with "_create_win_setup.cmd" on Windows OS and "_create_linux_setup.sh" on Linux OS.
The "normal" Vivado project will be generated in the subfolder "/vivado/" after executing scripts (YouTube: TE0720 Project Creation).
There are several options to create the Vivado project from the project delivery. These options are described in Vivado Projects.
If you use our prepared batch files for project creation do the following steps:
open "design_basic_settings.cmd/.sh" with text editor and set correct vivado path and board part number (this will be also done automatically with the "Module Selection Guide" ). How select the correct board part number is described onTE Board Part Files
(Optional) Directory with additional os sources in in
...
subfolders "<os_name>"
...
<project folder>/sw_lib/
source
(Optional) Directory with local
...
Vitis software IP repository and a list of available software (apps_list.csv)
...
<project folder>/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
...
written into the vivado working directory)
...
<project folder>/vivado/
work, generated
(Temporary) Working directory where Vivado project is created. Vivado project file is
...
<project folder>.xpr
...
<project folder>/vivado_lab/
work, generated
(Optional/Temporary) Working directory where Vivado LabTools is created. LabTools project file is
...
<project folder>.lpr
...
<project folder>/workspace/hsi
...
obsolete
(Optional/Temporary) Directory where hsi project is created
...
<project folder>/workspace/sdk
work, generated
(Optional) Directory where
...
Vitis project is created
...
<project folder>/tmp/
work, generated
(Optional) Directory for some tasks
<project folder>/_binaries_<articlenumber>
generated
export directory for binaries (run "_create_win_setup.cmd" and follow instructions)
<project folder>
...
/.../SDSoC_PFM
...
obsolete
(Optional) Directory where SDSOC project is created
...
<project folder>/backup/
generated
(Optional) Directory for project backups
Command Files
Command files will be generated with "_create_win_setup.cmd" on
...
Windows and "_create_linux_setup.sh" on Linux OS. Linux shell files are currently not available for this release.
Windows Command Files
File Name
Status
Description
Design + Settings
_create_win_setup.cmd
available
Use to create bash files. With 2018.3 and newer also "Module Selection Guide" is included and with 2023.2 prebuilt export for the selected variant
_use_virtual_drive.cmd
available
(Option) Create virtual drive for project execution. See Xilinx AR#52787
design_basic_settings.cmd
available
Settings for the other *.cmd files. Following Settings are
...
available:
General Settings:
(optional) DO_NOT_CLOSE_SHELL: Shell do not closed after processing
(optional) ZIP_PATH: Set Path to installed Zip-Program. Currently 7-Zip are supported. IUsed for predefined TCL-function to Backup project.
(optional) ENABLE_SDSOC: Enable SDSOC Setting. Currently only for some reference project as beta version!
Xilinx Setting:
XILDIR: Set Xilinx installation path (Default: c:\Xilinx).
VIVADO_VERSION: Current Vivado/LabTool/SDK Version (Example:
...
2023.2). Don't change Vivado Version.
Xilinx Software will be searched in:
VIVADO (optional for project creation and programming): %XILDIR%\Vivado\%VIVADO_VERSION%\
...
Vitis
...
(optional for software projects and programming): %XILDIR%\
...
Vitis\%VIVADO_VERSION%\
LabTools (optional for programming only): %XILDIR%\Vivado_Lab\%VIVADO_VERSION%\
...
USE_XILINX_BOARD_STORE: use Xilinx GIT for board files instead of local version
Board Setting:
PARTNUMBER: Set Board part number of the project which should be created
Available Numbers: (you can use ID,PRODID,BOARDNAME or SHORTNAME from TExxxx_board_file.csv list)
Used for project creation and programming
To create empty project without board part, used PARTNUMBER=-1 (use GUI to create your project. No block design tcl-file should be in /block_design)
Example TE0726 Module :
USE
...
ID |USE PRODID PARTNUMBER=1 |PARTNUMBER=te0726-01
Programming Settings (program*file.cmd):
SWAPP: Select Software App, which should be configured.
Use the folder name of the
...
"<project folder>/prebuilt/boot_image/<partname>/*" subfolder. The *bin,*.mcs or *.bit from this folder will be used.
If you will configure the raw *.bit or *.
...
mcs *.
...
bin from the
...
"<project folder>/prebuilt/hardware/<partname>/" folder, use @set SWAPP=NA or @set SWAPP="".
Example: SWAPP=hello_world → used the file from "<project folder>/prebuilt/boot_image/<partname>/hello_world"
<project folder>/workspace/" directory with related documents! Type "Y" into the command line input to start deleting files
design_run_project_batchmode.cmd
available
(optional)
...
Create Project with setting from "design_basic_settings.cmd" and source folders. Build all Vivado hardware and software files if the sources are available.
...
Delete "<project folder>/vivado/", and "
...
<project folder>/workspace/
...
sdk/" directory with related documents before Project will created.
Hardware Design
vivado_create_project_guimode.cmd
available
Create Project with setting from "design_basic_settings.cmd" and source folders. Vivado GUI will be opened during the process.
Delete "
...
<project folder>/vivado/", and "
...
<project folder>/workspace/" directory with related documents before Project will created.
If old vivado project exists, type "y" into the command line input to start project creation again.
vivado_create_project_batchmode.cmd
available
(optional)
...
Create Project with setting from "design_basic_settings.cmd" and source folders.
...
Delete "<project folder>/vivado/", and "
...
<project folder>/workspace/" directory with related documents before Project will created.
If old vivado project exists, type "y" into the command line input to start project creation again.
vivado_open_existing_project_guimode.cmd
available
Opens an existing Project "
...
<project folder>/vivado/<design_name>.xpr" and restore Script-Variables.
Software Design
sdk_create_prebuilt_project_guimode.cmd
available
(optional) Create
...
Vitis project with hardware definition file from prebuild folder. It used the *.
...
xsa from:
...
"<project folder>/prebuilt/hardware/<board_file_shortname>/". Set "<board_file_shortname>
...
" and "<app_name>" in "design_basic_settings.cmd".
Programming
program_flash
...
.cmd
available
(optional)
...
Programming Flash Memory via JTAG with specified
...
*.bin
...
(Zynq devices) or *.mcs (native FPGA). Used LabTools Programmer (Vivado or LabTools only
...
. Default, it used the boot.bin from:
...
"<project folder>/prebuilt/boot_images/<board_file_shortname>/<app_name>". Settings are done in "design_basic_settings.cmd".
program_flash_
...
binfile.cmd
obsolete
(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
...
installation settings. Default, it used
...
the boot.bin from: "<project folder>/prebuilt/
...
boot_images/<board_file_shortname>/<app_name>". Settings are done in "design_basic_settings.cmd".
program_
...
flash_
...
mcsfile.cmd
obsolate
(optional)
...
For Non-Zynq Systems only. Programming Flash Memory via JTAG with specified
...
"<project folder>.mcs". Used LabTools Programmer (Vivado or LabTools only), depends on
Programming FPGA via JTAG with specified "<design_name>.bit". Used LabTools Programmer (Vivado or LabTools only), depends on installation settings. Default, it used the "<design_name>.bit" from: "<project folder>/prebuilt/hardware/<board_file_shortname>". Settings are done in "design_basic_settings.cmd".
labtools_open_project_guimode.cmd
available
(optional) Create or open an existing Vivado Lab Tools Project. (Additional TCL functions from Programming and Utilities Group are usable). Settings are done in "design_basic_settings.cmd".
Linux Command Files
...
Settings for the other *.cmd files. Following Settings are avaliable:
Intenal Development
development_design_run_prebuilt_all_batchmode.cmd
internal available
(only Trenz Internal) Create files for all variants
development_utilities_backup.cmd
internal available
(only Trenz Internal) Create ZIP file
development_xsct_console.cmd
internal available
(only Trenz Internal) Start XSCT Console on Vitis workspace
Linux Command Files
File Name
Status
Description
Design + Settings
_create_linux_setup.sh
available
Use to create bash files. With 2018.3 and newer also "Module Selection Guide" is included and with 2022.2 prebuilt export for the selected variant
design_basic_settings.sh
available
Settings for the other *.cmd files. Following Settings are avaliable:
General Settings:
(optional) DO_NOT_CLOSE_SHELL: Shell do not closed after processing
(optional) ZIP_PATH: Set Path to installed Zip
...
-Program. Currently 7-Zip are supported. IUsed for predefined TCL-function to Backup project.
...
Xilinx Setting:
XILDIR: Set Xilinx installation path (Default: /opt/Xilinx/).
VIVADO_VERSION: Current Vivado/LabTool/SDK Version (Example:
...
2023.2). Don't change Vivado Version.
Xilinx Software will be searched in:
VIVADO (optional for project creation and programming): %XILDIR%/Vivado/%VIVADO_VERSION%/ and for SDSoC on %XILDIR%\SDx\%VIVADO_VERSION%\Vivado\
...
Vitis (optional for software projects and programming): %XILDIR%/SDK\%VIVADO_VERSION%/
LabTools (optional for programming only): %XILDIR%/Vivado_Lab/%VIVADO_VERSION%/
...
USE_XILINX_PETALINUX: Betaversion, use TE TCL commands to built linux from template and export binaries to the prebuilt folder
ALTERNATIVE_PETALINUX_XSETTINGS: alternative path for petalinux in case it's not installed with unified installer from xilinx
Board Setting:
PARTNUMBER: Set Board part number of the project which should be created
Available Numbers: (you can use ID,PRODID,BOARDNAME or SHORTNAME from TExxxx_board_file.csv list)
Used for project creation and programming
To create empty project without board part, used PARTNUMBER=-1 (use GUI to create your project. No block design tcl-file should be in /block_design)
Example TE0726 Module :
USE ID
...
|USE
...
PRODID PARTNUMBER=1 |PARTNUMBER=te0726-01
USE_XILINX_BOARD_STORE: use Xilinx GIT for board files instead of local version
Programming Settings(program*file.cmd):
SWAPP: Select Software App, which should be configured.
Use the folder name of the
...
"<project folder>/prebuilt/boot_image/<partname>/*" subfolder. The *bin,*.mcs or *.bit from this folder will be used.
If you will configure the raw *.bit or *.
...
mcs *.
...
bin from the
...
"<project folder>/prebuilt/hardware/<partname>/" folder, use @set SWAPP=NA or @set SWAPP="".
Example: SWAPP=hello_world → used the file from prebuilt/boot_image/<partname>/hello_world
...
SWAPP=NA
...
→ used the file from
...
<project folder>/prebuilt/boot_image/<partname>/
PROGRAM_ROOT_FOLDER_FILE: If you want to program design file from the rootfolder
...
"<project folder>", set to 1
Attention: it should be only one *.bit, *.msc or *.bin file in the root folder.
design_clear_design_folders.sh
not available
(optional)
...
Attention: Delete "
...
<project folder>/v_log/", "
...
<project folder>/vivado/", "
...
<project folder>/vivado_lab/", "
...
<project folder>/sdsoc/", and "
...
<project folder>/workspace/" directory with related documents! Type "Y" into the command line input to start deleting files
design_run_project_bashmode.sh
...
available
(optional)
...
Create Project with setting from "design_basic_settings.cmd" and source folders. Build all Vivado hardware and software files if the sources are available.
...
Delete "<project folder>/vivado/", and "
...
<project folder>/workspace/
...
sdk/" directory with related documents before Project will created.
Hardware Design
vivado_create_project_guimode.sh
available
Create Project with setting from "design_basic_settings.cmd" and source folders. Vivado GUI will be opened during the process.
Delete "
...
<project folder>/vivado/", and "
...
<project folder>/workspace/" directory with related documents before Project will created.
If old vivado project exists, type "y" into the command line input to start project creation again.
vivado_create_project_bashmode.sh
not available
(optional)
...
Create Project with setting from "design_basic_settings.cmd" and source folders.
...
Delete "<project folder>/vivado/", and "
...
<project folder>/workspace/" directory with related documents before Project will created.
If old vivado project exists, type "y" into the command line input to start project creation again.
vivado_open_existing_project_guimode.sh
available
Opens an existing Project "
...
<project folder>/vivado/<design_name>.xpr" and restore Script-Variables.
Software Design
sdk_create_prebuilt_project_guimode.sh
not available
(optional) Create SDK project with hardware definition file from prebuild folder. It used the *.
...
hdfxsa from:
...
"<project folder>/prebuilt/hardware/<board_file_shortname>/". Set "<board_file_shortname>
...
" and "<app_name>" in "design_basic_settings.cmd".
Programming
program_flash
...
.sh
not available
(optional)
...
Programming Flash Memory via JTAG with specified
...
*.bin
...
(Zynq devices) or *.mcs (native FPGA). Used LabTools Programmer (Vivado or LabTools only
...
. Default, it used the boot.bin from:
...
"<project folder>/prebuilt/boot_images/<board_file_shortname>/<app_name>". Settings are done in "design_basic_settings.
...
sh".
...
labtools_open_
...
project_
...
guimode.sh
not available
(optional)
...
Create or open an existing Vivado Lab Tools Project. (Additional TCL functions from Programming and Utilities Group are usable). Settings are done in "design_basic_settings.cmd".
...
Intenal Development
development_design_run_prebuilt_all_batchmode.sh
...
internal available
(
...
(optional) Create or open an existing Vivado Lab Tools Project. (Additional TCL functions from Programming and Utilities Group are usable). Settings are done in "design_basic_settings.cmd".
only Trenz Internal) Create files for all variants
development_utilities_backup.sh
internal available
(only Trenz Internal) Create ZIP file
TE-TCL-Extentions
...
Name
Options
Description (Default Configuration)
TE::help
Display currently available functions. Important: Use only displayed functions and no functions from sub-namespaces
Create new Block-Design with initial Setting for PS, for predefined bd_names: fsys→Fabric Only, msys→Microblaze, zsys→7Series Zynq, zusys→UltraScale+ Zynq
...
Type TE::hw_blockdesign_create_bd -help for more information
(MicroBlaze only) If "-swapp" is set, the Bitfile with *.elf configuration is used from <design_name>/prebuilt/boot_images/<board_file_shortname>/<app_name>
...
] [-help]
Attention:
...
Beta usage only for Linux OS
-run: generated whole project from OS folder and export linux binaries to prebuilt
-config: run petalinux-config
-u-boot: run petalinux-config -c u-boot
-kernel: run petalinux-config -c kernel
-rootfs: run petalinux-config -c rootfs
-bootscr_opt: change bootscr option(default will be run if not defined). arg1=def,ign,mod, if arg1=mod add also arg2=imageub_addr arg3=imageub_flash_addr arg4=imageub_flash_size
-devicetree <arg>: open device tree with gvim unse <arg>=system for linux and <arg>=u-boot for u-boot device tree
-app <arg>: run petalinux-create -t apps -n <arg> --enable Note this generates only simple hello world project which must be modified manually
-disable_clear: disable automatically project clearing after run
-clear: run project clearing
Programming
TE::pr_init_hardware_manager
[-help]
Open Hardware manager, autoconnect target device and initialise flash memory with configuration from *_board_files.csv.
Configure the reference-design: 1. Open “design_basic_settings.cmd” with a text-editor: a. Set correct Xilinx Environment: @set XILDIR=C:/Xilinx @set VIVADO_VERSION=2018.2 Program settings will be search in : %XILDIR%/VIVADO/%VIVADO_VERSION%/ %XILDIR%/Vivado_Lab/%VIVADO_VERSION%/ %XILDIR%/SDK/%VIVADO_VERSION%/ Example directory: c:/Xilinx/Vivado/2018.2/ Attention: Scripts are supported only with predefined Vivado Version! b. Set the correct module part-number: @set PARTNUMBER=x You found the available Module Numbers in <design_name>/board_files/<board_series>_board_files.csv c. Set Application name (for programming with batch-files only): @set SWAPP=NA NA (No Software Project) used *.bit or *.mcs from <design_name>/prebuilt/hardware/<board_file_shortname> <app_name> (Software Project) used *.bit or *.mcs or *.bin from <design_name>/prebuilt/boot_images/<board_file_shortname>/<app_name>
Create all prebuilt files in one step: 2. Run “design_run_project_batchmode.cmd”
(optional to Step 2) Create all prebuilt files in single steps: 3. Run “vivado_create_project_guimode.cmd”: A Vivado Project will be create and open in ./vivado 4. Type “TE::hw_build_design” on Vivado TCL-Console: Run Synthese, Implement and create Bitfile and optional MCSfile 5. Type “TE::sw_run_hsi” on Vivado TCL-Console: Create all Software Applications from <design_name>/sw_lib/apps_list.csv 6. (optional to Step 5) Type “TE::sw_run_sdk” on Vivado TCL-Console: Create a SDK Project in <design_name>/workspace/sdk Include Hardware-Definition-File, Bit-file and local Software-libraries from <design_name>/sw_lib/sw_apps
Programming FPGA or Flash Memory with prebuilt Files: 7. Connect your Hardware-Modul with PC via JTAG. With Batch-file: 8. (optional) Zynq-Devices Flash Programming (*.bin): Run “program_flash_binfile.cmd” 9. (optional) FPGA-Device Flash Programming (*.mcs): Run “program_flash_mcsfile.cmd” 10. (optional) FPGA-Device Programming (*.bit): Run “program_fpga_bitfile.cmd” With Vivado/Labtools TCL-Console: 11. Run “vivado_open_existing_project_guimode.cmd” or “labtools_open_project_guimode.cmd” to open Vivado or LabTools 12. (optional) Zynq-Devices Flash Programming (*.bin): Type “TE::pr_program_flash_binfile -swap <app_name>” on Vivado TCL-Console Used *.bin from <design_name>/prebuilt/boot_images/<board_file_shortname>/<app_name> 13. (optional) FPGA-Device Flash Programming (*.mcs): Type “TE:: pr_program_flash_mcsfile -swap <app_name>” on Vivado TCL-Console Used *.mcs from <design_name>/prebuilt/boot_images/<board_file_shortname>/<app_name> 14. (optional) FPGA-Device Programming (*.bit): Type “TE:: pr_program_jtag_bitfile -swap <app_name>” on Vivado TCL-Console Used *.bit from <design_name>/prebuilt/boot_images/<board_file_shortname>/<app_name>
Basic Design Settings
Project Configuration
Unzip project files
Rename basefolder (basefolder name is used as project name)
Edit design_basic_settings.cmd
Select the correct Xilinx Program path (See: Windows Command Files → design_basic_settings.cmd)
Select the correct board part number for your PCB (See: Windows Command Files → design_basic_settings.cmd)
Other settings are optional (See: Windows Command Files → design_basic_settings.cmd)
Excecute vivado_create_project_guimode.cmd or vivado_create_project_batchmode.cmd to generate a vivado project with the predefined Block Design from the Block Design folder
Open Vivado with vivado_open_existing_project_guimode.cmd(if you use vivado_create_project_guimode.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...
Initialise TE-scripts on Vivado/LabTools
Variant 1 (recommended):
Start the project with the predefined command file (vivado_open_existing_project_guimode.cmd) respectively LabTools with (labtools_open_project_guimode.cmd)
Variant 2:
Create your own Initialisation Button on the Vivado GUI:
Board Parts are located on subfolder "board_files", with the name of the special board. Revisions are splitt in the subfolder of the board part <boardpart_name><version>
Every Version of a Board Parts consists of four files:
board.xml
part0_pins.xml
preset.xml
picture.jpg or picture.png
Board Part Carrier Extension
Board Part Carrier Extensions are a TCL-Scripts, which can be sourced in Vivado Block Design. Thy are used with TE-Scripts only. It contains additional settings of PS-System for special carrier-board, if no special Board part file exists.
Board Part Carrier Extensions are located on subfolder "board_files/carrier_extension/" with file name *_preset.tcl.
Use Reference Designs or Vivado TCL-Console(TE-Script extensions, see Initialise TE-scripts on Vivado/LabTools):TE::hw_blockdesign_create_bd -help to create PS with full settings. Or source the TCL file manually direct after "Run Block Automation"
Board Part CSV Description
Board Part csv file is used for TE-Scripts only.
...
"<Flash Name from Vivado>|<SPI Interface>|<Flash Size in MB>" or "NA" , NA is not defined, ex. s25fl256s-3.3v-qspi-x4-single|SPIx4|32
Flash Name is used for programming, SPI Interface and Size in MB is used for *.mcs build.
...
Block Design Conventions
...
Recommended BD-Names (currently importend for some TE-Scripts):
...
Program flash with the given swapp from the prebuilt folder ("<project folder>/prebuilt/boot_images/<board_file_shortname>/<app_name>"). Available app can be checked with -swapp_av, specify app with -swapp <app_name> Erase flash only with -erase
TE::pr_putty
[-available_com] [-com] [-speed] [-help]
Show available COM ports and open automatically the UART COM port, in case only one is selectable
Attention: For Zynq Systems only! Program the Bootbin from "<project folder>/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. If "-used_basefolder_binfile" is set, the Binfile (*.bin) rom the base folder (<project folder>) is used instead of the prebuilts. Attention: Take only one Binfile in the basefolder!
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 "<project folder>/prebuilt/hardware/<board_file_shortname>" to the Flash Device. After programming device reboot from memory will be done. If "-used_basefolder_binfile" is set, the MCSfile (*.mcs) from the base folder (<project folder>) is used instead of the prebuilds. Attention: Take only one MCSfile in the basefolder!
(MicroBlaze only) If "-swapp" is set, the MCSfile with *.elf configuration is used from "<project folder>/prebuilt/boot_images/<board_file_shortname>/<app_name>"
start svn commands on the current project(project must be under SVN Version)
On Win OS: Need Tortouise SVN with command line tools installation
On Linux: Need subversion installed, for example sudo apt-get install subversion -y
Beta Test (Advanced usage only!)
TE::ADV::beta_util_sdsoc_project
[-check_only] [-help]
Create SDSOC-Workspace. Currently only on some Reference-Designs available. Run [-check_only] option to check SDSOC ready state.
TE::ADV::beta_hw_remove_board_part
[-permanent] [-help]
Reconfigure Vivado project as project without board part. Generate XDC-File from board part IO definitions and change ip board part properties. No all IPs are supported.
TE::ADV::beta_hw_export_rtl_ip
\[-help\]
Save IPs used on rtl designs as *.xci in "<project folder>hdl/xci". If sub folder "<board_file_shortname>" is defined this will be saved there.
Automatically configuration of the reference-designs (only with 2018.3 scripts and newer):
Run "_create_win_setup.cmd" or "_create_linux_setup.sh"
select "module selection guide" and follow instructions.
"design_basic_settings.cmd" will be configured over this menu
(optional for 18.3 or newer) Manual Configure the reference-design (Note: batch/bash files works only in the basefolder of the project, use _create_*_setup.cmd/sh or copy manually ): 1. Open “design_basic_settings.cmd” with a text-editor: a. Set correct Xilinx Environment: @set XILDIR=C:/Xilinx @set VIVADO_VERSION=2023.2 Program settings will be search in : %XILDIR%/VIVADO/%VIVADO_VERSION%/ %XILDIR%/Vivado_Lab/%VIVADO_VERSION%/ %XILDIR%/Vitis/%VIVADO_VERSION%/ Example directory: c:/Xilinx/Vivado/2023.2/ Attention: Scripts are supported only with predefined Vivado Version! b. Set the correct module part-number: @set PARTNUMBER=x You found the available Module Numbers in "<project folder>/board_files/<board_series>_board_files.csv" c. Set Application name (for programming with batch-files only): @set SWAPP=NA NA (No Software Project) used *.bit or *.mcs from "<project folder>/prebuilt/hardware/<board_file_shortname>" <app_name> (Software Project) used *.bit or *.mcs or *.bin from "<project folder>/prebuilt/boot_images/<board_file_shortname>/<app_name>"
Create all prebuilt files in one step: 2. Run “design_run_project_batchmode.cmd”
(optional to Step 2) Create all prebuilt files in single steps: 3. Run “vivado_create_project_guimode.cmd”: A Vivado Project will be create and open in ./vivado 4. Type “TE::hw_build_design” on Vivado TCL-Console: Run synthesis, Implement and create Bitfile and optional MCSfile 5. Type “TE::sw_run_vitis -all -no_gui” on Vivado TCL-Console: Create all Software Applications from "<project folder>/sw_lib/apps_list.csv" 6. (optional to Step 5) Type “TE::sw_run_vitis ” on Vivado TCL-Console: Create a SDK Project in "<project folder>/workspace/sdk" Include Hardware-Definition-File, Bit-file and local Software-libraries from "<project folder>/sw_lib/sw_apps"
Programming FPGA or Flash Memory with prebuilt Files: 7. Connect your Hardware-Modul with PC via JTAG. With Batch-file: 8. (optional) Zynq-Devices Flash Programming (*.bin) or FPGA-Device Flash Programming (*.mcs): Run “program_flash.cmd” 10. (optional) FPGA-Device Programming (*.bit): Run “program_fpga_bitfile.cmd” With Vivado/Labtools TCL-Console: 11. Run “vivado_open_existing_project_guimode.cmd” or “labtools_open_project_guimode.cmd” to open Vivado or LabTools 12. (optional) Zynq-Devices Flash Programming (*.bin): Type “TE::pr_program_flash -swap <app_name>” on Vivado TCL-Console Used .bin(Zynq)/.mcs(native FPGA) "<project folder>/prebuilt/boot_images/<board_file_shortname>/<app_name>" 13. (optional) FPGA-Device Programming (*.bit): Type “TE:: pr_program_jtag_bitfile -swap <app_name>” on Vivado TCL-Console Used *.bit from "<project folder>/prebuilt/boot_images/<board_file_shortname>/<app_name>"
Basic Design Settings
Initialise TE-scripts on Vivado/LabTools
Variant 1 (recommended):
Start the project with the predefined command file (vivado_open_existing_project_guimode.cmd) respectively LabTools with (labtools_open_project_guimode.cmd)
Variant 2:
Create your own Initialisation Button on the Vivado GUI:
Board Parts are located on subfolder "board_files", with the name of the special board. Revisions are split in the subfolder of the board part <boardpart_name><version>
Every Version of a Board Parts consists of four files:
board.xml
part0_pins.xml
preset.xml
picture.jpg or picture.png
Board Part or Design Extension
Board Part Extensions are TCL-Scripts, which can be sourced in Vivado Block Design. Thy are usable with TE-Scripts only. It contains additional settings of PS-settings or special carrier-board design changes.
Use Reference Designs or Vivado TCL-Console (TE-Script extensions, see Initialise TE-scripts on Vivado/LabTools):TE::hw_blockdesign_create_bd -help to create PS with full settings. Or source the TCL file manually direct after "Run Block Automation"
Possible:
Board Part PS settings are located on subfolder "board_files/preset_extension/" with file name *_preset.tcl.
Design modifications are located on subfolder "board_files/bd_mod/" with file name *_bd.tcl.
Board Part CSV Description
Board Part csv file is used for TE-Scripts only.
Name
Description
Value
ID
ID to identify the board variant of the module series, used in TE-Scripts
Number, should be unique in csv list
PRODID
Product ID
Product Name
PARTNAME
FPGA Part Name, used in Vivado and TE-Scripts
Part Name, which is available in Vivado, ex. xc7z045ffg900-2
BOARDNAME
Board Part Name, used in Vivado and TE-Scripts
set Board Part Name or "NA", which is available in Vivado, NA is not defined to run without board part and board part ex. trenz.biz:te0782-02-45:part0:1.0
SHORTNAME
Subdirectory name, used for multi board projects to get correct sources and save prebuilt data
name to save prebuilt files or search for sources
ZYNQFLASHTYP
Flash type used for programming Zynq-Devices via SDK-Programming Tools (program_flash)
"qspi_single" or "NA", NA is not defined
FPGAFLASHTYP
Flash type used for programming Devices via Vivado/LabTools
"<Flash Name from Vivado>|<SPI Interface>|<Flash Size in MB>" or "NA" , NA is not defined, ex. s25fl256s-3.3v-qspi-x4-single|SPIx4|32
Flash Name is used for programming, SPI Interface and Size in MB is used for *.mcs build.
For Zynq and ZynqMO only Flash name is necessary
PCB_REV
Supported PCB Revision
"<supported PCB Revision>|<supported PCB Revision>", for ex. "REV02" or "REV03|REV02"
DDR_SIZE
Size of Module DDR
use GB or MB, for ex. "2GB" or "512MB" or "NA" if not available
FLASH_SIZE
Size of Module Flash
use MB, for ex. "64MB" or "NA" if not available
EMMC_SIZE
Size of Module EMMC
use GB or MB, for ex. "4GB" or "NA" if not available
OTHERS
Other module relevant changes to distinguish assembly variants
NOTES
Additional Notes
DESIGN
Specify the allowed variants for different designs.
see also <design folder>\settings\design_settings.tcl
CONFIG_SW_EXTPLL
Optional parameter to support different PLL Versions which can be programmed
Replace all files with the same file name on sw_lib folder with the specified one Will be copied once on project generation with "_create_*_setup.*" from misc folder to fsbl source code
relativ path to the source file, for example "./misc/PLL/SI5345_D/te_Si5345-Registers.h"
Block Design Conventions
Only one Block-Design per project is supported
Recommended BD-Names (currently importend for some TE-Scripts):
Name
Description
zsys
Identify project as Zynq Project with processor system (longer name with *zsys* are supported too)
zusys
Identify project as UltraScaleZynq Project with processor system (longer name with *zusys* are supported too)
msys
Identify project as Microblaze Project with processor system (longer name with *msys* are supported too)
fsys
Identify project as FPGA-fabric Project without processor system (longer name with *fsys* are supported too)
Create Basic Block Design with PS Board-Part Preset and Carrier-Board extended settings (only if subfolder carrier_extension with tcl files is available), use TE::hw_blockdesign_create_bd -help
XDC Conventions
All *.xdc from <project folder>/constrains/ are load into the vivado project on project creation. Attention: If subfolder <project folder>/constrains/<board_file_shortname> is defined, it will be used the subfolder constrains only for this module!
Recommended XDC-Names (used for Vivado XDC-options):
Property
Name part
Description
Set Processing Order
*_e_*
set to early
*_l_*
set to late
set to normal
Set Used In
*_s_*
used in synthesis only
*_i_*
used in implement only
used in both, synthesis and implement
Backup Block Design as TCL-File
Backup your Block-Design with TCL-Command "TE::hw_blockdesign_export_tcl" in <project folder>/block_design/ It will be saved as *_bd.tcl Attention: If subfolder <project folder>/block_design/<board_file_shortname> or <project folder>/block_design/PCB Revision> is defined, it will be saved there! Only one *.tcl file should be in the backup folder respectively the subfolder <board_file_shortname>
Microblaze Firmware
Microblaze Firmware (*.elf) can be add to the source folder <project folder>/firmware/<Microblaze IP Instance>.
For MCS-Core use MCS IP Instance Name. This name must use *mcs* or *syscontrol* in the name.
Software Design
Vitis: Generate predefined software from libraries
To generate predefined software from libraries, run "TE::sw_run_vitis -all -no_gui" on Vivado TCL-Console
All programs in in <project folder>/sw_lib/apps_list.csv are generated automaticity
Supported are local application libraries from <project folder>/sw_lib/sw_apps or the most Xilinx SDK Applications found in %XILDIR%/SDK/%VIVADO_VERSION%/data/embeddedsw/lib/sw_app
VITIS: Create user software project
To start SDK project, run "TE::sw_run_vitis" on Vivado TCL-Console or run "TE::sw_run_vitis -workspace_only" on Vivado TCL-Console Include Hardware-Definition-File (XSA), Bit-file and local Software-libraries from "<project folder>/sw_lib/sw_apps"
To useHardware-Definition-File, Bit-file from prebuilt folder without building the vivado hardware project, run "sdk_create_prebuilt_project_guimode.cmd" or type "TE::sw_run_vitis -prebuilt_xsa <board_number>" on Vivado-TCL-Console
To open an existing SDK-project without update HDF-Data, type "TE::sw_run_vitis -gui_only" on Vivado-TCL-Console
Advanced Usage
Attention not all features of the TE-Scripts are supported in the advanced usage!
User defined board part csv file
To modify current board part csv list, make a copy of the original csv and rename with suffix "_mod.csv", ex.TE0782_board_files.csv as TE0782_board_files_mod.csv. Scripts used modified csv instead of the original file.
Vivado Project settings (corresponding TCL-Commands) can be saved as a user defined file "<project folder>/settings/project_settings.tcl". This file will be loaded automatically on project creation.
Script settings:
Additional script settings (only some predefined variables) can be saved as a user defined file "<project folder>/settings/development_settings.tcl". This file will be loaded automatically on script initialisation.
Design settings:
Additional script settings (only some predefined variables) can be saved as a user defined file "<project folder>/settings/design_settings.tcl". This file will be loaded automatically on script initialisation.
ZIP ignore list:
Files which should not be added in the backup file can be can be defined in this file: "<project folder>/settings/zip_ignore_list.tcl". This file will be loaded automatically on script initialisation.
SDSOC settings:
SDSOC settings will are deposited on the following folder: "<project folder>/settings/sdsoc"
User defined TCL Script
TCL Files from "<project folder>/settings/usr" will be load automatically on script initialisation.
SDSOC-Template
SDSOC description and files to generate SDSoC project are deposited on the following folder: "<project folder>/settings/sdsoc"
HDL-Design
HDL files can be saved in the subfolder "<project folder>/hdl/" as single files or <project folder>/hdl/folder/ and all subfolders or "<project folder>/hdl/<shortname>" and all subfolders of "<project folder>/hdl/<shortname>". They will be loaded automatically on project creation. Available formats are *.vhd, *.v and *.sv. A own top-file must be specified with the name "<project folder>_top.v" or "<project folder>_top.vhd".
To set file attributes, the file name must include "_simonly_" for simulation only and "_synonly_" for synthesis only.
IP-cores (*.xci). can be saved in the subfolder "<project folder>/hdl/xci" or "<project folder>/hdl/xci/<shortname>". They will be loaded automatically on project creation.
IP -TCL description (*_preset.tcl). can be saved in the subfolder "<project folder>/hdl/tcl" or "<project folder>/hdl/tcl/<shortname>". They will be loaded automatically on project creation.
*_preset.tcl must include
TCL part for IP creation: create_ip -name ...
TCL part for IP configuration: set_property -dict...
TCL part for IP target generation: generate_target {instantiation_template} .....
Checklist / Troubleshoot
Scroll Ignore
scroll-pdf
true
scroll-office
true
scroll-chm
true
scroll-docbook
true
scroll-eclipsehelp
true
scroll-epub
true
scroll-html
true
Are you using exactly the same Vivado version? If not then the scripts will not work, no need to try.
Are 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.
Win OS only: Use short path name, OS allows only 256 characters in normal path.
Linux OS only: Use bash as shell and add access rights to bash files. Check with "ls ls /bin/sh". It should be display: /bin/sh -> bash. Access rights can be changed with "chmod"
Are space character on the project path? Sometimes TCL-Scripts can't handle this correctly. Remove spaces from project path.
Did you have the newest reference design build version? Maybe it's only a bug from a older version.
Check <project folder>/v_log/vivado.log? If no logfile exist, wrong xilinx paths are set in design_basic_settings.cmd
On project creation process old files will be deleted. Sometimes the access will be denied by os (synchronisation problem) and the scripts cancelled. Please try again.
If nothing helps, send a mail to Trenz Electronic Support (support[at]trenz-electronic.de) with subject line "[TE-Reference Designs] ", the complete zip-name from your reference design and the last log file (<project folder>/v_log/vivado.log)
References
Scroll Ignore
scroll-pdf
true
scroll-office
true
scroll-chm
true
scroll-docbook
true
scroll-eclipsehelp
true
scroll-epub
true
scroll-html
true
Vivado Design Suite User Guide - Getting Started (UG910)
Vivado Design Suite User Guide - Using the Vivado IDE (UG893)
Vivado Design Suite User Guide - I/O and Clock Planning (UG899)
Vivado Design Suite User Guide - Programming and Debugging (UG908)
Zynq-7000 All Programmable SoC Software Developers Guide (UG821)
SDSoC Environment User Guide - Getting Started (UG1028)
SDSoC Environment - User Guide (UG1027)
SDSoC Environment User Guide - Platforms and Libraries (UG1146)
Document Change History
Scroll Ignore
scroll-pdf
true
scroll-office
true
scroll-chm
true
scroll-docbook
true
scroll-eclipsehelp
true
scroll-epub
true
scroll-html
true
To get content of older revision got to "Change History" of this page and select older revision number.
HTML
<!--
Generate new entry:
1:add new row below first
2:Copy Page Information Macro(date+user) Preview, Page Information Macro Preview, Vivado Version(or update)to the empty row
3.Update Metadate =Page Information Macro Preview+1
-->
Date
Revision
Vivado Version
Authors
Description
Page info
infoType
Modified date
dateFormat
yyyy-MM-dd
type
Flat
Page info
infoType
Current version
prefix
v.
type
Flat
2022.2
Page info
infoType
Modified by
type
Flat
working in process
2023-08-15
v.176
2022.2
John Hartfiel
Last Vivado 2022.2 supported project delivery version
2023-02-06
v.171
2021.2
John Hartfiel
Last Vivado 2021.2 supported project delivery version
2021-05-06
v.162
2020.2
Manuela Strücker
Last Vivado 2020.2 supported project delivery version
2020-11-26
v.157
2019.2
John Hartfiel
Last Vivado 2019.2 supported project delivery version
2019-12-18
v.148
2018.2
John Hartfiel
Last Vivado 2018.3 supported project delivery version
---
---
2018.2
John Hartfiel
Last Vivado 2018.2 supported project delivery version
no document update was done
2019-07-10
v.142
2017.4
John Hartfiel
Last Vivado 2017.4
...
XDC Conventions
...
Recommended XDC-Names (used for Vivado XDC-options):
...
Backup Block Design as TCL-File
Backup your Block-Design with TCL-Command "TE::hw_blockdesign_export_tcl" in <design_name>/block_design/ It will be saved as *_bd.tcl Attention: If subfolder <design_name>/block_design/<board_file_shortname> is defined, it will be saved there! Only one *.tcl file shoud be in the backup folder respectively the subfolder <board_file_shortname>
Microblaze Firmeware
Microblaze Firmware (*.elf) can be add to the source folder <design_name>/firmware/<Microblaze IP Instance> or<design_name>/firmware/<BD hierarchie>/<Microblaze IP Instance>.
For MCS-Core use MCS IP Instance Name. This name must use *mcs* or *syscontrol* in the name.
Software Design
HSI: Generate predefined software from libraries
To generate predefinde software from libraries, run "TE::sw_run_hsi" on Vivado TCL-Console
All programs in in <design_name>/sw_lib/apps_list.csv are generated automaticly
Supported are local application libaries from <design_name>/sw_lib/sw_apps or the most Xilinx SDK Applications found in %XILDIR%/SDK/%VIVADO_VERSION%/data/embeddedsw/lib/sw_app
SDK: Create user software project
To start SDK project, run "TE::sw_run_sdk" on Vivado TCL-Console Include Hardware-Definition-File, Bit-file and local Software-libraries from <design_name>/sw_lib/sw_apps
To useHardware-Definition-File, Bit-file from prebuilt folder without building the vivado hardware project, run "sdk_create_prebuilt_project_guimode.cmd" or type "TE::sw_run_sdk -prebuilt_hdf <board_number>" on Vivado-TCL-Console
To open an existing SDK-project without update HDF-Data, type "TE::sw_run_sdk -open_only" on Vivado-TCL-Console
Advanced Usage
Attention not all features of the TE-Scripts are supported in the advanced usage!
User defined board part csv file
To modifiy current board part csv list, make a copy of the original csv and rename with suffix "_mod.csv", ex.TE0782_board_files.csv as TE0782_board_files_mod.csv. Scripts used modified csv instead of the original file.
Vivado Project settings (corresponding TCL-Commands) can be saved as a user defined file "<design_name>/settings/project_settings.tcl". This file will be loaded automatically on project creation.
Script settings:
Additional script settings (only some predefined variables) can be saved as a user defined file "<design_name>/settings/development_settings.tcl". This file will be loaded automatically on script initialisation.
ZIP ignore list:
Files which should not be added in the backup file can be can be defined in this file: "<design_name>/settings/zip_ignore_list.tcl". This file will be loaded automaticaly on script initialisation.
SDSOC settings:
SDSOC settings will are deposited on the following folder: "<design_name>/settings/sdsoc"
User defined TCL Script
TCL Files from "<design_name>/settings/usr" will be load automaticaly on script initialisation.
SDSOC-Template
SDSOC description and files to generate SDSoC project are deposited on the following folder: "<design_name>/settings/sdsoc"
HDL-Design
HDL files can be saved in the subfolder "<design_name>/hdl/" as single files or <design_name>/hdl/folder/ and all subfolders or "<design_name>/hdl/<shortname>" and all subfolders of "<design_name>/hdl/<shortname>". They will be loaded automatically on project creation. Available formats are *.vhd, *.v and *.sv. A own top-file must be specified with the name "<design_name>_top.v" or "<design_name>_top.vhd".
To set file attributes, the file name must include "_simonly_" for simulation only and "_synonly_" for synthese only.
RTL-IP-cores (*.xci). can be saved in the subfolder "<design_name>/hdl/xci" or "<design_name>/hdl/xci/<shortname>". They will be loaded automatically on project creation.
Checklist / Troubleshoot
Are you using exactly the same Vivado version? If not then the scripts will not work, no need to try.
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.
Win OS only: Use short path name, OS allows only 256 characters in normal path.
Linux OS only: Use bash as shell and add access rights to bash files. Check with "ls ls /bin/sh". It should be desplay: /bin/sh -> bash. Access rights can be changed with "chmod"
Are space character on the project path? Somtimes TCL-Scripts can't handle this correctly. Remove spaces from project path.
Did you have the newest reference design build version? Maybe it's only a bug from a older version.
Check <design_name>/v_log/vivado.log? If no logfile exist, wrong xilinx paths are set in design_basic_settings.cmd
On project creation process old files will be deleted. Sometimes the access will be denied by os (synchronisiation problem) and the scripts canceled. Please try again.
If nothing helps, send a mail to Trenz Electronic Support (support[at]trenz-electronic.de) with subject line "[TE-Reference Designs] ", the complete zip-name from your reference design and the last log file (<design_name>/v_log/vivado.log)
References
Vivado Design Suite User Guide - Getting Started (UG910)
Vivado Design Suite User Guide - Using the Vivado IDE (UG893)
Vivado Design Suite User Guide - I/O and Clock Planning (UG899)
Vivado Design Suite User Guide - Programming and Debugging (UG908)
Zynq-7000 All Programmable SoC Software Developers Guide (UG821)
SDSoC Environment User Guide - Getting Started (UG1028)
SDSoC Environment - User Guide (UG1027)
SDSoC Environment User Guide - Platforms and Libraries (UG1146)
Document Change History
To get content of older revision got to "Change History" of this page and select older revision number.
HTML
<!--
Generate new entry:
1:add new row below first
2:Copy Page Information Macro(date+user) Preview, Page Information Macro Preview, Vivado Version(or update)to the empty row
3.Update Metadate =Page Information Macro Preview+1
-->
...
2018.2 Work in progress
...
...
supported project delivery version
2017-11-03
v.134
2017.2
John Hartfiel
Last Vivado 2017.2 supported project delivery version
2017-09-12
v.131
2017.1
John Hartfiel
Last Vivado 2017.1 supported project delivery version
2017-04-12
v.126
2016.4
John Hartfiel
Last Vivado 2016.4 supported project delivery version
2017-01-16
v.114
2016.2
John Hartfiel
Last Vivado 2016.2 supported project delivery version
2016-06-21
v.83
2015.4
John Hartfiel
Last Vivado 2015.4 supported project delivery version