Basic HLS Tutorial - so-logic
Basic HLS Tutorial
using C++ language and Vivado Design Suite to design two frequencies PWM modulator system
January 25, 2017
Contents
1 INTRODUCTION
1
1.1 Motivation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
1.2 Purpose of this Tutorial . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
1.3 Objectives of this Tutorial . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
1.4 One Possible Solution for the Modulator Design . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
1.5 About HLS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.6 Design Steps . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
1.7 Vivado HLS Design Flow . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
2 DEVELOPING CUSTOM IP CORE USING HLS
11
2.1 Create a New Project . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
2.2 Develop C Algorithm . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
2.3 Verify C Algorithm . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
2.3.1 C Simulation Output Files . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
2.4 Synthesize C Algorithm into an RTL Implementation (High-Level Synthesis) . . . . . . . . . . . . . . . . . 26
2.4.1 C Synthesis Output Files . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
2.4.2 C Synthesis Results . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
2.4.3 Clock, Reset, and RTL Output . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
2.4.4 Applying Optimization Directives . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
2.4.4.1 Clock, Reset, and RTL Output . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
2.4.4.2 Optimizing for Throughput . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
2.4.4.3 Optimizing for Latency . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52
2.4.4.4 Optimizing for Area . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54
2.5 Verify the RTL Implementation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61
2.5.1 Using C/RTL Co-Simulation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63
2.5.2 Analyzing RTL Simulations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66
2.6 Package the RTL Implementation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68
2.6.1 Packaging IP using IP Catalog Format . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68
3 USING DEVELOPED IP CORE IN VIVADO DESIGN SUITE
71
Index
76
CONTENTS ii
List of Figures
1.1 Example of the PWM signal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 1.2 Sine wave with 256 samples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 1.3 Design Steps . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 1.4 Vivado HLS Design Flow . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 1.5 Example of performance tab . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
2.1 The Vivado HLS Welcome Page . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 2.2 Project Configuration dialog box . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12 2.3 Add/Remove Files dialog box . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13 2.4 Save As dialog box . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13 2.5 Add/Remove Files dialog box with added C++ file . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14 2.6 Add/Remove Files dialog box . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 2.7 Save As dialog box with testbench file . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 2.8 Add/Remove TestBench Files dialog box with added testbench file . . . . . . . . . . . . . . . . . . . . . 16 2.9 Solution Configuration dialog box . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17 2.10 Device Selection Dialog dialog box . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18 2.11 Solution Configuration dialog box with selected board . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18 2.12 Vivado HLS Project . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19 2.13 Vivado HLS GUI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20 2.14 Source folder with modulator.cpp file . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22 2.15 Test Bench folder with modulator_tb.cpp file . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22 2.16 Run C Simulation button . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23 2.17 C Simulation dialog box . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24 2.18 Console window showing message about successful simulation . . . . . . . . . . . . . . . . . . . . . . . 25 2.19 Explorer window with C Simulation Output Files . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25 2.20 Run C Synthesis button . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26 2.21 Information pane with synthesis report . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27 2.22 Outline tab with selected Performance Estimates option . . . . . . . . . . . . . . . . . . . . . . . . . . . 27 2.23 Performance Estimates report - Timing Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28 2.24 Performance Estimates report - Loop Latency Detail . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28 2.25 Utilization Estimates report - Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29 2.26 Utilization Estimates report - Detail Instance . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29 2.27 Interface report - Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
................
................
In order to avoid copyright disputes, this page is only a partial summary.
To fulfill the demand for quickly locating and searching documents.
It is intelligent file search solution for home and business.
Related download
- xilinx introduction to fpga design with vivado high level
- vivado design suite user guide high level synthesis amd
- high level synthesis university of south florida
- vivado design suite user guide designing with ip xilinx
- basic hls tutorial so logic
- introduction to fpga design with vivado high level synthesis
- hw vivado hls tips and tricks xilinx
Related searches
- free basic excel tutorial pdf
- basic excel tutorial pdf
- basic logic rules
- basic networking tutorial pdf
- visual basic 2019 tutorial pdf
- basic excel tutorial printable
- basic excel tutorial free
- basic java tutorial pdf
- visual basic programming tutorial pdf
- basic html tutorial pdf
- basic logic symbols
- basic electronics tutorial pdf