Design Name always "TE Series Name" + Design name, for example "TE0720 Test Board"
<!-- tables have all same width (web max 1200px and pdf full page(640px), flexible width or fix width on menu for single column can be used as before) -->
width: 100% !important;
max-width: 1200px !important;
Important General Note:
Export PDF to download, if vivado revision is changed!
Designate all graphics and pictures with a number and a description, Use "Scroll Title" macro
Use "Scroll Title" macro for pictures and table labels. Figure number must be set manually at the moment (automatically enumeration is planned by scrollPDF)
Create DrawIO object here: Attention if you copy from other page, use
image link to the generate DrawIO PNG file of this page. This is a workaround until scroll pdf export bug is fixed
Note: for normal pictures remove Scroll ignore and Scoll only macro
Layout macro can be use for landscape of large tables
Set column width manually(can be used for small tables to fit over whole page) or leave empty (automatically)
Use hdf file to configure linux project: petalinux-config -p <path_to_petalinux_project> --get-hw-description
Build petalinux image from within the project: petalinux-build
Repeat previous step until images are sucessfully created. It may take from 1 to 5 attempts.
Find linux images and copy them back to the Trenz package Files to be copied are located in <petalinux_project_path>/images/linux. Filenames are: image.ub, u-boot.elf, bl31.elf Target folder in Trenz package is: prebuilt/os/petalinux/default for all 1GB DDR modules. or prebuilt/os/petalinux/<shortname> for both supported 2GB DDR modules
Return back to Vivado
run script in TCL console TE::sw_run_hsi
run script in TCL console TE::ADV::beta_util_sdsoc_project
Custom platform for SDx tool is now exported to SDSoC_PFM folder sitting next to Trenz package folder
add name of app and short description, if special app is used
For FSBL check if default or not and add changes!
Source location: \sw_lib\sw_apps
TE modified 2018.2 FSBL
Si5345 Configuration, ETH+OTG Reset over GPIO
see xfsbl_board.c, xfsbl_board.h, xfsbl_main.c
Add Si5345-Registers.h, si5345.c, si534x.h
Removecompiler flags "-Os -flto -ffat-lto-objects" on 2018.2 SDK to generate FSBL
TE modified 2018.2 FSBL for QSPI programming only (SDK(Vivado GUI)
Set FSBL Boot Mode to JTAG
Disable Memory initialisation
see xfsbl_initialisation.c, xfsbl_hw.h, xfsbl_handoff.c, xfsbl_main.c
Remove compiler flags "-Os -flto -ffat-lto-objects" on 2018.2 SDK to generate FSBL
Xilinx default PMU firmware.
Hello TE0808 is a Xilinx Hello World example as endless loop instead of one console output.
U-Boot.elf is generated with PetaLinux. SDK/HSI is used to generate Boot.bin.
add manual changes, which was done on the petalinux project
Maybe List or table is also possible, which seems to be better
This example shows how to use array partitioning to improve performance of a hardware function
This is simple example of using AXI4-master interface for burst read and write
Custom data type
This is a simple example of RGB to HSV conversion to demonstrate Custom Data Type usage in hardware accelerator. Xilinx HLS compiler supports custom data type to operate within the hardware function and also it acts as a memory interface between PL to DDR
Data access random
This is a simple example of matrix multiplication (Row x Col) to demonstrate random data access pattern
This is a simple example to demonstrate inter dependence attribute. Using inter dependence attribute user can provide additional dependency details to compiler which allow compiler to perform unrolling/pipelining to get better performance.
This is a simple example of matrix multiplication with matrix addition (Out = (A x B) + C) to demonstrate direct connection which helps to achieve increasing in system parallelism and concurrency
This example demonstrates how to use Scatter-Gather DMAs for data transfer to/from hardware accelerator
This example demonstrates how to insert Simple DMAs for data transfer between User program and hardware accelerator
File IO Dense Optical Flow
Linux video processing application that reads input video from a file and writes out the output video to a file. Video processing performs LK Dense Optical Flow over two Full HD frames video file. You can run it by supplying a 1080p YUV422 file route85_1920x1080.yuv as input.
File IO Stereo Block Matching
Linux video processing application that reads input video from a file and writes out the output video to a file. Video processing performs Stereo Block Matching to calculate depth in a single sample stereo video file desk_1280x720.yuv as input.
File IO Video Processing
Linux video processing application that reads input video from a file and writes out the output video to a file. Video processing includes Motion Adaptive Noise Reduction (MANR) followed by a Sobel filter for edge detection. You can run it by supplying a 1080p YUV422 file as input with limiting number of frames to a maximum of 20 frames.
Full array 2d
This is a simple example of accessing full data from 2D array
This is a basic hello world kind of example which demonstrates how to achieve vector addition using hardware function
This is a simple example of vector addition to demonstrate how to utilize both ports of Local Memory
This example will demonstrate how to fuse two loops into one to improve the performance of a C/C++ hardware function.
This nearest neighbor example is to demonstrate how to achieve better performance using perfect loop.
This example demonstrates how loop pipelining can be used to improve the performance of a hardware function.
This is a simple example of matrix multiplication (Row x Col) to demonstrate how to achieve better pipeline II factor by loop reordering.
Row array 2D
This is a simple example of accessing each row of data from 2D array
This example demonstrates how to shift values in each clock cycle
This is a simple example which demonstrates sys_port usage
Matrix multiplication implemented as systolic array
Wide memory rw
Wide memory read write 128 bit wide
Window array 2d
This is a simple example of accessing window of data from 2D array
Steps to create an example
Start SDx 2018.2
Select Workspace folder, short path is recommended. Use 'subst' command if needed. Click "Create SDx Project"
Right click project <project name>, example:'mmult' in the Project Explorer window and choose 'Build'
The SDSoC project is compiled (ca 30 min) hw accelerated matrix multiplication. SDCard image is created
Steps to launch on hardware
Copy created files to the SD card.
Connect serial terminal via the USB cable.
Power ON carrier.
On PC, open serial terminal.
Boot of Linux starts up to login stage. Login as 'root' with password 'root'.
Use serial terminal:
cd to /run/media/mmcblk0p1
execute mmult.elf or other example application
Observe the result of accelerated matrix multiplication example.
Appx. A: Change History and Legal Notices
Document Change History
To get content of older revision got to "Change History" of this page and select older document revision number.
Note this list must be only updated, if the document is online on public doc!
It's semi automatically, so do following
Add new row below first
Copy "Page Information Macro(date)" Macro-Preview, Metadata Version number, Author Name and description to the empty row. Important Revision number must be the same as the Wiki document revision number
Metadata is only used of compatibility of older exports