Documente Academic
Documente Profesional
Documente Cultură
Vivado Design
UltraFast
Design
Methodology
ASIC-Class Architecture
ASIC-class
ASIC-class capabilities
capabilities
Enables
Enables massive
massive data
data flow
flow
Removes
Removes interconnect
interconnect bottlenecks
bottlenecks
Vivado
15x faster
faster C++
C++ verification
verification
Interface-level
Interface-level connections
connections
Accelerate
Accelerate implementation:
implementation:
4x
4x faster
faster analytical
analytical P&R
P&R
Page 2
UltraFast
Design Methodology
Best
Best practices
practices for
for PCB
PCB planning,
planning,
HDL
HDL design,
design, closure
closure
Predictable
Predictable success
success in
in weeks,
weeks,
not
not months
months
Agenda
UltraFast Methodology Introduction
Write HDL code that best fit the hardware
Timing constraints creation and validation
Clock planning, Pin planning, Floorplanning
Page 3
UltraFastTM Methodology
Benefits
Fast Compile Times and Predictable Results
Require good methodology
Page 4
Page 5
Impact on QoR
100x
10x
1.2x
1.1x
PCB
PCB //
Planning
Planning
Device/IP
Device/IP
selection
selection
IP
IP Integration,
Integration, RTL
RTL Design,
Design,
Verification
Verification
Implementation
Implementation
Closure
Closure
Config.,
Config., Bring-up,
Bring-up,
Debug
Debug
Page 7
Checklist
Spreadsheet based checklist to be used by designer and FAE to
review key portions of board schematic for FPGA/SOC
Power Distribution System, Configuration, Transceivers, XADC, I/O Interfaces
Vivado DesignTM
Suite
UltraFast
Design
Methodology
Reduce iterations
late in the cycle
Estimation
IP
IP
Integration
Integration
RTL
RTLDesign
Design
Synthesis
Synthesis
Place
Place && Route
Route
Schematics
Code
Changes
Tool
Settings
Placement
Edits
Timing
Timing Path
Path #1
#1
Timing
Timing Path
Path #2
#2
Timing
Timing Path
Path #3
#3
Reports
Placement
entity
entity FIR
FIR is
is
port
port (clk
(clk :: in
in
rst
rst :: in
in
din
din :: in
in
Timing
Timing
Report
Report
Page 11
RTL
Page 12
Synthesi
s
Synthesi
s
Analysis
Analysis
Analysis
Baseline Constraints
If needed
Route
Place
Route
Place
Route
Analysis
Analysis
Analysis
Analysis
Analysis
Analysis
Fine-tune
Fmax
Fmax
Fmax
Baseline XDC
Page 13
Complete XDC
Final XDC
Post-place
Worst path: 7 levels
Paths with 7-13 levels got placed locally
Vivado Design
Suite Code that Best
Writing
HDL
Fits the Hardware
Page 16
Synthesis Templates
Page 17
in
Adder tree
becomes a
performance
bottleneck
out
DSP48
out
Synthesis
assumes
collision
rdaddr
wraddr
din
RAMB
rdaddr
wraddr
din
dout
=
Copyright 2013 Xilinx
.
RAMB
Inference with
collision check
disabled
dout
From: UG949 Chapter 4 Design Creation Control Signals and Control Sets
Page 19
Reset Routing
Resets compete for the same resources as the
rest of the active signals of the design
Including the critical datapath paths
Page 20
More on Resets
Many designs need some resets
Very few designs require resets on all registers
Most ASICs require a described reset on every register for testability
But the FPGA has a built-in Global Set/Reset (GSR)
Page 22
Page 23
Methodology DRCs
Two new rule decks in 2013.3
methodology_checks
timing_checks
Usage:
report_drc ruledeck methodology_checks
report_drc ruledeck timing_checks
Specific methodology_checks available only for the elaborated
design
Page 26
Vivado Design
Suite
Timing
Constraints
Creation
and Validation
Page 28
Include IP Constraints
Many cores have their own constraints / exceptions
PCIE, MIG, RAM-based asynchronous FIFOs
Page 29
Page 30
create_clock
here
Step 1
Use create_clock for all primary clocks on top level ports
Run the design (synthesis) or open netlist design
Step 2
Run report_clocks
Study the report to verify period, phase and propagation
Apply corrections to your constraints (if needed)
Attributes
P: Propagated
G: Generated
Clock
sys_clk
pll0/clkfbout
pll0/clkout0
pll0/clkout1
Page 32
Period
10.000
10.000
2.500
10.000
Waveform
{0.000 5.000}
{0.000 5.000}
{0.000 1.250}
{0.000 5.000}
Attributes
P
P,G
P,G
P,G
Sources
{sys_clk}
{pll0/plle2_adv_inst/CLKFBOUT}
{pll0/plle2_adv_inst/CLKOUT0}
{pll0/plle2_adv_inst/CLKOUT1}
Step 4
Run report_clock_networks
You want the design to have clean clock lines without logic
Tip: Use clock gating option in synthesis to remove LUTs on the clock line
Page 33
Page 34
Maximize MTBF
ASYNC_REG to place synchronizing flops in
the same slice for best Mean Time Between
Failures (MTBF)
Page 36
Page 37
Multicycle Paths
set_multicycle_path N implies a HOLD check at N-1
E.g.: a multicycle_path of 10 implies a HOLD requirement of 9 cycles!
regA
D
Multicycle Path = 3T
CE
regB
D
CE
regA/CLK
HOLD
SETUP
regB/CLK
CLK
REGB/D
3 -setup
2 hold
Page 39
Intra-clock report
Inter-clock report
Page 41
main.xdc
main.xdc
Elaboration
Page 42
impl.xdc
impl.xdc
Implementation
The clocking wizard XDC will be read before the user XDC by default
(user constraints can override IP defined clocks by default)
Page 43
Vivado Design
Suite
Clock
Planning,
Pin
Planning
and Floorplanning
Page 45
Evaluate all pin attributes (I/O Standard, Slew, etc.) during placement
Page 46
Page 47
Pinout
High fanout signals feeding all SLRs placed in center SLRs
I/O interfaces should not span across SLRs
Pay attention to data flow across SLRs
Avoid the need for multiple SLR crossings due to pinout decisions
Page 48
Page 49
Page 51
Follow Xilinx
facebook.com/XilinxInc
twitter.com/XilinxInc
youtube.com/XilinxInc
Vivado Design
Thank
YouSuite