Template Revision 2.2 - on construction 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) -->
<style>
.wrapped{
width: 100% !important;
max-width: 1200px !important;
}
</style> |
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)
- ...
|
Table of contents |
Overview
Basic project to generate SDSoC Platform project and petalinux. Various SDSoC examples are included.
Refer to http://trenz.org/te0xyz-info for the current online version of this manual and other available documentation.
Key Features
Notes : - Add basic key futures, which can be tested with the design
|
- SDSoC platform export
- SDSoC examples (baremetal and linux)
|
Revision History
Notes : - add every update file on the download
- add design changes on description
|
Date | Vivado | Project Built | Authors | Description |
---|
2018-11-06 | 2018.2 | TE0720-TE0720_zsys_SDSoC-vivado_2018.2-build_03_20181106093337.zip | Zdenek Pohl, Jiri Kadlec | initial release |
|
Release Notes and Know Issues
Notes :- add known Design issues and general notes for the current revision
- do not delete known issue, add fixed version time stamp if issue fixed
|
Issues | Description | Workaround | To be fixed version |
---|
No known issues | --- | --- | --- |
|
Requirements
Software
Notes : - list of software which was used to generate the design
|
Software | Version | Note |
---|
SDx(SDSoC) | 2018.2 | needed | PetaLinux | 2018.2 | needed |
|
Hardware
Notes : - list of software which was used to generate the design
|
Basic description of TE Board Part Files is available on TE Board Part Files.
Complete List is available on <design name>/board_files/*_board_files.csv
Design supports following modules:
Module Model | Board Part Short Name | PCB Revision Support | DDR | QSPI Flash | Others | Notes |
---|
te0720-03-2if | 2if | REV02, REV03 | 1GB | 32 |
|
| te0720-03-2ifc3 | 2if | REV02, REV03 | 1GB | 32 | 2.5 mm connector |
| te0720-03-2ifc8 | 2if | REV02, REV03 | 1GB | 32 | 32GB eMMC |
| te0720-03-1qf | 1qf | REV02, REV03 | 1GB | 32 |
|
| te0720-03-1qfa | 1qf | REV03 | 1GB | 32 |
| Micron instead of Spansion Flash | te0720-03-1cf | 1cf | REV02, REV03 | 1GB | 32 |
|
| te0720-03-1cfa | 1cf | REV02, REV03 | 1GB | 32 | 8GB eMMC |
| te0720-03-2ef | 2ef | REV02, REV03 | 1GB | 32 |
|
| te0720-03-14s-1c | 14s | REV02, REV03 | 1GB (L) | 32 |
|
| te0720-03-2ifa | 2if | REV03 | 1GB | 32 |
| Micron instead of Spansion Flash |
|
Design supports following carriers:
Additional HW Requirements:
Content
For general structure and of the reference design, see Project Delivery - AMD devices
Design Sources
Type | Location | Notes |
---|
Vivado | <design name>/block_design <design name>/constraints <design name>/ip_lib | Vivado Project will be generated by TE Scripts | SDK/HSI | <design name>/sw_lib | Additional Software Template for SDK/HSI and apps_list.csv with settings for HSI | PetaLinux | <design name>/os/petalinux | PetaLinux template with current configuration | SDSoC | <design name>/../SDSoC_PFM | SDSoC Platform will be generated by TE Scripts or as separate download |
|
Additional Sources
Download
Reference Design is only usable with the specified Vivado/SDK/PetaLinux/SDx version. Do never use different Versions of Xilinx Software for the same Project.
Basic Reference Design and SDSoC Platform projects for Win OS are available on:
Create SDSoC Platform Project
Notes : - describe how you can create platform project with the normal vivado projects and TE scripts
|
Trenz Electronic provides a tcl based built environment based on Xilinx Design Flow.
See also:
This cheaper describes how you can create SDSoC platform project from special Trenz Electronik Vivado projects.
This chapter is optional: Prebuilt SDSoC platform projects for Win OS are also available on the download area. |
Vivado SDSoc Platform export
Notes : - procedure to create platform project
|
- Download and unpack package (use short path or 'subst' command to make path as short as possible).
- Run '_create_win_setup.cmd' script and choose option '1'
- Edit file 'design_basic_settings.cmd' and fill correctly all variables, set ENABLE_SDSOC=1.
- Launch Vivado by command 'vivado_create_project_guimode.cmd'
- In Vivado:
- run script in TCL console
TE::hw_build_design -export_prebuilt
- (Optional) Build Petalinux:
- Copy OS folder from downloaded package to Linux PC.
- Copy hdf file located in prebuilt/hardware/<shortname> subfolder to Linux PC
- Switch to Linux PC and run in terminal:
- Initialize Petalinux SDK:
source <petalinux_SDK_install_path>/settings.sh - 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
- In 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
SDK/HSI Application
Notes : - 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
zynqmp_fsbl
TE modified 2018.2 FSBL
Changes:
- Si5338 Configuration, ETH+OTG Reset over GPIO
- see xfsbl_board.c, xfsbl_board.h, xfsbl_main.c
- Add register_map.h, si5338.c, si5338.h
Note: Remove compiler flags "-Os -flto -ffat-lto-objects" on 2018.2 SDK to generate FSBL
zynqmp_fsbl_flash
Changes:
- Set FSBL Boot Mode to JTAG
- Disable Memory initialisation
- see xfsbl_initialisation.c, xfsbl_hw.h, xfsbl_handoff.c, xfsbl_main.c
Note: Remove compiler flags "-Os -flto -ffat-lto-objects" on 2018.2 SDK to generate FSBL
Petalinux Configuration
Notes : - add manual changes, which was done on the petalinux project
|
UConfig
U-boot
Device Tree
/include/ "system-conf.dtsi"
/ {
};
|
Kernel
Rootfs
Application
Use SDSoC Platform Project
Included Example
Notes : - short description of the examples
- Maybe List or table is also possible, which seems to be better
|
Example | Comment |
---|
Array partition | This example shows how to use array partitioning to improve performance of a hardware function | Burst rw | 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 | Dependence inter | 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. | Direct connect | 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 | Dma sg | This example demonstrates how to use Scatter-Gather DMAs for data transfer to/from hardware accelerator | Dma simple | 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 | Hello vadd | This is a basic hello world kind of example which demonstrates how to achieve vector addition using hardware function | Lmem 2rw | This is a simple example of vector addition to demonstrate how to utilize both ports of Local Memory | Loop fusion | This example will demonstrate how to fuse two loops into one to improve the performance of a C/C++ hardware function. | Loop perfect | This nearest neighbor example is to demonstrate how to achieve better performance using perfect loop. | Loop pipeline | This example demonstrates how loop pipelining can be used to improve the performance of a hardware function. | Loop reorder | 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 | Shift register | This example demonstrates how to shift values in each clock cycle | Sys port | This is a simple example which demonstrates sys_port usage | Systolic array | 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 |
|
Create Example
Notes : - 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" - Choose 'Application' project type
- Set Project Name (example: mmult)
- Set Platform:
- Click 'Add Custom Platform ...'
- Add SDSoC_PFM folder
- Click next
- Select 'System configuration': Linux
- Click "Next"
- Select Template Application, example:'Array partition'
- Click "Finish"
- 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
Launch
Notes : - 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.
- Reset carrier.
- 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
|
Date | Document Revision | Authors | Description |
---|
| | | | -- | all | | -- |
|
Legal Notices