Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
SlideShare a Scribd company logo
Courses @ NECST
Lorenzo Di Tucci <lorenzo.ditucci@polimi.it>
Emanuele Del Sozzo <emanuele.delsozzo@polimi.it>
Marco D. Santambrogio <marco.santambrogio@polimi.it>
Xilinx Vivado
25/01/2018
Agenda
• Hardware Design Flow (2nd step)
• Xilinx Vivado
–Synthesis
–Place & Route
–Bitstream Generation
• Hands on example: implementation of both master AXI
and AXI stream designs for vector addition using
Vivado and SDK
Reminder!
Use this Google Doc to provide your data
https://goo.gl/FRCG6y
First, install the VPN we have provided you.
(Mac: Tunnelblick - Windows/Linux: OpenVPN)
To SSH to the machine:
ssh <name>.<surname>@nags31.local.necst.it
password: user
Reminder!
You can change your password here:
http://changepassword.local.necst.it/
You can also RDP to the instance using
• Microsoft Remote Desktop (Microsoft/Mac OS)
• Remmina (Linux)
To connect to the machine, or change your password you must
have started the VPN.
Hardware Design Flow for HPC
• Hardware Design Flow (HDF): process to realize a
hardware module
• HDF for FPGAs can be seen as a 2 step process
The Hardware Design Flow
The Hardware Design Flow
System integration, driver generation and runtime management
The Hardware Design Flow
System integration, driver generation and runtime management
The Hardware Design Flow
System integration, driver generation and runtime management
Vivado Design Suite
• Vivado Design Suite is a software suite for synthesis
and analysis of HDL designs
• Vivado enables developers to synthesize designs,
perform timing analysis, examine RTL diagrams,
simulate designs, and configure the target FPGA
• Starting from HDL, Vivado performs several steps to
eventually generate the bitstream
Vivado Main Steps
• Synthesis: translation from HDL to gate level
• Place: placing of all the logic components on the FPGA
• Route: design of all the wires needed to connect the
placed components
• Bitstream: generation of FPGA configuration file
Synthesis
Place & Route
Bitstream
Launch Vivado
Source settings64.sh file and launch vivado
Vivado GUI
• text
New Project
• text
Project Name
• text
Project Type
• text
Add Sources
• text
Add Constraints
• text
Parts/Boards
• text
Board Selection
• text
Project Summary
• text
Project Window
• text
Run / Generate Bitstream / Settings / Project Summary
Create Block Design
• text
Block Design
• text
Add IP
Validate Design
Regenerate Layout
Tcl Console
Settings
Add IP
• text
Add Memory Interface Generator
• text
Run Block Automation
• text
Block Automation Settings
• text
Run Connection Automation
• text
Connection Automation Settings
• text
MIG Block
• text
Customize MIG Block
• text
MIG Customization
• text
MIG Customization
• text
MIG Customization
• text
MIG Customization
• text
MIG Customization
• text
MIG Customization
• text
MIG Customization
• text
This page allows to add / customize clock signals
MIG will generate two clocks:
- ui_clk (200Mhz)
- ui_addn_clk_0 (100Mhz)
MIG Customization
• text
MIG Customization
• text
MIG Customization
• text
MIG Customization
• text
MIG Customization
• text
MIG Customization
• text
MIG Customization
• text
MIG Customization
• text
MIG Customization
• text
MIG Customization
• text
MIG Customization
• text
MIG Customization
• text
Add IP
• text
Add Microblaze
• text
Run Block Automation
• text
Block Automation Settings
• text
Run Connection Automation
• text
Connection Automation Settings
• text
Run Connection Automation
• text
Connection Automation Settings
• text
MIG + Microblaze Design
• text
IP Settings
• text
Settings
• text
Repository
• text
Add IP Repository
• text
Path to IP Repository
• text
IP Found
• text
Repository Added
• text
Add IP
• text
Add Kernel
• text
Connect Kernel Clock
• text
Connect Kernel Clock to Microblaze clock
Connection Automation Settings
• text
Customize MDM
• text
Enable JTAG UART
• text
Run Connection Automation
• text
Connection Automation Settings
• text
Add IP
• text
Add AXI Timer
• text
Run Connection Automation
• text
Connection Automation Settings
• text
Customize Microblaze
• text
Microblaze Settings
• text
Validate Design
• text
Validation Successful
• text
Sources
• text
HDL Wrapper
• text
HDL Wrapper Creation
• text
Generate Bitstream
• text
Launch Synthesis And Implementation
• text
Run Settings
• text
Bitstream Generation Completed
• text
Device Occupation
• text
Resource Utilization
• text
Export Hardware
• text
Export Hardware Settings
• text
This command will create an HDF archive containing
the bitstream and drivers for SDK
Launch SDK
• text
Launch SDK Settings
• text
SDK Window
• text
Application Project
• text
New Project
• text
Templates
• text
Program FPGA
• text
Program FPGA settings
• text
Programming FPGA
• text
Run Configurations
• text
Application (GDB)
• text
Target Setup
• text
Bitstream Selection
• text
Target Setup done
• text
Application
• text
Project Selection
• text
Application done
• text
STDIO Connection
• text
STDIO Connection done
• text
Hello World Execution
• text
Lscript
• text
Running Our Design
• text
AXI Stream Design
• Let’s know implement the design for the streaming
version of the vector addition
• For this design, we will use the DMA IP
• All the steps until the “MIG + Microblaze Design” slide
do not change
IP Settings
• text
Settings
• text
Repository
• text
Add IP Repository
• text
Path to IP Repository
• text
IP Found
• text
Repository Added
• text
Add IP
• text
Add AXI DMA (0)
• text
Customize DMA (0)
• text
DMA Settings (0)
• text
Connect DMA (0) clocks
• text
Connection Automation Settings
• text
Add IP
• text
Add Kernel
• text
Connect Kernel clock
• text
Connect Kernel Reset
• text
Connect port b to DMA (0)
• text
Connect port a to DMA (0)
• text
Add IP
• text
Add AXI DMA (1)
• text
Customize DMA (1)
• text
DMA Settings (1)
• text
Connect DMA (1) clocks
• text
Connection Automation Settings
• text
Connect port c to DMA (1)
• text
Add IP
• text
Add AXI DMA (2)
• text
Customize DMA (2)
• text
DMA (2) Settings
• text
Connect DMA (2) clocks
• text
Connection Automation Settings
• text
Connect port d to DMA (2)
• text
Next steps
It is now possible to repeat the steps done for the previous
design:
–enable JTAG UART on the MDM block
–add AXI Timer IP
–Run Validation
–Create HDL Wrapper
–Run Generate Bitstream
–Export Hardware
–Run SDK
Device Occupation
• text
Resource Utilization
• text
SDK steps
After exporting the hardware from Vivado:
– Launch SDK
– Create the project
– Test the “helloworld”
– Use the provided code to evaluate the design
Summary
• Vivado toolchain allows developers to design both the
IP they want to accelerate and the overall system
• Vivado/Vivado HLS examples, and SDK code are
available on nags31 server in /sdaccel_contest folder
• Next lectures will focus on SDAccel toolchain
Feedbacks
• We are working at improving this course, would you
share your feedback for this lesson?
https://goo.gl/tLcWQj
Thank You for the
Attention!
Lorenzo Di Tucci
lorenzo.ditucci@polimi.it
Emanuele Del Sozzo
emanuele.delsozzo@polimi.it
Marco D. Santambrogio
marco.santambrogio@polimi.it

More Related Content

SDAccel Design Contest: Vivado