fpga23000-10-wkbf-rev1
Xilinx is disclosing this Document and Intellectual Property (hereinafter the Design) to
you for use in the development of designs to operate on, or interface with Xilinx FPGAs.
Except as stated herein, none of the Design may be copied, reproduced, distributed,
republished, downloaded, displayed, posted, or transmitted in any form or by any means
including, but not limited to, electronic, mechanical, photocopying, recording, or otherwise,
without the prior written consent of Xilinx. Any unauthorized use of the Design may violate
copyright laws, trademark laws, the laws of privacy and publicity, and communications
regulations and statutes.
Xilinx does not assume any liability arising out of the application or use of the Design; nor
does Xilinx convey any license under its patents, copyrights, or any rights of others. You
are responsible for obtaining any rights you may require for your use or implementation of
the Design. Xilinx reserves the right to make changes, at any time, to the Design as
deemed desirable in the sole discretion of Xilinx. Xilinx assumes no obligation to correct
any errors contained herein or to advise you of any correction if such be made. Xilinx will
not assume any liability for the accuracy or correctness of any engineering or technical
support or assistance provided to you in connection with the Design.
THE DESIGN IS PROVIDED AS IS" WITH ALL FAULTS, AND THE ENTIRE RISK AS
TO ITS FUNCTION AND IMPLEMENTATION IS WITH YOU. YOU ACKNOWLEDGE
AND AGREE THAT YOU HAVE NOT RELIED ON ANY ORAL OR WRITTEN
INFORMATION OR ADVICE, WHETHER GIVEN BY XILINX, OR ITS AGENTS OR
EMPLOYEES. XILINX MAKES NO OTHER WARRANTIES, WHETHER EXPRESS,
IMPLIED, OR STATUTORY, REGARDING THE DESIGN, INCLUDING ANY
WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE,
TITLE, AND NONINFRINGEMENT OF THIRD-PARTY RIGHTS.
IN NO EVENT WILL XILINX BE LIABLE FOR ANY CONSEQUENTIAL, INDIRECT,
EXEMPLARY, SPECIAL, OR INCIDENTAL DAMAGES, INCLUDING ANY LOST DATA
AND LOST PROFITS, ARISING FROM OR RELATING TO YOUR USE OF THE
DESIGN, EVEN IF YOU HAVE BEEN ADVISED OF THE POSSIBILITY OF SUCH
DAMAGES. THE TOTAL CUMULATIVE LIABILITY OF XILINX IN CONNECTION WITH
YOUR USE OF THE DESIGN, WHETHER IN CONTRACT OR TORT OR OTHERWISE,
WILL IN NO EVENT EXCEED THE AMOUNT OF FEES PAID BY YOU TO XILINX
HEREUNDER FOR USE OF THE DESIGN. YOU ACKNOWLEDGE THAT THE FEES, IF
ANY, REFLECT THE ALLOCATION OF RISK SET FORTH IN THIS AGREEMENT AND
THAT XILINX WOULD NOT MAKE AVAILABLE THE DESIGN TO YOU WITHOUT
THESE LIMITATIONS OF LIABILITY.
The Design is not designed or intended for use in the development of on-line control
equipment in hazardous environments requiring fail-safe controls, such as in the
operation of nuclear facilities, aircraft navigation or communications systems, air traffic
control, life support, or weapons systems (High-Risk Applications). Xilinx specifically
disclaims any express or implied warranties of fitness for such High-Risk Applications.
You represent that use of the Design in such High-Risk Applications is fully at your risk.
2008 Xilinx, Inc. All rights reserved. XILINX, the Xilinx logo, and other designated
brands included herein are trademarks of Xilinx, Inc. PCI, PCIe and PCI Express are
trademarks of PCI-SIG and used under license. The PowerPC name and logo are
registered trademarks of IBM Corp. and used under license. All other trademarks are the
property of their respective owners.
Facilitator Guide
Table of Contents
Table of Contents
INTRODUCTORY MATERIAL
Getting Started
vi
vi
ix
Program Preparation
Training At A Glance
xii
QR-1
MODULES
Course Agenda
Course Agenda
8
9
10
13
Introduction
14
Overview
15
I/O
21
32
42
Other Features
53
Summary
62
65
67
Introduction
68
Overview
69
www.xilinx.com
1-877-XLX-CLAS
Page i
Table of Contents
Facilitator Guide
73
77
Summary
81
83
84
85
86
Introduction
87
Overview
88
90
Clock Networks
109
Summary
118
121
125
126
127
Introduction
128
Duplicating Flip-Flops
129
Pipelining
133
I/O Flip-Flops
141
Synchronization Circuits
143
Summary
151
153
Synthesis Techniques
154
Introduction
155
158
Synthesis Options
166
177
Summary
179
Page ii
www.xilinx.com
1-877-XLX-CLAS
Facilitator Guide
Table of Contents
181
182
Lab
183
184
185
191
192
195
Introduction
196
Timing Reports
198
205
Report Options
214
Summary
220
222
223
224
225
Introduction
226
Overview
227
Creating Groups
233
OFFSET Constraints
243
Summary
250
252
253
Introduction
254
256
Multicycle Paths
262
False Paths
267
Miscellaneous Constraints
273
www.xilinx.com
1-877-XLX-CLAS
Page iii
Table of Contents
Facilitator Guide
Summary
277
279
281
Lab
282
283
Introduction
284
Overview
286
288
Xplorer
294
299
Power Optimization
304
Summary
306
308
309
Lab
310
Power Estimation
311
Introduction
312
Overview
313
XPower Estimator
318
321
Summary
326
328
329
Lab
330
331
Introduction
332
Importance of Debug
334
336
Design Flows
342
Page iv
www.xilinx.com
1-877-XLX-CLAS
Facilitator Guide
Table of Contents
Summary
344
346
Lab
347
Course Summary
348
Course Summary
349
Appendixes
Appendix A: Basic HDL Coding Techniques*
A-1
B-1
C-1
D-1
D-2
Inferring Memory
D-14
D-22
D-32
E-1
www.xilinx.com
1-877-XLX-CLAS
Page v
Getting Started
Facilitator Guide
Getting Started
About This Guide
Whats the Purpose of This Guide?
This facilitator guide provides a master reference document to help
you prepare for and deliver the Designing for Performance course.
What Will I Find in the Guide?
This facilitator guide is a comprehensive package that contains
!
Page vi
www.xilinx.com
1-877-XLX-CLAS
Facilitator Guide
Getting Started
TRAINER NOTE
You may also occasionally find trainer notes such as this one in the
text of this guide. These shaded boxes provide particularly
important information in an attention-getting format.
www.xilinx.com
1-877-XLX-CLAS
Page vii
Getting Started
Facilitator Guide
Overhead
Participant
Workbook
Lab
Exercise
Projected
Image
Key Points
Time
Transition
Flipchart
Handouts
Summary
Module
Process
Break /
Lunch
Group
Activity
Role Play
Where Can
I Learn
More?
Materials
Required
Instructional
Game
Answers
To say
Video Tape
Custom 5
Key points
Computer/
CDROM
Tool
Custom 6
VH
Module
Purpose
Page viii
Welcome
www.xilinx.com
1-877-XLX-CLAS
Facilitator Guide
Getting Started
Attending the Designing for Performance class will help you create
more efficient designs. This course can help you fit your design
into a smaller FPGA or a lower speed grade for reducing system
costs. In addition, by mastering the tools and the design
methodologies presented in this course, you will be able to create
your design faster, shorten your development time, and lower
development costs.
Learning Objectives
Create and integrate cores into your design flow by using the
CORE Generator software system
Program Timing
2 days
www.xilinx.com
1-877-XLX-CLAS
Page ix
Getting Started
Facilitator Guide
Program Preparation
Prerequisites
!
Required Materials
!
PowerPoint files
Instructor Preparation
!
Lab Setup
Software Requirements
!
Page x
ChipScope Pro tool 10.1 SP1 if you are running the optional
ChipScope Pro Software lab
Facilitator Guide
Getting Started
Program Preparation
Lab Files/Data Installed
!
ftp://ftp.xilinx.com/pub/documentation/education/
fpga23000-10-rev1-xlnx_lab_files.zip
Hardware Requirements
Note: The demo board is only required for the optional
ChipScope Pro Software lab
!
Power supply for the Spartan-3 FPGA board (included the kit)
Optional:
Serial Cable (DB9 male/female) for computers with serial
ports or a USB-to-RS-232 adapter cable for computers
lacking a serial port
HyperTerminal or equivalent
Special Instructions
None
www.xilinx.com
1-877-XLX-CLAS
Page xi
Training At A Glance
Facilitator Guide
Training At A Glance
Time
Module
Description
5 minutes
Course Agenda
15 minutes
Review of
Fundamentals of
FPGA Design
60 minutes
Designing with
Virtex-5 FPGA
Resources
20 minutes
CORE Generator
Software System
30 minutes
Lab 1: CORE
Generator
Software System
45 minutes
Designing Clock
Resources
40 minutes
Lab 2: Designing
Clock Resources
40 minutes
FPGA Design
Techniques
40 minutes
Synthesis
Techniques
Page xii
www.xilinx.com
1-877-XLX-CLAS
Facilitator Guide
Training At A Glance
30 minutes
Lab 3: Synthesis
Techniques
10 minutes
Day One
Summary
5 minutes
Course Agenda
Day Two
45 minutes
Achieving
Timing Closure
45 minutes
Lab 4: Review of
Global Timing
Constraints
45 minutes
Timing Groups
and OFFSET
Constraints
45 minutes
Path-Specific
Timing
Constraints
45 minutes
Lab 5: Achieving
Timing Closure
30 minutes
Advanced
Implementation
Options
30 minutes
Lab 6: Designing
for Performance
30 minutes
www.xilinx.com
1-877-XLX-CLAS
Page xiii
Training At A Glance
Facilitator Guide
30 minutes
Lab 7: FPGA
Editor Demo
30 minutes
ChipScope Pro
Software
60 minutes
10 minutes
Course Summary This module reviews day two of the course and
provides a summary of the course.
Page xiv
www.xilinx.com
1-877-XLX-CLAS
Action
Timing-driven synthesis
Hierarchy management
Retiming
FSM extraction
2008 Xilinx, Inc. All rights reserved. All Xilinx trademarks, registered trademarks, patents, and disclaimers are as listed at http://www.xilinx.com/legal.htm.
All other trademarks and registered trademarks are the property of their respective owners. All specifications are subject to change without notice.
www.xilinx.com
1-800-255-7778
Action
Timing Constraints
Tip
Paths that cross unrelated clock domains are not covered
by PERIOD constraints
Action
Action
2008 Xilinx, Inc. All rights reserved. All Xilinx trademarks, registered trademarks, patents, and disclaimers are as listed at http://www.xilinx.com/legal.htm.
All other trademarks and registered trademarks are the property of their respective owners. All specifications are subject to change without notice.
www.xilinx.com
1-800-255-7778
2008 Xilinx, Inc. All rights reserved. All Xilinx trademarks, registered trademarks, patents, and disclaimers are as listed at http://www.xilinx.com/legal.htm.
All other trademarks and registered trademarks are the property of their respective owners. All specifications are subject to change without notice.
www.xilinx.com
1-800-255-7778
Facilitator Guide
Course Agenda
Course Agenda
Purpose
5 minutes
Process
Course Agenda
www.xilinx.com
1-877-XLX-CLAS
Page 1
Course Agenda
Facilitator Guide
Course Agenda
Show Slide 1:
Show Slide 2:
Page 2
www.xilinx.com
1-877-XLX-CLAS
Facilitator Guide
Course Agenda
Course Agenda
Key Points
!
The modules and labs were developed with version 10.1i of the
Xilinx software, with no service packs. If you have installed a
different version or service pack level, lab results may differ.
Show Slide 3:
Course Agenda - 3
www.xilinx.com
1-877-XLX-CLAS
Page 3
Course Agenda
Facilitator Guide
Course Agenda
Show Slide 4:
Prerequisites
Course Agenda - 4
Show Slide 5:
Course Agenda - 5
Page 4
www.xilinx.com
1-877-XLX-CLAS
Facilitator Guide
Course Agenda
Course Agenda
Show Slide 6:
Key Points
!
www.xilinx.com
1-877-XLX-CLAS
Page 5
Course Agenda
Facilitator Guide
Course Agenda
Show Slide 7:
What should you know about using Xilinx software right now?
Course Agenda - 7
Show Slide 8:
Appendix
To reduce size, the appendixes are not included in the printed workbook
The appendixes are included in a supplemental folder with the lab files
and are available via
ftp://ftp.xilinx.com/pub/documentation/education/fpga23000-10-rev1xlnx_lab_files.zip
Course Agenda - 8
Page 6
www.xilinx.com
1-877-XLX-CLAS
Facilitator Guide
Course Agenda
Course Agenda
Show Slide 9:
For the latest user design information, see the user guides
For the latest characteristics, such as timing, performance, etc., see the
data sheets
For the latest design and software issues or bugs, see the Answer Record
database: Search by FPGA family or software tool
www.xilinx.com/xlnx/xil_ans_browser.jsp
Note for instructor: Take a moment to click the link above and browse the Records.
Course Agenda - 9
TRAINER NOTE
Take a moment to click the link above and browse the Records.
www.xilinx.com
1-877-XLX-CLAS
Page 7
Facilitator Guide
This module
Time
15 minutes
Process
Page 8
www.xilinx.com
1-877-XLX-CLAS
Facilitator Guide
Review of Fundamentals of
FPGA Design
www.xilinx.com
1-877-XLX-CLAS
Page 9
Facilitator Guide
Answer
6-input LUTs:
Combinatorial logic,
Shift Register LUT
(SRL), distributed
memory
Flip-flops
Carry logic
Multiplexers
Answers
Page 10
www.xilinx.com
1-877-XLX-CLAS
Facilitator Guide
SERDES interface
Ethernet MAC
Translate
MAP
PERIOD
PAD-TO-PAD
Key Points
!
www.xilinx.com
1-877-XLX-CLAS
Page 11
Facilitator Guide
Page 12
www.xilinx.com
1-877-XLX-CLAS
Facilitator Guide
Time
60 minutes
Process
This module describes the latest features of the newest FPGA from
Xilinx.
Lessons
!
Introduction
Overview
I/O
Other Features
Summary
www.xilinx.com
1-877-XLX-CLAS
Page 13
Introduction
Show Slide 13:
Objectives
After completing this module, you will be able to:
Page 14
www.xilinx.com
1-877-XLX-CLAS
Facilitator Guide
Facilitator Guide
Overview
Show Slide 15:
Lessons
Overview
I/O
Block RAMs and FIFO
XtremeDSP Solution Cores
Other Features
Summary
www.xilinx.com
1-877-XLX-CLAS
Page 15
Facilitator Guide
Overview
Show Slide 17:
Virtex-5 Family
The Ultimate System Integration Platform
Logic
Logic/Serial
Logic
On-Chip RAM
DSP Capabilities
Parallel I/Os
Serial I/Os
PowerPC Processor
DSP/Serial
Embedded/
Serial
Key Points
Page 16
The Virtex-5 family has four platforms that are optimized for
logic resources, logic with serial I/O, DSP with serial I/O, and
embedded processing with serial I/O.
www.xilinx.com
1-877-XLX-CLAS
Facilitator Guide
Overview
Show Slide 18:
Key Points
!
IOB banks (a left bank, a right bank, and a center bank) are
available via flip-chip technology.
There are two columns of regions (you will see later that each
region is 20 CLBs tall and half the die in width), but the width
can vary with the device, which is described in more detail
later.
Note that the LXT, SXT, and FXT platforms have the same basic
topology except that the dedicated resources (EMAC, PCI, and
MGT) are all placed on the right side of the die.
www.xilinx.com
1-877-XLX-CLAS
Page 17
Facilitator Guide
Overview
Show Slide 19:
LX50T
LX85T
LX110T
LX330T
Logic Cells
19,968
46,080
82,944
110,582
331,776
RAM (kb)
936
2,160
3,888
5,328
11,664
DSP Slices
24
48
48
64
192
Transceiver Speeds
MGTs
12
12
16
24
Key Points
!
Page 18
Not all family members are shown in this table. Other device
sizes are: LX30T, LX155T, and LX220T.
www.xilinx.com
1-877-XLX-CLAS
Facilitator Guide
Overview
Show Slide 20:
SX50T
SX95T
Logic Cells
34,816
52,224
94,208
RAM (kb)
3,024
4,752
8,784
DSP Slices
192
288
640
Transceiver Speeds
MGTs
12
16
Key Points
!
Notice that the smallest SXT device has the same amount of
block RAM as a mid-sized LXT device, and the same number of
DSP slices as the largest LXT device.
www.xilinx.com
1-877-XLX-CLAS
Page 19
Facilitator Guide
Overview
Show Slide 21:
FX70T
FX100T
FX130T
FX200T
Logic Cells
32,768
71,680
102,400
131,072
196,608
RAM (kb)
2,448
5,328
8,208
10,728
16,416
DSP Slices
64
128
256
320
384
Transceiver Speeds
MGTs
16
16
20
24
PPC Processors
Key Points
!
Page 20
www.xilinx.com
1-877-XLX-CLAS
Facilitator Guide
I/O
Show Slide 22:
Lessons
Overview
I/O
Block RAMs and FIFO
XtremeDSP Solution Cores
Other Features
Summary
Region
Region
Region
Region
Region
Region
Region
Region
Region
Region
Region
Region
Region
Region
CMT
CMT
GClk
GClk
CMT
CMT
CMT
Region
Region
Region
Region
Region
Region
Region
Region
Region
Region
Region
Region
Region
Region
Region
Region
Region
Region
Region
Region
Region
Region
LX330 Layout
Region
Region
Bank Bank
Bank Bank
Bank Bank
Bank
Bank Bank
Bank Bank
Bank Bank
Bank
Bank
Bank
Region
Region
Region
Region
Bank Bank
Bank Bank
Bank Bank
Bank
Bank
Region
Region
Bank Bank
Bank
Bank Bank
Bank
Region
Region
Region
Region
Bank Bank
Bank Bank
Bank
Bank
Bank Bank
Bank
Bank Bank
Bank Bank
Bank
LX30
Layout
Bank Bank
Bank Bank
Bank Bank
Bank
Bank Bank
Bank Bank
Bank Bank
Bank
Bank
Bank
Bank
Bank
Bank
Bank
Region
Region
CFG
CMT
GClk
With 40 I/Os
With 20 I/Os
Spans halfway across the chip
Dedicated configuration bank
Clock Management Tile (CMT)
Global clock inputs
www.xilinx.com
1-877-XLX-CLAS
Page 21
Facilitator Guide
I/O
Show Slide 24:
Key Points
!
Page 22
DIFF_*_DCI
www.xilinx.com
1-877-XLX-CLAS
Facilitator Guide
I/O
Show Slide 25:
Enhancements
Input and Output Buffers
Enhancements
ChipSync Technology Enhancements
New IODELAY
IDELAY improvements
Can be any frequency between 175 MHz and 225 MHz
General use of the delay line
Enables building oscillators
www.xilinx.com
1-877-XLX-CLAS
Page 23
Facilitator Guide
I/O
Show Slide 27:
ChipSync technology
Data
Virtex-5
FPGA
ChipSync
ChipSync technology
technology
Forwarded
CLK/DQS
SelectIO
SelectIO
interface
interface
Key Points
Page 24
www.xilinx.com
1-877-XLX-CLAS
Facilitator Guide
I/O
Show Slide 28:
ISERDES Manages
Incoming Data
Frequency division
ChipSync
ChipSync Technology
n
ISERDES
ISERDES
BUFIO
BUFIO
FPGA Fabric
CLKDIV
CLK
BUFR
BUFR
Key Points
!
www.xilinx.com
1-877-XLX-CLAS
Page 25
Facilitator Guide
I/O
Show Slide 29:
OSERDES Simplifies
Frequency Multiplication
OSERDES
OSERDES
CLK
n
m
FPGA Fabric
CLKDIV
BUFIO/BUFR
BUFIO/BUFR
DCM/PMCD
DCM/PMCD
Designing with Virtex-5 FPGA Resources - 29
Key Points
Page 26
The figure shows data leaving the chip. Just as data was
divided down upon entering the chip, it must be multiplied up
when leaving. The OSERDES performs this function.
www.xilinx.com
1-877-XLX-CLAS
Facilitator Guide
I/O
Show Slide 30:
ChipSync
Technology
ODELAY
INC/DEC
State
Machine
ODELAY
ODELAYcan
canonly
onlybe
beused
usedinin
FIXED
FIXEDmode
mode
The
Thecalibration
calibrationclock
clockcan
canbe
beinternal
internal
ororexternal
external
FPGA Fabric
OSERDES
175225 MHz
(Calibration clk)
ODELAY CNTRL
Key Points
!
www.xilinx.com
1-877-XLX-CLAS
Page 27
Facilitator Guide
I/O
Show Slide 31:
Use Examples
Key Points
!
Page 28
www.xilinx.com
1-877-XLX-CLAS
Facilitator Guide
I/O
Show Slide 32:
ChipSync Wizard
Memory Applications: General and Data Setup
Key Points
!
www.xilinx.com
1-877-XLX-CLAS
Page 29
Facilitator Guide
I/O
Key Points
!
VHDL or Verilog
Key Points
!
Page 30
www.xilinx.com
1-877-XLX-CLAS
Facilitator Guide
I/O
Show Slide 34:
www.xilinx.com
1-877-XLX-CLAS
Page 31
Facilitator Guide
Lessons
Overview
I/O
Block RAMs and FIFO
XtremeDSP Solution Cores
Other Features
Summary
36-kb size
Page 32
Dual-Port
BRAM
www.xilinx.com
1-877-XLX-CLAS
or
FIFO
Facilitator Guide
Capacity doubled
CLB
CLB
Five
CLBs
High
CLB
CLB
9-kb
RAM
9-kb
RAM
IO + Control Logic
FIFO Logic
18-kb RAM
9-kb
RAM
9-kb
RAM
CLB
Designing with Virtex-5 FPGA Resources - 37
Key Points
!
Note that each 18-kb RAM is divided into two 9-kb RAMs. This
distinguishing feature helps to reduce power and heat in that
location.
www.xilinx.com
1-877-XLX-CLAS
Page 33
Facilitator Guide
36
36-kb
Block RAM
or
FIFO
OR
36
18-kb
Block RAM
36
18-kb
Block RAM
or
FIFO
Configurations
32kb x 1, 16kb x 2, 8kb x 4, 4kb x 9,
2kb x 18, 1kb x 36
Configurations
32kb x 1, 16kb x 2, 8kb x 4, 4kb x 9,
2kb x 18, 1kb x 36, 512x72
512x72 uses both 18-kb
block RAMs as 512x36
Page 34
www.xilinx.com
1-877-XLX-CLAS
Addr A
Port A
36
Wdata A
36
Rdata A
36-kb
Memory
Array
Addr B
36
Wdata B
Port B
Rdata B
36
Facilitator Guide
Addr A
Port A
36
Wdata A
36
Rdata A
36-kb
Memory
Array
Addr B
36
Port B
36
Rdata B
Wdata B
DQ
DQ
DI
A[1
3:0
]
Ram_ Extension
DQ
DI
A[13:0]
1 DO
0
A14
11
1
0
DQ
WE _ Control
DQ
DI
DQ
A[13:0]
Ram_ Extension
DQ
11
1
0
DQ
(To
(To Initiate
Initiate Write
Write Operation)
Operation)
Not Used
1
0
A14
WE _ Control
(To
(To Initiate
Initiate Write
Write Operation)
Operation)
www.xilinx.com
1-877-XLX-CLAS
Page 35
Facilitator Guide
36-kb
Block RAM
Memory
Array
Latch
SSR
REG
SSR
(DO_REG=1)
Designing with Virtex-5 FPGA Resources - 42
Key Points
!
Page 36
Block RAM can also be read or written by the other port during
SSR in latch mode (DO_REG = 0).
www.xilinx.com
1-877-XLX-CLAS
Facilitator Guide
Full featured
Four flags
DOUT Bus
WREN
> WRCLK
FULL
AFULL
EMPTY
AEMPTY
RDERR
WRERR
RDEN
> RDCLK
RESET
RDCONT<11:0>
WRDCONT<11:>
DIN Bus
FIFO18/36
Two modes
Multirate or Synchronous
Attribute: EN_SYN
Not supported
www.xilinx.com
1-877-XLX-CLAS
Page 37
Facilitator Guide
The Full and Almost Full flags are synchronous to the write
clock (WRCLK).
Two Modes
Synchronous
FIRST_WORD_FALL_THROUGH =
FALSE (default)
EN_SYN = TRUE
DO_REG = 0, 1
Page 38
www.xilinx.com
1-877-XLX-CLAS
Facilitator Guide
DIN<35:0>
DIN<35:0> DOUT<35:0>
WREN
RDEN
EMPTY
WRCLK
AFULL
RDCLK
DOUT<35:O>
DIN<35:0> DOUT<35:0>
WREN
RDEN
EMPTY
WRCLK
AFULL
RDCLK
DOUT<71:36>
FIFO
#1
RDEN
WREN
RDEN
DIN<71:36>
WREN
FIFO
#1
EMPTY
AFULL
1kx72 FIFO
DIN<3:0>
WREN
DIN<3:0> DOUT<3:0>
DIN<3:0> DOUT<3:0>
Data_Avail
WREN
Data_Taken
WRCLK
RDCLK
WREN
FIFO
#1
WRCLK
RDCLK
RDEN
RDEN
WRCLK
RDCLK
DOUT<3:0>
Width Cascade
AFULL
FIFO
#2
16kx4 FIFO
Depth Cascade
Designing with Virtex-5 FPGA Resources - 46
Xilinx suggests that you use IP (CORE Generator & Architecture Wizard)
www.xilinx.com
1-877-XLX-CLAS
Page 39
Facilitator Guide
Portability: If you change to the latest device, you can swap out
new cores to utilize new features. In addition, each family
and/or vendor will have different memory capabilities.
Page 40
www.xilinx.com
1-877-XLX-CLAS
Facilitator Guide
2) Compare the following I/O resources in the Virtex-5 FPGA to the Virtex4 FPGA
Banking
www.xilinx.com
1-877-XLX-CLAS
Page 41
Facilitator Guide
Lessons
Overview
I/O
Block RAMs and FIFO
XtremeDSP Solution Cores
Other Features
Summary
0
1
PCOUT
BCOUT
Subtract
18
M
A
18
48
P
17-bit shift
18x18
18x182s
2scomplement
complementmultiplier
multiplier
17-bit shift
CARRYIN
48-bit
48-bitadder/subtractor/accumulator
adder/subtractor/accumulator
Dynamic
Dynamicuser-controlled
user-controlledoperating
operatingmodes
modes
OPMODE
17-bit
17-bitright
rightshift
shiftfor
formulti-precision
multi-precisionmultiplies
multiplies
Optional
Optionalinput/pipeline/output
input/pipeline/outputregisters
registers
Symmetric
Symmetricrounding
roundingsupport
support
Page 42
www.xilinx.com
1-877-XLX-CLAS
PCIN
BCIN
Cascading
Cascading18-bit
18-bitBBbus
busand
and48-bit
48-bitPPbus
bus
Facilitator Guide
0
1
PCOUT
BCOUT
Subtract
18
25
25
18
M
P
48
P
C
More
Moreefficient
efficientfor
for25x25
25x25applications
applications
17-bit shift
17-bit shift
CARRYIN
four
fourDSP48s)
DSP48s)
Single
Singleprecision
precisionfloating
floatingpoint
point
multiplication;
multiplication;24x24
24x24unsigned
unsigned
High-end
High-endaudio
audioand
andimage
imageprocessing
processing
More
Moreefficient
efficientfor
forcomplex
complex25x18
25x18multipliers
multipliers
Low
Lowpower
powerFFTs
FFTs(4G
(4Gwireless)
wireless)
Designing with Virtex-5 FPGA Resources - 52
OpMode
PCIN
BCIN
35x25
35x25inintwo
twoDSP48E
DSP48Eslices
slices(vs.
(vs.35x35
35x35inin
Key Points
!
Page 43
Facilitator Guide
48
0
1
PCOUT
BCOUT
Independent C Input
A:B
Subtract
18
25
25
18
48
C
Virtex-5
Virtex-5FPGA
FPGADSP:
DSP:Independent
IndependentCCinput
input
M
P
48
P
Eliminates
EliminatesVirtex-4
Virtex-4FPGA
FPGAissues
issuessuch
such
as
as
17-bit shift
17-bit shift
CARRYIN
within
withinaatile
tile
Simulation
Simulationissues
issuesinincases
caseswhere
wheretwo
two
DSP48s
are
DSP48s areininaatile
tileand
andonly
onlyone
oneuses
uses
CCinput
input
Requires
DRC
checks
Requires DRC checks
Understanding
Understandingthe
therules
rulesand
and
regulations
regulationsofofusing
usingthe
theCCinput
input
Page 44
www.xilinx.com
1-877-XLX-CLAS
OpMode
PCIN
BCIN
MAP
MAPproblems
problemswith
withDSP48
DSP48slices
slices
Facilitator Guide
48
0
1
A:B
ALUMode
18
PCOUT
BCOUT
30
25
25
18
M
0
48
C
C
A:B
A:Bexpanded
expandedtoto48
48bits
bits(36
(36bits
bitsininthe
theVirtex-4
Virtex-4FPGA)
FPGA)
SIMD
SIMD(Single
(SingleInstruction
InstructionMultiple
MultipleData)
Data)
17-bit shift
17-bit shift
CARRYIN
OpMode
PCIN
BCIN
48
Bit-wise
Bit-wiselogic
logicoperations
operationsavailable
available
XOR,
XOR,XNOR,
XNOR,AND,
AND,NAND,
NAND,OR,
OR,NOR,
NOR,NOT
NOT
Controlled
Controlleddynamically
dynamicallybybyALUMODE
ALUMODE
ALUMODE[3:0]
0
P
A:B
0
1
0
PCIN
P
C
OPMODE[3:0]
OPMODE[3:2]
ALUMODE[3:0]
X XOR Z
00
0100
X XNOR Z
00
0101
X XNOR Z
00
0110
X XOR Z
00
0111
X AND Z
00
1100
X AND (NOT Z)
00
1101
X NAND Z
00
1110
(NOT X) OR Z
00
1111
X XNOR Z
10
0100
X XOR Z
10
0101
X XOR Z
10
0110
X XNOR Z
10
0111
X OR Z
10
1100
X OR (NOT Z)
10
1101
X NOR Z
10
1110
(NOT X) AND Z
10
1111
www.xilinx.com
1-877-XLX-CLAS
Page 45
Facilitator Guide
OPMODE[3:2]
00
ALUMODE[3:0]
0100
X XNOR Z
00
0101
X XNOR Z
00
0110
X XOR Z
00
0111
X AND Z
00
1100
X AND (NOT Z)
00
1101
X NAND Z
00
1110
(NOT X) OR Z
00
1111
X XNOR Z
10
0100
X XOR Z
10
0101
X XOR Z
10
0110
X XNOR Z
10
0111
X OR Z
10
1100
X OR (NOT Z)
10
1101
X NOR Z
10
1110
(NOT X) AND Z
10
1111
text
Key Points
!
This table shows how the ALU can be configured for two-input
operations where the multiplier output is not used. If
OPMODE[3:2] is set to 00, then the Y multiplexer is
contributing a value of 0 to the 3-input adder. If OPMODE[3:2]
is set to 10, then the Y multiplexer is contributing an all 1s
value to the adder.
Page 46
www.xilinx.com
1-877-XLX-CLAS
Facilitator Guide
48
1
A
A:B
ALUMode
18
30
0
PCOUT
ACOUT
BCOUT
A Input Cascade
25
25
18
48
0
1
48
P
Lower
Lowerpower
powerconsumption
consumption
17-bit shift
17-bit shift
Dedicated
Dedicatedrouting
routingwithin
withinthe
theDSP
DSPcolumn
column
CARRYIN
Allows
Allowsefficient
efficientadaptive
adaptivefilter
filterimplementation
implementation
Loads
Loadscoefficients
coefficientsserially
seriallyininaashadow
shadowregister
register
while
whilethe
thefilter
filterisisstill
stilloperating
operating
New
coefficients
loaded
to
the
filter
register
in
New coefficients loaded to the filter register in
parallel
parallel
Separate 2-deep A/B CE facilitates wave CE
Separate 2-deep A/B CE facilitates wave CE
OpMode
PCIN
ACIN
BCIN
1
A
A:B
ALUMode
18
30
0
PCOUT
48
25
25
18
48
Extend
Extendsymmetric
symmetricrounding
roundingtotomulti-precision
multi-precision
operations
operations
Support
Supportfor
forconvergent
convergentrounding
rounding
0
1
17-bit shift
17-bit shift
ACIN
BCIN
PATTERN_DETECT
CARRYIN
C or MC
Overflow/underflow
Overflow/underflowimplemented
implementedininDSP48E
DSP48E
Support
Supportfor
foraccumulator
accumulatorterminal
terminalcount
count
Support
Supportfor
forsaturation
saturationlogic
logic
48
Counter
Counterauto-reset
auto-reset
OpMode
PCIN
ACOUT
BCOUT
Pattern Detector
Pattern
Patterndetector
detectoroutputs
outputsslower
slowerthan
thanPP
Designing with Virtex-5 FPGA Resources - 58
www.xilinx.com
1-877-XLX-CLAS
Page 47
Facilitator Guide
DSP48_1
OPMODE 0010101
ALUMODE 0000
B[34:17]
18
ACIN
DSP48_0
OPMODE 0000101
ALUMODE 0000
A
A[24:0]
Page 48
25
0,B[16:0]
P[42:0] = OUT[59:17]
SHIFT 17
P
18
www.xilinx.com
1-877-XLX-CLAS
P[16:0] = OUT[16:0]
Facilitator Guide
Implement or Accelerate
DSP Functions
DSP Operation
Logic
DSP48E
IP Support
IP (COREGen & Architecture Wizard)
Adder
Dynamic Control
MAC FIR
MAD
Serial Divider
CORDIC
FFT
SIN COS LUT
DDS
Multiplier Generator
www.xilinx.com
1-877-XLX-CLAS
Page 49
Facilitator Guide
High-Precision Functions
Number of
Function
Instances in
V5LX330
Maximum
Bandwidth
@ 500 MHz
25x18 MACC
1 DSP48E
Slice
192 Operations
105 GMACCs/sec
1 DSP48E
Slice
192 Operations
210 GOPs/sec
48+48 Addition/Subtraction
1 DSP48E
Slice
192 Operations
105 GOPs/sec
4 DSP48E
Slices
48 Operations
26 GOPs/sec
2 DSP48E
Slices
96 Operations
53 GOPs/sec
OPMODEs
OPMODE
1
0
0
0
0
1
1
0
1
1
X Select
OPMODE
2
0
1
0
1
Y Select
Notes
0
M
48'hffffffffffff
C
Default
Must select with OPMODE[1:0]=01
Used mainly for ALU bitwise operations
Z Select
Notes
3
0
0
1
1
6
0
0
0
0
1
1
1
1
OPMODE
5
0
0
1
1
0
0
1
1
0
M
P
A:B
4
0
1
0
1
0
1
0
1
0
PCIN
P
C
P
Shift(PCIN)
Shift(P)
Notes
Default
Must select with OPMODE[3:2]=01
Default
C + A:B
(A x B) + C
P + C + PCIN
Illegal selection
Page 50
www.xilinx.com
1-877-XLX-CLAS
Facilitator Guide
OPMODEs
OPMODE
1
0
0
0
0
1
1
0
1
1
X Select
OPMODE
2
0
1
0
1
Y Select
Notes
0
M
48'hffffffffffff
C
Default
Must select with OPMODE[1:0]=01
Used mainly for ALU bitwise operations
Z Select
Notes
3
0
0
1
1
6
0
0
0
0
1
1
1
1
OPMODE
5
0
0
1
1
0
0
1
1
0
M
P
A:B
4
0
1
0
1
0
1
0
1
0
PCIN
P
C
P
Shift(PCIN)
Shift(P)
Notes
Default
Must select with OPMODE[3:2]=01
Default
Illegal selection
www.xilinx.com
1-877-XLX-CLAS
Page 51
Facilitator Guide
Page 52
M = multiplier output
P = P registers
C = C input
A = A input
B = B input
www.xilinx.com
1-877-XLX-CLAS
Facilitator Guide
Other Features
Show Slide 63:
Lessons
Overview
I/O
Block RAMs and FIFO
XtremeDSP Solution Cores
Other Features
Summary
EMAC
EMAC
EMAC
EMAC
www.xilinx.com
1-877-XLX-CLAS
Page 53
Facilitator Guide
Other Features
Key Points
!
Page 54
www.xilinx.com
1-877-XLX-CLAS
Facilitator Guide
Other Features
Show Slide 65:
Full-Featured Ethernet
Functionality
Key Points
!
www.xilinx.com
1-877-XLX-CLAS
Page 55
Facilitator Guide
Other Features
Key Points
The CORE Generator software provides an example design
for the embedded Tri-Mode Ethernet MAC in the Virtex-5
FPGA for any of the supported physical interfaces. The
supported PHY interfaces include GMII, MII, RGMII, and
SGMII. These interfaces are implemented inside the FPGA
by using programmable logic; they are not dedicated.
However, the CORE Generator software makes creating
these interfaces relatively easy.
The TEMAC resides in the same column as the dedicated
PCI core.
Show Slide 66:
CC
FF
GG
PHY
PHY Layer
Layer
Data
Data Layer
Layer
Trans.
Trans. Layer
Layer
Embedded
Embedded
PCI
PCI Core
Core
Page 56
GTP
GTP Transceiver
Transceiver
1,
1, 2,
2, 44 or
or 88 Lanes
Lanes
www.xilinx.com
1-877-XLX-CLAS
Virtex-5
FPGA
Facilitator Guide
Other Features
Key Points
!
GTP Transceiver
Key Points
!
Page 57
Facilitator Guide
Other Features
Show Slide 68:
Telecom
Computing/Communication
Storage
Video
Standard
Speed
(bits per second per channel)
1G Ethernet
1.25 G
XAUI
3.125 G
3.125 G (x4)
OBSAI
CPRI
SFI-5
2.448 - 3.125 G
2.5 G
Serial Rapid IO
3.125 G
InfiniBand
2.5 G
Fibre Channel
1.0625 G, 2.125 G
SATA
1.5 G, 3.0 G
SAS
1.5 G, 3.0 G
SDI
270 M
DVB-ASI
270 M
HD-SDI
Key Points
!
Page 58
www.xilinx.com
1-877-XLX-CLAS
Facilitator Guide
Other Features
Show Slide 69:
GTX Transceiver
High-performance MGTs
www.xilinx.com
1-877-XLX-CLAS
Page 59
Facilitator Guide
Other Features
Show Slide 71:
High performance
Key Points
Page 60
www.xilinx.com
1-877-XLX-CLAS
Facilitator Guide
Other Features
Show Slide 72:
www.xilinx.com
1-877-XLX-CLAS
Page 61
Facilitator Guide
Summary
Show Slide 73:
Lessons
Overview
I/O
Block RAMs and FIFO
XtremeDSP Solution Cores
Other Features
Summary
Page 62
www.xilinx.com
1-877-XLX-CLAS
Facilitator Guide
Summary
Show Slide 75:
Summary
www.xilinx.com
1-877-XLX-CLAS
Page 63
Facilitator Guide
Summary
Where Can I Learn More?
!
Page 64
Software manuals
www.xilinx.com
1-877-XLX-CLAS
Facilitator Guide
Answers
2) Compare the following I/O resources in the Virtex-5 FPGA to the Virtex-4
FPGA.
!
Banking
Electrical
Standards
Banking
Architecture
ChipSync
Technology
Virtex-4 FPGA
Virtex-5 FPGA
>30
>40
9 to 17 banks
13 to 35 banks
First generation
text
www.xilinx.com
1-877-XLX-CLAS
Page 65
Facilitator Guide
C + A:B
OPMODE = 011 00 11 or 000 11 11
(A x B) + C
OPMODE = 011 01 01
P + C + PCIN
OPMODE = 001 11 10
Inference
Basic I/O (single-ended)
Single Block RAMs
Multipliers
ChipSync Wizard
DDR
SERDES
Page 66
www.xilinx.com
1-877-XLX-CLAS
Facilitator Guide
Time
20 minutes
Process
Introduction
Overview
Summary
www.xilinx.com
1-877-XLX-CLAS
Page 67
Facilitator Guide
Introduction
Show Slide 76:
Objectives
After completing this module, you will be able to:
Page 68
www.xilinx.com
1-877-XLX-CLAS
Facilitator Guide
Overview
Show Slide 78:
Lessons
Overview
Using the CORE Generator Software
System
CORE Generator Software Design
Flows
Summary
A core is a ready-made function that you can instantiate into your design
as a black box
Cores can range in complexity
www.xilinx.com
1-877-XLX-CLAS
Page 69
Facilitator Guide
Overview
Key Points
!
Page 70
www.xilinx.com
1-877-XLX-CLAS
Facilitator Guide
Overview
Show Slide 81:
Types of Cores
LogiCORE solutions
AllianceCORE solutions
LogiCORE Solutions
Typically customizable
Fully tested, documented, and supported by Xilinx
Many are pre-placed for predictable timing
Many are unlicensed and provided for free with Xilinx software
www.xilinx.com
1-877-XLX-CLAS
Page 71
Facilitator Guide
Overview
Show Slide 83:
AllianceCORE Solutions
Point-solution cores
You will need to contact the IP Center for licensing and ordering information
Sample Functions
LogiCORE solutions
DSP functions
Time skew buffers, Finite
Impulse Response (FIR)
filters, and correlators
Math functions
Accumulators, adders,
multipliers, integrators, and
square root
Memories
Pipelined delay elements,
single- and dual-port RAM
Synchronous FIFOs
PCI master and slave
interfaces, PCI bridge
CORE Generator Software System - 84
Page 72
AllianceCORE solutions
Peripherals
DMA controllers
Programmable interrupt
controllers
UARTs
Communications and
networking
ATM
Reed-Solomon encoders
and decoders
T1 framers
Standard bus interfaces
PCMCIA, USB
www.xilinx.com
1-877-XLX-CLAS
Facilitator Guide
Lessons
Overview
Using the CORE Generator Software
System
CORE Generator Software Design
Flows
Summary
Data sheets
Customizable parameters (available for some cores)
Creates graphical symbols for schematic-based designs
Creates instantiation templates for HDL-based designs
Web Links tab provides access to the Xilinx Website and the IP Center
www.xilinx.com
1-877-XLX-CLAS
Page 73
Facilitator Guide
Key Points
Page 74
www.xilinx.com
1-877-XLX-CLAS
Facilitator Guide
Demo Instructions:
1. To open an existing project: Select File Open Project.
2. Browse to one of the lab project directories.
3. Select an ISE software file and click Open.
4. Follow the instructions in the slide above to open the CORE
Generator software.
5. Enter file name: test_core.
version
information
Schematic
Symbol
(unused ports
grayed out)
Customizable
Parameters
spread over
several pages
Data sheet
access
TRAINER NOTE
Demo Instructions:
1. Enter parameters for the core you selected.
2. Click Next to show additional pages of parameters.
www.xilinx.com
1-877-XLX-CLAS
Page 75
Facilitator Guide
Resource utilization
TRAINER NOTE
Demo Instructions:
!
Page 76
www.xilinx.com
1-877-XLX-CLAS
Facilitator Guide
Lessons
Overview
Using the CORE Generator Software
System
CORE Generator Software Design
Flows
Summary
Generate a core
Generate Core
.NGC
and
symbol
.xco
Instantiate
Implement
Simulate
www.xilinx.com
1-877-XLX-CLAS
Page 77
Facilitator Guide
The XCO file is a log of the options used to create the core. You
can use this file to confirm that the correct options were used
during core generation. You can also use this file to create
another core with the same options. This file can also be used in
batch mode.
Generate
Core
.xco
Instantiate
.VHO,
.VEO
.NGC
Core generation
and integration
Implement
Simulate
.VHD, .V
Key Points
Page 78
The next few slides describe each step in the HDL flow in more
detail.
The XCO file is a log of the options used to create the core. You
can use this file to confirm that the correct options were used
during core generation. You can also use this file to create
another core with the same options. This file can also be used in
batch mode.
www.xilinx.com
1-877-XLX-CLAS
Facilitator Guide
Key Points
!
www.xilinx.com
1-877-XLX-CLAS
Page 79
Facilitator Guide
The ISE software automatically uses wrapper files when cores are present
in the design
VHDL: Analyze the wrapper file for each core before analyzing the file that
instantiates the core
Key Points
Page 80
Simply cut and paste the template into your source file, change
the instance name, if desired, and replace the dummy signal
names with your own signal names.
www.xilinx.com
1-877-XLX-CLAS
Facilitator Guide
Summary
Show Slide 95:
Lessons
Overview
Using the CORE Generator Software
System
CORE Generator Software Design
Flows
Summary
3) What is the difference between the VHO/VEO files and the VHD/V files
that are created by the CORE Generator software?
www.xilinx.com
1-877-XLX-CLAS
Page 81
Facilitator Guide
Summary
Show Slide 97:
Summary
A core is a ready-made function that you can insert into your design
LogiCORE solution products are sold and supported by Xilinx
AllianceCORE solution products are sold and supported by AllianceCORE
solution partners
Using cores can save design time and provide increased performance
Cores can be used in schematic or HDL design flows
TRAINER NOTE
Demo Instructions:
1. Open a browser and go to www.xilinx.com/ipcenter.
2. Explore a few of the links on this page to see what is
available.
Page 82
www.xilinx.com
1-877-XLX-CLAS
Facilitator Guide
www.xilinx.com
1-877-XLX-CLAS
Page 83
Facilitator Guide
Time
30 minutes
Process
This lab illustrates how to build a block RAM memory with the
CORE Generator software.
General Flow
Page 84
www.xilinx.com
1-877-XLX-CLAS
Facilitator Guide
Lab
Designing for Performance Lab Workbook
!
TRAINER NOTE
www.xilinx.com
1-877-XLX-CLAS
Page 85
Facilitator Guide
Time
45 minutes
Process
Page 86
Introduction
Overview
Clock Networks
Summary
www.xilinx.com
1-877-XLX-CLAS
Facilitator Guide
Introduction
Show Slide 98:
Objectives
After completing this module, you will be able to:
www.xilinx.com
1-877-XLX-CLAS
Page 87
Facilitator Guide
Overview
Show Slide 100:
Lessons
Overview
Clock Management Tile
Clock Networks
Summary
Page 88
PLL
Up to 550 MHz
DCM
Clock
Buffers
www.xilinx.com
1-877-XLX-CLAS
Select by:
Function
Component
Automatic
HDL code
Facilitator Guide
Overview
Show Slide 102:
I/O Column
Global
Global
clocks
clocks
I/O
I/O
clocks
clocks
Clock
Clock region
region height:
height:
20
20 CLBs
CLBs
40
40 I/Os
I/Os (1
(1 bank)
bank)
Clock
Clock region
region width:
width:
One
One half
half the
the chip
chip
Global
Global
Muxes
Muxes
Regional
Regional
clocks
clocks
824
824 clock
clock regions
regions per
per
device
device
Performance matched to
application needs
710-MHz I/O Clocks
710
710-MHz
550-MHz Global Clocks
550
550-MHz
300-MHz Regional Clocks
300
300-MHz
www.xilinx.com
1-877-XLX-CLAS
Page 89
Facilitator Guide
Lessons
Overview
Clock Management Tile
Clock Networks
Summary
DCM
PLL
PMCD removed
Page 90
CMT
Powerful combination of
flexibility and precision
www.xilinx.com
1-877-XLX-CLAS
Facilitator Guide
InClk 1
DCM
InClk 2
PLL
InClk 3
DCM
DCM
InClk 1
PLL
Filter
Filter DCM
DCM
output
output clock
clock
jitter
jitter
InClk 1
Designing Clock Resources - 105
To Global
Clocks
CMT
To Global
Clocks
Filter
Filter high
high clock
clock jitter
jitter
before
before reaching
reaching the
the
DCM
DCM
CMT
PLL
To Global
Clocks
DCM
CMT
Key Points
!
www.xilinx.com
1-877-XLX-CLAS
Page 91
Facilitator Guide
Use
DCM
DCM
DCM
DCM or PLL*
PLL
PLL
PLL
* See the Virtex-5 FPGA data sheet to evaluate performance trade-offs between DCM and PLL usage
Key Points
!
Page 92
www.xilinx.com
1-877-XLX-CLAS
Facilitator Guide
DCM Features
DCM_BASE
CLKIN
CLKFB
RST
CLKO
CLK90
CLK180
CLK270
CLK2X
CLK2X180
CLKDV
CLKFX
CLKFX180
LOCKED
CLKO
CLK90
CLK180
CLK270
Phase
CLK2X
Shift
CLK2X180
CLKDV
DRP
CLKFX
CLKFX180
LOCKED
RST
M, D values up to 32
DCM_ADV
CLKIN
CLKFB
Key Points
!
www.xilinx.com
1-877-XLX-CLAS
Page 93
Facilitator Guide
PLL Features
PLL_ADV
CLKIN1
CLKOUT<5:0>
CLKFBOUT
CLKFBIN
RST
LOCKED
RST
LOCKED
CLKOUTDCM
CLKIN2
<5:0>
CLKINSEL
CLKFBDCM
REL
DRP
PLL_BASE
CLKIN1 CLKOUT<5:0>
CLKFBOUT
CLKFBIN
PLL
Example measurement with a 400-MHz clock in a quiet XC5VLX30 device
Key Points
Page 94
www.xilinx.com
1-877-XLX-CLAS
Facilitator Guide
PLL Primitives
PLL_ADV
CLKIN1 CLKOUT<5:0>
CLKFBOUT
CLKIN2
CLKFBIN
PLL_BASE
CLKIN1 CLKOUT<5:0>
CLKFBIN
CLKFBOUT
RST
CLKINSEL
REL
CLKOUTDCM
<5:0>
CLKFBDCM
DADDR(4:0]
DI(15:0)
DWE
DEN
DCLK
LOCKED
RST
DO(15:0)
DRDY
LOCKED
Key Points
!
Page 95
Facilitator Guide
LOCKED: Indicates that the PLL has locked onto the reference
clock and is tracking the phase.
PLL Basics
Lock Detect
Lock Monitor
CLKINSEL
CLKIN1
CLKIN2
PFD
CP
LOCKED
LF
VCO
M
CLKFBIN
FVCO = FIN * M / D
FOUT = FVCO / O = FIN * M / D / O
Designing Clock Resources - 110
Page 96
www.xilinx.com
1-877-XLX-CLAS
8-phase
taps
O0
CLKOUT0
O1
CLKOUT1
O2
CLKOUT2
O3
CLKOUT3
O4
CLKOUT4
O5
CLKOUT5
Facilitator Guide
The PLL will multiplex two clock input signals. The clock then
goes into the D counter which is used to divide down the input
clock. At the output of the VCO are eight clocks with differing
phases. All eight of these phase-shifted clocks can feed any of
the six outputs (O0O5).
www.xilinx.com
1-877-XLX-CLAS
Page 97
Facilitator Guide
PLL Equations
FVCO
FVCO = FIN * M / D
For example
FOUT
Calculating FOUT
Key Points
Page 98
www.xilinx.com
1-877-XLX-CLAS
Facilitator Guide
For example:
FIN = 100 MHz, M = 5, D = 1
FVCO = 100 * 5 / 1 = 500 MHz
Possible output clocks are 500 MHz (O = 1), 250 MHz (O =
2), 166.67 MHz (O = 3),
For example:
FIN = 100 MHz, M = 10, D = 1
FVCO = 100 * 10 / 1 = 1000 MHz
Possible output clocks are 1000 MHz (O = 1; too fast for the
clock networks), 500 MHz (O = 2), 333.33 MHz (O = 3),
DMIN = FIN/FPDFMAX
DMAX = FIN/FPDFMIN
MMIN = FVCOMIN/FIN
MMAX = (DMAX * FVCOMAX)/FIN
MIDEAL = (DMIN * FVCOMAX)/FIN
Counter
Counterattributes
attributes
OODivide:
Divide:CLKOUT[0:5]_DIVIDE
CLKOUT[0:5]_DIVIDE=={1128}
{1128}
DDDivide:
Divide:DIVCLK_DIVIDE
DIVCLK_DIVIDE=={152}
{152}
MMMultiply:
Multiply:CLKFBOUT_MULT
CLKFBOUT_MULT=={164}
{164}
*Relevant minimum and maximum numbers are shown in the Key Points section
Designing Clock Resources - 112
www.xilinx.com
1-877-XLX-CLAS
Page 99
Facilitator Guide
Page 100
FINMIN = 19 MHz
FPFDMIN = 19 MHz
www.xilinx.com
1-877-XLX-CLAS
Facilitator Guide
PLL Attributes
Phase shift
Not all values are available; see the Key Points section for more
information
The higher the VCO frequency, the more options that are available
CLKOUT[0:5]_PHASE = {0.0360.0}
Phase shifts that are always possible
0, 45, 90, 135, 180, 225, 270, 315
Duty cycle
The higher the VCO frequency, the more options that are available
CLKOUT[0:5]_DUTY_CYCLE = {0.010.99}
Default
= 0.5
*Relevant
minimum
and maximum numbers are shown in the Key Points section
Key Points
!
www.xilinx.com
1-877-XLX-CLAS
Page 101
Facilitator Guide
1) Given
DIVCLK_DIVIDE =
CLKFBOUT_MULT =
CLKOUT1_PHASE =
CLKOUT2_PHASE =
CLKOUT3_PHASE =
Page 102
CLKOUT1_DUTY_CYCLE =
CLKOUT2_DUTY_CYCLE =
CLKOUT3_DUTY_CYCLE =
www.xilinx.com
1-877-XLX-CLAS
CLKOUT1_DIVIDE =
CLKOUT2_DIVIDE =
CLKOUT3_DIVIDE =
Facilitator Guide
FINMIN = 19 MHz
FPDFMIN = 19 MHz
DMIN = FIN/FPDFMAX =
DMAX = FIN/FPDFMIN =
MMIN = FVCOMIN/FIN =
www.xilinx.com
1-877-XLX-CLAS
Page 103
Facilitator Guide
BUFG
CLKIN 1
CLKOUT 0
CLKOUT 1
CLKFBIN
CLKOUT 2
RST
CLKOUT 4
CLKOUT 3
CLKOUT 5
CLKFBOUT
LOCKED
Nothing in this
feedback path keys the
software that
INTERNAL feedback is
desired
Use: Used when maintaining the phase relationship between the input
and output clocks is not required
PLL attribute
Compensation = Internal
Key Points
Page 104
Used when the input clock and output clock do not need to
have any phase relationship; that is, if the PLL is used strictly as
a frequency synthesizer or jitter filter.
www.xilinx.com
1-877-XLX-CLAS
Facilitator Guide
BUFG
CLKIN 1
CLKFBIN
RST
To logic
CLKOUT 0
CLKOUT 1
CLKOUT 2
CLKOUT 3
CLKOUT 4
CLKOUT 5
CLKFBOUT
LOCKED
BUFG
Use: Used when maintaining the phase relationship between the input
and output clocks is desired
PLL attribute
Key Points
!
There are two reasons that clock de-skew from a PLL requires
two global clock buffers:
www.xilinx.com
1-877-XLX-CLAS
Page 105
Facilitator Guide
Inside FPGA
CLKIN 1
CLKFBIN
IBUFG
RST
BUFG
OBUF
BUFG
OBUF
CLKOUT 0
CLKOUT 1
CLKOUT 2
CLKOUT 3
CLKOUT 4
CLKOUT 5
CLKFBOUT
LOCKED
Use: Used to create an external clock buffer (clock mirror) when maintaining the
phase relationship between the input and external output clock is desired
PLL attribute
Compensation = External
Key Points
!
Page 106
The delay line on the CLKFBOUT trace should match the delay
on the trace for the CLKOUT0 path; that is, the edges should be
aligned.
www.xilinx.com
1-877-XLX-CLAS
Facilitator Guide
IBUFG
CLKIN
CLK 0
CLKIN 1
CLKOUT 0
CLK 90
CLKIN 2
CLKOUT 1
CLKFBIN
CLK 180
CLKFBIN
CLKOUT 2
RST
CLK 270
CLK 2 X
CLK 2X 180
DCM
RST
CLKOUT 3
CLKINSEL
CLKOUT 4
DADDR [ 4: 0]
CLKOUT 5
CLKDV
DI[ 15: 0]
CLKFX
DWE
CLKOUTDCM 0
CLKFX 180
DEN
CLKOUTDCM 1
DCLK
CLKOUTDCM 2
REL
CLKOUTDCM 3
LOCKED
PLL Attribute
Compensation = DCM2PLL
CLKFBOUT
CLKOUTDCM 4
Feedback path
CANNOT include both the
DCM and PLL
To Logic
CLKOUTDCM 5
CLKFBDCM
LOCKED
PLL
DO[ 15: 0]
DRDY
Key Points
!
www.xilinx.com
1-877-XLX-CLAS
Page 107
Facilitator Guide
IBUFG
CLKIN1
CLKOUT0
CLKIN
CLK 0
CLKIN2
CLKOUT1
CLKFBIN
CLKOUT2
CLKFBIN
CLK 180
RST
CLK 270
RST
CLKOUT3
CLKINSEL
CLKOUT4
CLK2X
DADDR[4:0]
CLKOUT5
CLK 2X 180
DI[ 15:0]
To logic
CLK 90
CLKFBOUT
CLKDV
DWE
CLKOUTDCM0
CLKFX
DEN
CLKOUTDCM1
CLKFX 180
DCLK
CLKOUTDCM2
REL
CLKOUTDCM3
DCM
LOCKED
CLKOUTDCM4
CLKOUTDCM5
CLKFBDCM
PLL Attribute
Compensation = PLL2DCM
LOCKED
DO[ 15:0]
PLL
DRDY
Key Points
!
Page 108
www.xilinx.com
1-877-XLX-CLAS
Facilitator Guide
Clock Networks
Show Slide 120:
Lessons
Overview
Clock Management Tile
Clock Networks
Summary
Clock regions
match I/O banks
40 I/Os per bank and
clock region
Clock regions
span one half the die
4 RCLKs per region
2 BUFRs per region
Designing Clock Resources - 121
www.xilinx.com
1-877-XLX-CLAS
Page 109
Facilitator Guide
Clock Networks
Key Points
!
There are four BUFIOs per clock region. BUFIOs can no longer
span regions, which is the reason for the increase in the number
per region. They are still implemented differentially.
There are two BUFRs per clock region. However, there are now
four regional clock tracks, allowing the BUFRs in vertically
adjacent regions to drive the other two or all four.
Clock regions are slightly larger, but now also match the I/O
banks. The I/O banks in the Virtex-4 FPGA crossed two clock
regions.
CMT
CMT
CMT
CMT
CMT
CMT
Global
Global
Muxes
Muxes
IBUFGs
IBUFGs
Global resources
for all devices
20 global clock inputs
32 global clock multiplexers
2 or 6 CMTs
IBUFGs
IBUFGs
CMT
CMT
CMT
CMT
CMT
CMT
Key Points
!
Page 110
www.xilinx.com
1-877-XLX-CLAS
Facilitator Guide
Clock Networks
Show Slide 123:
20 total
Performance
32 total
Optional clock enable
Guaranteed glitch-less
switching
Also use as an asynchronous
multiplexer
Up to 550 MHz
Differential for maximum performance
High fanout (access to all clock loads in the FPGA)
Low skew
Short clock insertion delay
Key Points
!
www.xilinx.com
1-877-XLX-CLAS
Page 111
Facilitator Guide
Clock Networks
Show Slide 124:
Clock-Capable I/O
I/O Clock Buffer (BUFIO)
I/O Clock Net (IOCLK)
Key Points
!
Page 112
www.xilinx.com
1-877-XLX-CLAS
Facilitator Guide
Clock Networks
Show Slide 125:
2
2
Clock-capable I/O
2
2
2
2
4
2
Key Points
!
The two regional clock buffers can be used to drive any of the
four regional clock nets in an adjacent region. This approach
allows more flexibility for regional clocks than in the Virtex-4
FPGA, which had only two regional clock buffers (BUFR) and
two regional clock tracks (RCLK) per clock region.
www.xilinx.com
1-877-XLX-CLAS
Page 113
Facilitator Guide
Clock Networks
Show Slide 126:
I/O Clocks
(BUFIO IOCLK)
Exist in all I/O
columns
Four BUFIO
drivers per
region
Four IOCLKs per
region
Span single
region
Performance
710-MHz differential
710-MHz
differential
Regional Clocks
(BUFR RCLK)
Exist in non-center
I/O columns
Two BUFR drivers
per region
Four RCLKs per
region
Span up to three
regions (one above
and below)
Clock divider range
from 1 to 8
300 MHz
Use
Page 114
www.xilinx.com
1-877-XLX-CLAS
Facilitator Guide
Clock Networks
Key Points
!
Clock Wizard
Choose
Choose function
function
Optimal
Optimal DCM/PLL
DCM/PLL flow
flow
automatically
automatically selected
selected
- or -
Choose
Choose component
component
Program
Program as
as desired
desired
www.xilinx.com
1-877-XLX-CLAS
Page 115
Facilitator Guide
Clock Networks
Hidden Slide 129:
Wizard generates
ready-toready
to-use VHDL
ready-to-use
or Verilog
Key Points
!
TRAINER NOTE
Page 116
www.xilinx.com
1-877-XLX-CLAS
Facilitator Guide
Clock Networks
Hidden Slide 130:
Verilog
Verilog
BUFIO
BUFIObufio_inst
bufio_inst
(.I(input_clk),
(.I(input_clk),
.O(clk_bufio));
.O(clk_bufio));
BUFR
BUFRbufr_inst
bufr_inst
(.I(clk_bufio),
(.I(clk_bufio),
.CE(clock_enable),
.CE(clock_enable),
.CLR(async_rst),
.CLR(async_rst),
.O(clk_bufr));
.O(clk_bufr));
////"BYPASS",
"BYPASS","1",
"1","2",
"2","3",
"3","4",
"4","5",
"5","6",
"6","7",
"7","8"
"8"
defparam
defparambufr_inst.BUFR_DIVIDE
bufr_inst.BUFR_DIVIDE=="BYPASS";
"BYPASS";
TRAINER NOTE
www.xilinx.com
1-877-XLX-CLAS
Page 117
Facilitator Guide
Summary
Show Slide 131:
Lessons
Overview
Clock Management Tile
Clock Networks
Summary
Page 118
www.xilinx.com
1-877-XLX-CLAS
Facilitator Guide
Summary
Show Slide 133:
3) To perform the following, which should you use: the DCM or PLL?
Summary
The new Clock Management Tile (CMT) includes two DCMs and one PLL
The new PLL includes filter jittering and frequency synthesis capabilities
Clock region = 20 CLBs, 40 IOBs, and 1 I/O bank
Twenty global input clock buffers (differential)
Thirty-two global clock buffers (differential)
Ten global clocks per region
Four BUFIOs per region (differential); BUFIO cannot drive into adjacent
regions
Two BUFRs per region; can drive into adjacent regions
Four regional clock tracks per region
www.xilinx.com
1-877-XLX-CLAS
Page 119
Facilitator Guide
Summary
Where Can I Learn More?
!
Page 120
www.xilinx.com
1-877-XLX-CLAS
Facilitator Guide
1) Given:
!
Output clocks
266 MHz, 0 degrees phase shift, 50 percent duty cycle
266 MHz, 45 degrees phase shift, 50 percent duty cycle
66 MHz, 90 degrees phase shift, 25 percent duty cycle
DIVCLK_DIVIDE = 1
CLKFBOUT_MULT = 8
CLKOUT1_PHASE = 0.0
CLKOUT1_DUTY_CYCLE = 0.5
CLKOUT1_DIVIDE = 4
CLKOUT2_PHASE = 45.0
CLKOUT2_DUTY_CYCLE = 0.5
CLKOUT2_DIVIDE = 4
CLKOUT3_PHASE = 90.0
CLKOUT3_DUTY_CYCLE = 0.25
CLKOUT3_DIVIDE = 16
www.xilinx.com
1-877-XLX-CLAS
Page 121
Facilitator Guide
FINMIN = 19 MHz
FPDFMIN = 19 MHz
Page 122
www.xilinx.com
1-877-XLX-CLAS
Facilitator Guide
2) Compare the following resources in the Virtex-5 FPGA to the Virtex-4 FPGA.
Virtex-4 FPGA
Virtex-5 FPGA
Up to 32 differential (64
pins)
or 32 single-ended (32
pins)
Up to 20 differential (40
pins)
or 20 single-ended (20
pins)
32
32
10
Clock-Capable Inputs
per Region
1 region
www.xilinx.com
1-877-XLX-CLAS
Page 123
Facilitator Guide
3) To perform the following, which should you use: the DCM or PLL?
In Order To
Use
DCM
DCM
DCM
DCM or PLL*
PLL
PLL
PLL
Page 124
www.xilinx.com
1-877-XLX-CLAS
Facilitator Guide
Time
40 minutes
Process
This lab illustrates how to build a multiple clock system with the
ISE Architecture Wizard tool.
General Flow
!
www.xilinx.com
1-877-XLX-CLAS
Page 125
Facilitator Guide
Lab
Designing for Performance Lab Workbook
!
Page 126
www.xilinx.com
1-877-XLX-CLAS
Facilitator Guide
Time
40 minutes
Process
Introduction
Duplicating Flip-Flops
Pipelining
I/O Flip-Flops
Synchronization Circuits
Summary
www.xilinx.com
1-877-XLX-CLAS
Page 127
Facilitator Guide
Introduction
Show Slide 135:
Objectives
After completing this module, you will be able to:
Page 128
www.xilinx.com
1-877-XLX-CLAS
Facilitator Guide
Duplicating Flip-Flops
Show Slide 137:
Lessons
Duplicating Flip-Flops
Pipelining
I/O Flip-Flops
Synchronization Circuits
Summary
Duplicating Flip-Flops
Design trade-offs
fn1
fn1
fn1
www.xilinx.com
1-877-XLX-CLAS
Page 129
Facilitator Guide
Duplicating Flip-Flops
Show Slide 139:
Duplicating Flip-Flops
Example
Key Points
!
Page 130
www.xilinx.com
1-877-XLX-CLAS
Facilitator Guide
Duplicating Flip-Flops
Show Slide 140:
Duplicating Flip-Flops
Example
Key Points
!
The trade-off is that the paths from the input pad to the
duplicated flip-flops are increased. This design does not contain
an OFFSET IN constraint. If you have an OFFSET IN
requirement, you must consider how much slack you have on
the OFFSET before deciding to duplicate the flip-flop.
www.xilinx.com
1-877-XLX-CLAS
Page 131
Facilitator Guide
Duplicating Flip-Flops
Show Slide 141:
Key Points
Page 132
www.xilinx.com
1-877-XLX-CLAS
Facilitator Guide
Pipelining
Show Slide 142:
Lessons
Duplicating Flip-Flops
Pipelining
I/O Flip-Flops
Synchronization Circuits
Summary
Pipelining Concept
fMAX =
n MHz
fMAX
2n MHz
one
level
one
level
www.xilinx.com
1-877-XLX-CLAS
Page 133
Facilitator Guide
Pipelining
Key Points
!
Pipelining Considerations
Key Points
!
Page 134
www.xilinx.com
1-877-XLX-CLAS
Facilitator Guide
Pipelining
Key Points
!
Logic levels: Timing reports show which paths are the longest
and how many logic levels are in each path. Look at the
detailed path analysis section of the report and count the
number of look-up table delays (Tilo) to determine the number
of logic levels in the path.
Latency in Pipelines
Key Points
!
www.xilinx.com
1-877-XLX-CLAS
Page 135
Facilitator Guide
Pipelining
Show Slide 146:
Pipelining Example
Original circuit
LUT
LUT
SOURCE_FFS
DEST_FF
LUT
Key Points
!
Page 136
www.xilinx.com
1-877-XLX-CLAS
Facilitator Guide
Pipelining
Show Slide 147:
Pipelining Example
Pipelined circuit
LUT
LUT
LUT
SOURCE_FFS
DEST_FF
PIPE_FFS
Key Points
!
After adding a pipeline stage, the circuit has been split into two
paths. The first path is from SOURCE_FFS through one logic
level to PIPE_FFS. The second path is from PIPE_FFS through
one logic level to DEST_FF.
www.xilinx.com
1-877-XLX-CLAS
Page 137
Facilitator Guide
Pipelining
Show Slide 148:
1) Given the original circuit, what is wrong with the pipelined circuit?
2) How can the problem be corrected?
Key Points
!
Original Circuit
Page 138
www.xilinx.com
1-877-XLX-CLAS
Facilitator Guide
Pipelining
Pipelined Circuit
Answers
Latency mismatch
Older data is mixed with
newer data
Circuit output is incorrect
www.xilinx.com
1-877-XLX-CLAS
Page 139
Facilitator Guide
Pipelining
Answer
Page 140
www.xilinx.com
1-877-XLX-CLAS
Facilitator Guide
I/O Flip-Flops
Show Slide 150:
Lessons
Duplicating Flip-Flops
Pipelining
I/O Flip-Flops
Synchronization Circuits
Summary
I/O flip-flops provide guaranteed setup, hold, and clock-to-out times when
the clock signal comes from a BUFG
www.xilinx.com
1-877-XLX-CLAS
Page 141
Facilitator Guide
I/O Flip-Flops
Key Points
!
During synthesis
Select the Misc tab and specify registers that should be placed into IOBs
Check the MAP Report to confirm that IOB flip-flops have been used
Key Points
!
Page 142
www.xilinx.com
1-877-XLX-CLAS
Facilitator Guide
Synchronization Circuits
Show Slide 153:
Lessons
Duplicating Flip-Flops
Pipelining
I/O Flip-Flops
Synchronization Circuits
Summary
Synchronization Circuits
www.xilinx.com
1-877-XLX-CLAS
Page 143
Facilitator Guide
Synchronization Circuits
Key Points
!
Page 144
www.xilinx.com
1-877-XLX-CLAS
Facilitator Guide
Synchronization Circuits
Show Slide 156:
Metastability
The circuits shown in this section allow maximum time for metastable
recovery
FPGA Design Techniques - 156
Key Points
!
www.xilinx.com
1-877-XLX-CLAS
Page 145
Facilitator Guide
Synchronization Circuits
Metastability
FF
FF
CLK1
Show Slide 157:
Synchronization Circuit 1
Use when input pulses will always be at least one clock period wide
The extra flip-flops guard against metastability
Guards against metastability
Asynchronous input
FF1
Synchronized signal
FF2
CLK
Key Points
Page 146
The recovery time for FF1 is: <CLK period> <datapath delay>
If the flip-flops are placed in the same slice, the net will use a
fast-feedback routing connection to give FF1 the maximum
possible recovery time.
www.xilinx.com
1-877-XLX-CLAS
Facilitator Guide
Synchronization Circuits
Show Slide 158:
Synchronization Circuit 2
Use when input pulses may be less than one clock period wide
FF1
FF2
Synchronized signal
FF3
Asynchronous input
CLR
CLK
Key Points
!
The AND gate prevents FF1 from being reset if the input to the
circuit is still HIGH. This allows for long input pulses as well as
short ones. If multiple short pulses occur on the input within a
space of three clock cycles, only the first pulse will be seen by
this circuit. This is always a danger when passing data from a
fast clock domain into a slower clock domain.
FF2 and FF3 act in the same way as FF1 and FF2 in
Synchronization Circuit 1.
www.xilinx.com
1-877-XLX-CLAS
Page 147
Facilitator Guide
Synchronization Circuits
Key Points
!
Capturing a Bus
Asynchronous
input CLK
One-shot enable
D
D Q
FF1
FF2
D QQ
CE
CLK
n bit
bus
Synchronized
bus inputs
Sync_Reg
D QQ
Key Points
Page 148
Facilitator Guide
Synchronization Circuits
Key Points
!
Capturing a Bus
One-shot enable
D
Asynchronous
Input CLK
CLK
FF1
FF2
FF3
CLR
D
CE
n bit
bus
D Q
Synchronized
bus inputs
Sync_Reg
Key Points
!
www.xilinx.com
1-877-XLX-CLAS
Page 149
Facilitator Guide
Synchronization Circuits
Key Points
!
Synchronization Circuit 3
Key Points
!
Page 150
www.xilinx.com
1-877-XLX-CLAS
Facilitator Guide
Summary
Show Slide 162:
Lessons
Duplicating Flip-Flops
Pipelining
I/O Flip-Flops
Synchronization Circuits
Summary
www.xilinx.com
1-877-XLX-CLAS
Page 151
Facilitator Guide
Summary
Show Slide 164:
Summary
Some trade-offs
Duplicating flip-flops
Adding pipeline stages
Using I/O flip-flops
Duplicating flip-flops increases circuit area
Pipelining introduces latency and increases circuit area
Page 152
www.xilinx.com
1-877-XLX-CLAS
Facilitator Guide
Latency mismatch
www.xilinx.com
1-877-XLX-CLAS
Page 153
Synthesis Techniques
Facilitator Guide
Synthesis Techniques
Purpose
Time
40 minutes
Process
Page 154
Introduction
Synthesis Options
Summary
www.xilinx.com
1-877-XLX-CLAS
Facilitator Guide
Synthesis Techniques
Introduction
Show Slide 165:
Synthesis Techniques
Objectives
After completing this module, you will be able to:
www.xilinx.com
1-877-XLX-CLAS
Page 155
Synthesis Techniques
Facilitator Guide
Introduction
Show Slide 167:
Three recorded e-Learning modules are available for you to improve your
HDL coding style
Three recorded e-Learning modules are available for you to improve your
HDL coding style
Page 156
www.xilinx.com
1-877-XLX-CLAS
Facilitator Guide
Synthesis Techniques
Introduction
Show Slide 169:
Timing Closure
Timing Closure
www.xilinx.com
1-877-XLX-CLAS
Page 157
Synthesis Techniques
Facilitator Guide
Lessons
Breakthrough Performance
Performance by construction
DSP48, FIFO, block RAM, ISERDES, OSERDES,
PowerPC processor, EMAC, and MGT, for example
Page 158
www.xilinx.com
1-877-XLX-CLAS
Virtex
-4 FPGA
Virtex
Virtex-4
Performance Meter
Facilitator Guide
Synthesis Techniques
I3
I2
I1
I0
I3
I2
I1
I0
SET
CE
D
Q
RST
SET
CE
D
Q
RST
1. Do not exceed more than one level of logic. That is why the registers are
there
2. Carry chains should not exceed 14* before being registered
3. You may need placement constraints to keep functions together
www.xilinx.com
1-877-XLX-CLAS
Page 159
Synthesis Techniques
Facilitator Guide
XtremeDSP Solution
Slice
Multiplexer
Shift Register LUT (SRL)
Block RAM, LUT RAM
Cascade DSP
Page 160
www.xilinx.com
1-877-XLX-CLAS
Facilitator Guide
Synthesis Techniques
These are just the most obvious suggestions. For every design,
there may be more tricks or other clever things that can
improve performance.
Pipelining is the one thing that helps the most, and for most
systems today, pipelining is always an option because
bandwidth is what defines the system, not the latency. Latency
can be important, but if it is, it is usually the latency in a
different order of magnitude than the one that is caused by
pipelining.
Synthesis Guidelines
Use these synthesis options to start (they dont always work best on every
design)
Key Points
!
www.xilinx.com
1-877-XLX-CLAS
Page 161
Synthesis Techniques
Facilitator Guide
The decision to move flip-flops into and out of IOBs can also be
made by the MAP process during implementation, if timingdriven packing is used. This option will be discussed in the
Advanced Implementation Options module at the end of this
course.
Synplicity Example
Use constraints
Synplify and Synplify Pro software
stop optimizing when the constraints
are met
Use SCOPE to enter all timing constraints
Define real, individual clock
constraints
If the clocks are unrelated, always
put them into different clock groups
Using the global frequency field can
deteriorate results
Key Points
!
Page 162
www.xilinx.com
1-877-XLX-CLAS
Facilitator Guide
Synthesis Techniques
For example, with a design that has two clocks (one a lowfrequency clock and other a high-frequency clock), the logic for
each domain will be optimized to meet the constraint. For a
low-frequency clock, the logic can be optimized for area
saving resources, while the logic of the high-frequency clock
domain can increase the area to meet the constraint. It is very
important that this information is provided to the XST,
Synplify, or Precision software, as all are constraint-driven
tools.
Impact of Constraints
LUT
LUT
LUT
LUT
LUT
LUT
LUT
LUT
LUT
LUT
Non-Timing Driven
Total LUTs: 5
Clock Freq: 423.7 MHz
Synthesis Techniques - 177
Timing Driven
(Bigger but Faster!!!)
Total LUTs: 6
Clock Freq: 591.7 MHz (+ 40%)
2008 Xilinx, Inc. All Rights Reserved
www.xilinx.com
1-877-XLX-CLAS
Page 163
Synthesis Techniques
Facilitator Guide
Non-Timing Driven
Timing Driven
Page 164
www.xilinx.com
1-877-XLX-CLAS
Facilitator Guide
Synthesis Techniques
Timing constraints
Recommended options
Timing-driven MAP
Xplorer
Floorplanning
(Use the PACE and PlanAhead software tools)
Physical synthesis tools
Incremental design
Modular design flows
Impact of Constraints in
Tools
Reed-Solomon design from www.opencores.org 2.1
Performance
1.6
1.4
1.0
No constraints;
Standard effort
No constraints
in synthesis;
Place & Route
with High effort
and constraint
Constraints in
synthesis
and Place &
Route (High
effort)
Constraints in
synthesis and Place
& Route; retiming
in synthesis;
High effort in PAR
www.xilinx.com
1-877-XLX-CLAS
Page 165
Synthesis Techniques
Facilitator Guide
Synthesis Options
Show Slide 180:
Lessons
Synthesis Options
There are many synthesis options that can help you obtain your
performance and area objectives
Timing-driven synthesis
FSM extraction
Retiming
Register duplication
Hierarchy management
Resource sharing
Physical optimization
Page 166
www.xilinx.com
1-877-XLX-CLAS
Facilitator Guide
Synthesis Techniques
Synthesis Options
Show Slide 182:
Timing-Driven Synthesis
Based on your performance objectives, the tools will try several algorithms
to attempt to meet performance while keeping the amount of resources in
mind
Performance objectives are provided to the synthesis tool via timing
constraints
Key Points
!
www.xilinx.com
1-877-XLX-CLAS
Page 167
Synthesis Techniques
Facilitator Guide
Synthesis Options
Show Slide 183:
XST constraints
See the XST User Guide in Software Manuals: Help XST User Guide
XST Design Constraints
Key Points
!
Page 168
www.xilinx.com
1-877-XLX-CLAS
Facilitator Guide
Synthesis Techniques
Synthesis Options
Show Slide 184:
FSM Extraction
By default, the synthesis tools will remove all decoding for illegal states
Key Points
!
www.xilinx.com
1-877-XLX-CLAS
Page 169
Synthesis Techniques
Facilitator Guide
Synthesis Options
Show Slide 185:
Retiming
After Retiming
D
Key Points
!
To access retiming:
Synplify software: Enable under Implementation Options or
the Retiming option in the Run window in the Synplify Pro
software (Synplify Options Configure VHDL or
Verilog Compiler).
Precision software: Check the box in the Setup Design
dialog box.
XST: Enable under the Properties dialog box for Synthesize
XST Xilinx Specific Options Register balancing.
Page 170
www.xilinx.com
1-877-XLX-CLAS
Facilitator Guide
Synthesis Techniques
Synthesis Options
Show Slide 186:
Register Duplication
Implementation tools pack logic with related names into the same slice, which
can prohibit a register from being moved closer to its destination
Key Points
!
www.xilinx.com
1-877-XLX-CLAS
Page 171
Synthesis Techniques
Facilitator Guide
Synthesis Options
Show Slide 187:
Hierarchy Management
If you have followed the synchronous design guidelines, use the setting
-maintain hierarchy
If you have not followed the synchronous design guidelines, use the
setting -flatten the design
Your synthesis tool may have additional settings
Key Points
!
Page 172
www.xilinx.com
1-877-XLX-CLAS
Facilitator Guide
Synthesis Techniques
Synthesis Options
Show Slide 188:
Hierarchy Preservation
Benefits
Key Points
!
Page 173
Synthesis Techniques
Facilitator Guide
Synthesis Options
Key Points
!
Schematic Viewers
Page 174
www.xilinx.com
1-877-XLX-CLAS
Facilitator Guide
Synthesis Techniques
Synthesis Options
Show Slide 190:
Cross-Probing
From the Timing Analyzer, click a reported worst-case path and that path
will be highlighted in the synthesis schematic viewer
Cross-probe to the code
You may need to set some environment variables for this to work
Key Points
!
www.xilinx.com
1-877-XLX-CLAS
Page 175
Synthesis Techniques
Facilitator Guide
Synthesis Options
Show Slide 191:
Physical Optimization
Page 176
www.xilinx.com
1-877-XLX-CLAS
Facilitator Guide
Synthesis Techniques
Lessons
www.xilinx.com
1-877-XLX-CLAS
Page 177
Synthesis Techniques
Facilitator Guide
Page 178
www.xilinx.com
1-877-XLX-CLAS
Facilitator Guide
Synthesis Techniques
Summary
Show Slide 195:
Lessons
1) List a few of the options in the synthesis tools that help you increase
performance
www.xilinx.com
1-877-XLX-CLAS
Page 179
Synthesis Techniques
Facilitator Guide
Summary
Show Slide 197:
Summary
User guides
www.xilinx.com Documentation Doc Type User
Guides
Page 180
www.xilinx.com
1-877-XLX-CLAS
Facilitator Guide
Synthesis Techniques
1) List a few of the options in the synthesis tools that help you
increase performance.
!
Timing-driven synthesis
FSM extraction
Retiming
Register duplication
Physical optimization
Performance by construction
Pipeline
Xilinx FPGAs have abundant registers: one register per LUT
www.xilinx.com
1-877-XLX-CLAS
Page 181
Facilitator Guide
Time
30 minutes
Process
Page 182
www.xilinx.com
1-877-XLX-CLAS
Facilitator Guide
Lab
Designing for Performance Lab Workbook
!
www.xilinx.com
1-877-XLX-CLAS
Page 183
Facilitator Guide
10 minutes
Process
Page 184
www.xilinx.com
1-877-XLX-CLAS
Facilitator Guide
www.xilinx.com
1-877-XLX-CLAS
Page 185
Facilitator Guide
Timing Closure
BUFIO
BUFGCTRL
BUFR
Page 186
10
10
10
10
10
10
PLL
10
DCM
32
10
www.xilinx.com
1-877-XLX-CLAS
Facilitator Guide
DSP48
Block RAM
36-kb block memory that can be segmented into (2) 18-kb block memories or (1) 18-kb
block memory and (1) 18-kb FIFO
Optional output register for performance up to 550 MHz
Cascade mode for 64kb x 1
FIFO16
LXT
SXT
FXT
www.xilinx.com
1-877-XLX-CLAS
Page 187
Facilitator Guide
Name one technique for building synchronization circuits that can provide
maximum recovery time
Page 188
www.xilinx.com
1-877-XLX-CLAS
Facilitator Guide
www.xilinx.com
1-877-XLX-CLAS
Page 189
Facilitator Guide
Page 190
www.xilinx.com
1-877-XLX-CLAS
Facilitator Guide
This module covers the day two agenda for the course.
Time
5 minutes
Process
This module covers the day two agenda for the course.
Lessons
!
www.xilinx.com
1-877-XLX-CLAS
Page 191
Facilitator Guide
Page 192
www.xilinx.com
1-877-XLX-CLAS
Facilitator Guide
www.xilinx.com
1-877-XLX-CLAS
Page 193
Facilitator Guide
Key Points
!
Page 194
www.xilinx.com
1-877-XLX-CLAS
Facilitator Guide
Time
45 minutes
Process
Introduction
Timing Reports
Report Options
Summary
www.xilinx.com
1-877-XLX-CLAS
Page 195
Facilitator Guide
Introduction
Show Slide 213:
Objectives
After completing this module, you will be able to:
Page 196
www.xilinx.com
1-877-XLX-CLAS
Facilitator Guide
Introduction
Show Slide 215:
Timing Closure
www.xilinx.com
1-877-XLX-CLAS
Page 197
Facilitator Guide
Timing Reports
Show Slide 216:
Lessons
Timing Reports
Interpreting Timing Reports
Report Options
Summary
Timing Reports
Timing reports enable you to determine how and why constraints were not
met
The Project Navigator can create timing reports at two points in the design
flow
The Timing Analyzer is a utility for creating and reading timing reports
Page 198
www.xilinx.com
1-877-XLX-CLAS
Facilitator Guide
Timing Reports
Key Points
!
Key Points
!
www.xilinx.com
1-877-XLX-CLAS
Page 199
Facilitator Guide
Timing Reports
TRAINER NOTE
Demo Instructions:
1. Launch the Project Navigator and open the Timing Closure
lab project.
2. Expand the Implement, Place & Route and Generate PostPlace & Route Static Timing processes.
3. Double-click Analyze Post-Place & Route Static Timing.
Hierarchical browser
Timing tab
Quickly navigate to specific
report sections
Summarizes the path
displayed in the path detail
window
Report text
Key Points
!
Page 200
www.xilinx.com
1-877-XLX-CLAS
Facilitator Guide
Timing Reports
TRAINER NOTE
Demo Instructions:
1. Click the Timing Improvement Wizard link to show the
popup dialog box.
2. Click a Tilo delay to open the interactive data sheet.
Cross-Probing
Key Points
!
www.xilinx.com
1-877-XLX-CLAS
Page 201
Facilitator Guide
Timing Reports
Show Slide 221:
Timing constraints
Number of paths covered and number of paths that failed for each
constraint
Detailed descriptions of the longest paths
Timing summary
Key Points
Page 202
www.xilinx.com
1-877-XLX-CLAS
Facilitator Guide
Timing Reports
Show Slide 222:
Report Example
Constraint summary
Total delay
Key Points
!
www.xilinx.com
1-877-XLX-CLAS
Page 203
Facilitator Guide
Timing Reports
Key Points
!
In the far right column, the instance name in black text is the
physical resource associated with each delay. Use this instance
name to locate the logic in the FPGA Editor. The blue names are
logical resources, which can be used to locate the logic in the
floorplanner or in the RTL viewer of your synthesis tool.
When a path fails to meet a timing constraint, the Timing Analyzer shows
its icon
The Wizard asks questions and provides useful suggestions
Answers range from design change guidance to implementation tool
options
Page 204
www.xilinx.com
1-877-XLX-CLAS
Facilitator Guide
Lessons
Timing Reports
Interpreting Timing Reports
Report Options
Summary
Estimating Design
Performance
www.xilinx.com
1-877-XLX-CLAS
Page 205
Facilitator Guide
60/40 Rule
Under 60 percent: Good chance that the design will meet timing
60 to 80 percent: Design may meet timing if advanced options are used
Over 80 percent: Design will probably not meet timing (go back to improve
synthesis results)
Key Points
!
Page 206
www.xilinx.com
1-877-XLX-CLAS
Facilitator Guide
Correct interpretation of timing reports can reveal the most likely cause
Key Points
!
www.xilinx.com
1-877-XLX-CLAS
Page 207
Facilitator Guide
Case 1
Data Path: source to dest
Delay type
Delay(ns)
---------------------------Tcko
0.272
net (fanout=7)
0.325
Tilo
0.146
net (fanout=1)
1.500
Tilo
0.146
net (fanout=1)
0.174
Tilo
0.146
net (fanout=1)
0.204
Tas
0.159
---------------------------Total
3.072ns
Logical Resource(s)
------------------source
net_1
lut_1
net_2
lut_2
net_3
lut_3
net_4
dest
-----------------------------(0.869ns logic, 2.203ns route)
(28.3% logic, 71.7% route)
Key Points
!
Page 208
www.xilinx.com
1-877-XLX-CLAS
Facilitator Guide
Case 1 Answer
Data Path: source to dest
Delay type
Delay(ns)
---------------------------Tcko
0.272
net (fanout=7)
0.325
Tilo
0.146
net (fanout=1)
1.500
Tilo
0.146
net (fanout=1)
0.174
Tilo
0.146
net (fanout=1)
0.204
Tas
0.159
---------------------------Total
3.072ns
Logical Resource(s)
------------------source
net_1
lut_1
net_2
lut_2
net_3
lut_3
net_4
dest
-----------------------------(0.869ns logic, 2.203ns route)
(28.3% logic, 71.7% route)
www.xilinx.com
1-877-XLX-CLAS
Page 209
Facilitator Guide
Case 2
Data Path: source to dest
Delay type
Delay(ns)
---------------------------Tcko
0.272
net (fanout=7)
0.125
Tilo
0.146
net (fanout=187)
2.500
Tilo
0.146
net (fanout=1)
0.174
Tilo
0.146
net (fanout=1)
0.204
Tas
0.159
---------------------------Total
3.872ns
Logical Resource(s)
------------------source
net_1
lut_1
net_2
lut_2
net_3
lut_3
net_4
dest
-----------------------------(0.869ns logic, 3.003ns route)
(22.4% logic, 77.6% route)
Case 2 Answer
Data Path: source to dest
Delay type
Delay(ns)
---------------------------Tcko
0.272
net (fanout=7)
0.125
Tilo
0.146
net (fanout=187)
2.500
Tilo
0.146
net (fanout=1)
0.174
Tilo
0.146
net (fanout=1)
0.204
Tas
0.159
---------------------------Total
3.872ns
The signal net_2 has a long delay, but the fanout is not low
Most likely cause is high fanout
Page 210
Logical Resource(s)
------------------source
net_1
lut_1
net_2
lut_2
net_3
lut_3
net_4
dest
-----------------------------(0.869ns logic, 3.003ns route)
(22.4% logic, 77.6% route)
www.xilinx.com
1-877-XLX-CLAS
Facilitator Guide
If the net is the output of a flip-flop, the solution is to duplicate the flip-flop
If the net is driven by combinatorial logic, locating the source of the net in
the HDL code may be more difficult
Key Points
!
www.xilinx.com
1-877-XLX-CLAS
Page 211
Facilitator Guide
Case 3
Data Path: source to dest
Delay type
Delay(ns)
---------------------------Tcko
0.272
net (fanout=7)
0.521
Tilo
0.146
net (fanout=1)
0.180
Tilo
0.146
net (fanout=1)
0.223
Tilo
0.146
net (fanout=1)
0.123
Tilo
0.146
net (fanout=1)
0.310
Tilo
0.146
net (fanout=1)
0.233
Tilo
0.146
net (fanout=1)
0.308
Tas
0.159
---------------------------Total
3.205ns
Logical Resource(s)
------------------source
net_1
lut_1
net_2
lut_2
net_3
lut_3
net_4
lut_4
net_5
lut_5
net_6
lut_6
net_7
dest
-------------------------------------(1.307ns logic, 1.898ns route)
(40.8% logic, 59.2% route)
Case 3 Answer
Data Path: source to dest
Delay type
Delay(ns)
---------------------------Tcko
0.272
net (fanout=7)
0.521
Tilo
0.146
net (fanout=1)
0.180
Tilo
0.146
net (fanout=1)
0.223
Tilo
0.146
net (fanout=1)
0.123
Tilo
0.146
net (fanout=1)
0.310
Tilo
0.146
net (fanout=1)
0.233
Tilo
0.146
net (fanout=1)
0.308
Tas
0.159
---------------------------Total
3.205ns
There are no really long delays, but there are a lot of logic levels (7)
Page 212
Logical Resource(s)
------------------source
net_1
lut_1
net_2
lut_2
net_3
lut_3
net_4
lut_4
net_5
lut_5
net_6
lut_6
net_7
dest
-------------------------------------(1.307ns logic, 1.898ns route)
(40.8% logic, 59.2% route)
www.xilinx.com
1-877-XLX-CLAS
Facilitator Guide
The seven logic levels in this path include the six Tilo delays
plus the Tas delay (setup time going through a LUT).
Use the retiming option during synthesis to distribute logic more evenly
among flip-flops
Confirm that good coding techniques were used to build this logic
(no nested if or case statements)
Add a pipeline stage
www.xilinx.com
1-877-XLX-CLAS
Page 213
Facilitator Guide
Report Options
Show Slide 237:
Lessons
Timing Reports
Interpreting Timing Reports
Report Options
Summary
Used for Post-Map and Post-Place & Route Static Timing Reports if the
design contains constraints
Used for Post-Map and Post-Place & Route Static Timing Reports if the
design contains no constraints
Page 214
www.xilinx.com
1-877-XLX-CLAS
Facilitator Guide
Report Options
Key Points
!
Key Points
!
www.xilinx.com
1-877-XLX-CLAS
Page 215
Facilitator Guide
Report Options
Key Points
!
Clicking the icons in the toolbar will create a report using the
currently defined options. To access the report options shown
next, you must select a report type from the Analyze menu.
Key Points
Page 216
Select the Report paths option to create reports after MAP but
before Place & Route. This format has detailed path information
on the longest paths for each constraint, even if they are not
timing errors (default format for the Post-Map Static Timing
Report).
Facilitator Guide
Report Options
Key Points
!
You can select which constraints that you want to apply to the
design during the report creation. If a constraint is not selected,
the tools will act as if the constraint did not exist. For example,
if you disable a multicycle path constraint, those paths will be
analyzed and reported under the global PERIOD constraint
(probably as timing errors).
TRAINER NOTE
Demo Instructions:
Viewing the report options:
!
Note: There may not be timing constraints for this design. If there
are timing constraints, they are listed in the Timing Constraints tab
as in the figure above.
Options Tab
Speed grade
Constraint details
Prorating
www.xilinx.com
1-877-XLX-CLAS
Page 217
Facilitator Guide
Report Options
Key Points
!
Key Points
!
Page 218
www.xilinx.com
1-877-XLX-CLAS
Facilitator Guide
Report Options
Key Points
!
Key Points
!
Page 219
Facilitator Guide
Summary
Show Slide 244:
Lessons
Timing Reports
Interpreting Timing Reports
Report Options
Summary
Page 220
www.xilinx.com
1-877-XLX-CLAS
Facilitator Guide
Summary
Show Slide 246:
Summary
Timing reports enable you to determine how and why constraints were not
met
Use the Synthesis Report and Post-Map Static Timing Report to estimate
performance before running Place & Route
The detailed path description offers clues to the cause of timing failures
Cross-probe to see the placement and a technology view of a timing path
The Timing Analyzer can generate various types of reports for specific
circumstances
www.xilinx.com
1-877-XLX-CLAS
Page 221
Facilitator Guide
Page 222
www.xilinx.com
1-877-XLX-CLAS
Facilitator Guide
Time
45 minutes
Process
This lab illustrates how to use global timing constraints and the
Timing Analyzer to find the timing-critical paths of a design and
develop a strategy for gaining timing closure.
General Flow
!
www.xilinx.com
1-877-XLX-CLAS
Page 223
Facilitator Guide
Lab
Designing for Performance Lab Workbook
!
Page 224
www.xilinx.com
1-877-XLX-CLAS
Facilitator Guide
Time
45 minutes
Process
Introduction
Overview
Creating Groups
OFFSET Constraints
Summary
www.xilinx.com
1-877-XLX-CLAS
Page 225
Facilitator Guide
Introduction
Show Slide 247:
Objectives
After completing this module, you will be able to:
Page 226
www.xilinx.com
1-877-XLX-CLAS
Facilitator Guide
Overview
Show Slide 249:
Lessons
Overview
Creating Groups
OFFSET Constraints
Summary
Path-Specific Timing
Constraints
www.xilinx.com
1-877-XLX-CLAS
Page 227
Facilitator Guide
Overview
Key Points
!
Multicycle paths
Paths that cross between clock domains
Bidirectional buses
I/O timing
Page 228
www.xilinx.com
1-877-XLX-CLAS
Facilitator Guide
Overview
Key Points
!
ADATA
FLOP1
FLOP2
FLOP3
OUT1
CLK
BUFG
FLOP4
FLOP5
OUT2
BUS [7..0]
CDATA
Timing Groups and OFFSET
Constraints - 252
BUF
FLO
FLO
FLO
D Q
D Q
D Q
FLO
FLO
D Q
D Q
OUT
OUT2
BUS [7..0]
CDATA
www.xilinx.com
1-877-XLX-CLAS
Page 229
Facilitator Guide
Overview
Key Points
!
Path-Specific
Constraint Example
FLOP1
FLOP2
DQ
D Q
FLOP3
D Q
OUT1
CLK
BUFG
FLOP4
FLOP5
D Q
DQ
OUT2
BUS [7..0]
CDATA
Key Points
!
Page 230
www.xilinx.com
1-877-XLX-CLAS
Facilitator Guide
Overview
Show Slide 254:
Key Points
!
www.xilinx.com
1-877-XLX-CLAS
Page 231
Facilitator Guide
Overview
TRAINER NOTE
Demo Instructions:
Opening a project and launching the Constraints Editor:
1. Open the ISE software.
2. Select File Open Project.
3. Browse to the Review lab.
4. Select tc_review_lab.npl and click Open.
5. In the Source window, select the
correlate_and_accumulate.ucf file
6. In the Process window, double-click Create Timing
Constraints.
Page 232
www.xilinx.com
1-877-XLX-CLAS
Facilitator Guide
Creating Groups
Show Slide 255:
Lessons
Overview
Creating Groups
OFFSET Constraints
Summary
Creating Groups of
Endpoints
The Constraints Editor makes this easy by allowing you to define groups
of path endpoints (pads, flip-flops, latches, and RAMs)
Specific delay paths can then be constrained with advanced timing
constraints
www.xilinx.com
1-877-XLX-CLAS
Page 233
Facilitator Guide
Creating Groups
Key Points
!
Creating Groups of
Endpoints
By Nets
By Instance Name
By Hierarchy
By Element Type
By Clock Edge
Through Points
By DCM Output
Key Points
Page 234
Facilitator Guide
Creating Groups
Key Points
!
Grouping by Nets or
Output Net Name
www.xilinx.com
1-877-XLX-CLAS
Page 235
Facilitator Guide
Creating Groups
Key Points
!
The Group elements by output net name option (not shown, but
the dialog box is similar) is commonly used with designs that
use schematic design flows; however, if your synthesis tool
maintains the names of nets connected to the outputs of your
synchronous elements, it can be useful.
TRAINER NOTE
Demo Instructions:
Creating a group of path endpoints:
1. In the Constraints Editor, click Create next to Group
elements associated by Nets (TNM_NET).
2. Enter MY_CLKEN_GRP in the Time Name field.
3. Select Enable Nets from the drop-down list.
4. Click the Add All to move the nets into the Time Name
Targets window.
5. Click OK to create the group.
Page 236
www.xilinx.com
1-877-XLX-CLAS
Facilitator Guide
Creating Groups
Show Slide 259:
Key Points
!
www.xilinx.com
1-877-XLX-CLAS
Page 237
Facilitator Guide
Creating Groups
Show Slide 260:
Key Points
!
Page 238
www.xilinx.com
1-877-XLX-CLAS
Facilitator Guide
Creating Groups
Show Slide 261:
Allows you to optimize paths through specific nets and 3-state buffers
In this example, a group of nets was named TEOUTS. A constraint can
now be referenced such that only the delay paths through the TEOUTS
nets will be optimized
TPTHRU = TEOUTS
D
reg
MYCTR
reg
D
reg
www.xilinx.com
1-877-XLX-CLAS
Page 239
Facilitator Guide
Creating Groups
Key Points
!
If you use HDL, you can have difficulty determining what the
net names are in your design. You can use your synthesis tools
Schematic Viewer or the Xilinx Floorplanner to find net names.
Key Points
Page 240
Remember that THRU points allow you to identify nets and 3state buffers so that particular paths that use those resources
can be specifically constrained.
This option is most often used for identifying false paths, which
can occur when bidirectional buses are a part of your design.
www.xilinx.com
1-877-XLX-CLAS
Facilitator Guide
Creating Groups
TRAINER NOTE
Demo Instructions:
Creating a group of nets:
1. In the Advanced tab, click the Create button next to Timing
THRU Points (TPTHRU).
2. Enter MY_MID_PT in the TPTHRU Name field.
3. Select tensout<0> through tensout<6> to be in this group.
You can use the Filter field to help find the nets. Enter tens*
in the Filter field and click Find to help narrow the search.
4. Click OK to create the group.
Managing Groups
Groups that you have defined are written into the UCF
To add items to an existing group, click one of the grouping buttons and
use the same time name
To delete a group, delete it with a text editor
You cannot remove items from a group with the Constraints Editor
Key Points
!
Page 241
Facilitator Guide
Creating Groups
Key Points
Page 242
www.xilinx.com
1-877-XLX-CLAS
Facilitator Guide
OFFSET Constraints
Show Slide 265:
Lessons
Overview
Creating Groups
OFFSET constraints
Summary
Use the Pad to Setup and Clock to Pad columns to specify OFFSETs for
all I/O paths on each clock domain
Easiest way to constrain most I/O paths
www.xilinx.com
1-877-XLX-CLAS
Page 243
Facilitator Guide
OFFSET Constraints
Key Points
!
Pin-Specific OFFSET
Constraints
Use the Pad to Setup and Clock to Pad columns to specify OFFSET
constraints for each I/O pin
Use this type of constraint when only a few I/O pins need different timing
Key Points
Page 244
www.xilinx.com
1-877-XLX-CLAS
Facilitator Guide
OFFSET Constraints
TRAINER NOTE
Demo Instructions:
!
Click the Ports tab to view where you can enter OFFSET
constraints for specific inputs and outputs.
Key Points
!
You can also create groups of I/O pads by using the buttons in
the Advanced tab; however, I/O pads do not always have
common names for easy grouping. The Ports tab allows you to
easily create groups of pads with arbitrary names.
www.xilinx.com
1-877-XLX-CLAS
Page 245
Facilitator Guide
OFFSET Constraints
Key Points
!
Key Points
Page 246
Instead of using the Ports tab, you may find it easier to use the
Advanced tab in some cases.
www.xilinx.com
1-877-XLX-CLAS
Facilitator Guide
OFFSET Constraints
Show Slide 270:
Key Points
!
This dialog box appears when you select the Pad to Setup or
Clock to Pad buttons in the Ports tab or the Advanced tab.
www.xilinx.com
1-877-XLX-CLAS
Page 247
Facilitator Guide
OFFSET Constraints
Show Slide 271:
Source-Synchronous
OFFSET Constraints
For source-synchronous
inputs, you can specify
the width of the valid
data window by
specifying a rising
edge constraint and
a falling edge constraint
OFFSET constraints define the relationship between the data and the
reference clock edge at the pins of the FPGA
Defined in the global PERIOD constraint with the HIGH or LOW keyword
If all I/Os are clocked on a single edge, use the HIGH or LOW keyword in
the PERIOD constraint to define which edge is used
If both clock edges are used, use the opposite keyword in the OFFSET
constraint
Page 248
www.xilinx.com
1-877-XLX-CLAS
Facilitator Guide
OFFSET Constraints
Key Points
!
www.xilinx.com
1-877-XLX-CLAS
Page 249
Facilitator Guide
Summary
Show Slide 273:
Lessons
Overview
Creating Groups
OFFSET Constraints
Summary
The input will be valid at least 3 ns before the rising edge of CLK. The
output must be valid 4 ns after the falling edge of CLK.
OUT
C
CLK
RESET_A
RESET_B
Timing Groups and OFFSET
Constraints - 274
Page 250
www.xilinx.com
1-877-XLX-CLAS
Facilitator Guide
Summary
Apply Your Knowledge
IN
D Q
D Q
D Q
D Q
OUT
CLK
RESET_A
RESET_B
Summary
Constraints Guide
Help Software Manuals
www.xilinx.com
1-877-XLX-CLAS
Page 251
Facilitator Guide
Page 252
www.xilinx.com
1-877-XLX-CLAS
Facilitator Guide
Time
45 minutes
Process
Introduction
Multicycle Paths
False Paths
Miscellaneous Constraints
Summary
www.xilinx.com
1-877-XLX-CLAS
Page 253
Facilitator Guide
Introduction
Show Slide 276:
Path-Specific Timing
Constraints
Objectives
After completing this module, you will be able to:
Page 254
www.xilinx.com
1-877-XLX-CLAS
Facilitator Guide
Introduction
Show Slide 278:
Timing Closure
www.xilinx.com
1-877-XLX-CLAS
Page 255
Facilitator Guide
Outline
OUT
CLK
Page 256
www.xilinx.com
1-877-XLX-CLAS
Facilitator Guide
Constraining Between
Related Clock Domains
Key Points
!
www.xilinx.com
1-877-XLX-CLAS
Page 257
Facilitator Guide
Constraining Between
Unrelated Clock Domains
In this example, the delay path between the two clock domains is not
covered by either of the PERIOD constraints
A constraint is not technically needed, but you may want to constrain the
path for completeness
PERIOD CLK_A
DQ
PERIOD CLK_B
D Q
D Q
D Q
OUT1
CLK_A
CLK_B
Key Points
!
Page 258
www.xilinx.com
1-877-XLX-CLAS
Facilitator Guide
Constraining Between
Unrelated Clock Domains
To constrain the path between the two clock domains (highlighted in gray)
Define groups of registers CLK_A and CLK_B with the Group by Nets
option
Automatically done if you have specified a PERIOD constraint for both clock
domains
5 ns
PERIOD CLK_B
D
OUT1
CLK_A
CLK_B
Key Points
!
www.xilinx.com
1-877-XLX-CLAS
Page 259
Facilitator Guide
Constraining Between
Unrelated Clock Domains
Constraining Between
Unrelated Clock Domains
Page 260
www.xilinx.com
1-877-XLX-CLAS
Facilitator Guide
www.xilinx.com
1-877-XLX-CLAS
Page 261
Facilitator Guide
Multicycle Paths
Show Slide 286:
Outline
CLK
PRE2
TC
50 MHz
CE
Q0 Q1
Page 262
200 MHz
www.xilinx.com
1-877-XLX-CLAS
COUT14
Q2 Q3 Q4
Q14 Q15
Facilitator Guide
Multicycle Paths
Key Points
!
Key Points
!
www.xilinx.com
1-877-XLX-CLAS
Page 263
Facilitator Guide
Multicycle Paths
Show Slide 289:
Key Points
Page 264
www.xilinx.com
1-877-XLX-CLAS
Facilitator Guide
Multicycle Paths
Show Slide 290:
However, COUT14 registers are disabled 3/4 of the time so they do not have
to meet a 200-MHz PERIOD constraint
200 MHz
CLK
PRE2
TC
50 MHz
CE
Q0 Q1
COUT14
Q2 Q3 Q4
Q14 Q15
Key Points
!
Because the LSBs have the only critical paths, this gives the
implementation tools the greatest placement flexibility for the
MSBs, and the counter can easily be placed to obtain peak
performance.
www.xilinx.com
1-877-XLX-CLAS
Page 265
Facilitator Guide
Multicycle Paths
Apply Your Knowledge
200 MHz
CLK
PRE2
TC
50 MHz
COUT14
CE
Q2 Q3 Q4
Q0 Q1
Q14 Q15
CLK
PRE2
TC
50 MHz
CE
Q0 Q1
Page 266
COUT14
Q2 Q3 Q4
www.xilinx.com
1-877-XLX-CLAS
Q14 Q15
Facilitator Guide
False Paths
Show Slide 292:
Outline
False Paths
www.xilinx.com
1-877-XLX-CLAS
Page 267
Facilitator Guide
False Paths
Key Points
!
False paths are useful when your design has paths that are not
required to be constrained. Most commonly, these paths are
bidirectional paths that are not exercised during normal
operation; however, any path that you know will meet your
timing objectives can be defined as a false path.
Key Points
Page 268
www.xilinx.com
1-877-XLX-CLAS
Facilitator Guide
False Paths
Show Slide 295:
Key Points
!
www.xilinx.com
1-877-XLX-CLAS
Page 269
Facilitator Guide
False Paths
Show Slide 296:
Status
Register
Control
Register
Control_Enable
Status_Enable
BIDIR_PAD(7:0)
BIDIR_BUS(7:0)
Path-Specific Timing Constraints - 296
Control
Register
Control_Enable
BIDIR_PAD(7:0)
BIDIR_BUS(7:0)
Page 270
www.xilinx.com
1-877-XLX-CLAS
Status_Enable
Facilitator Guide
False Paths
Show Slide 297:
Answer
Paths between the control registers and the status registers would be
constrained
Paths from each register feeding back to itself are also constrained
Status
Register
Control
Register
Control_Enable
Status_Enable
BIDIR_PAD(7:0)
BIDIR_BUS(7:0)
Path-Specific Timing Constraints - 297
Key Points
!
Because 3-state buffers are not path endpoints, all delay paths
through 3-state buffers can be unnecessarily constrained when
you use only global constraints. In this case, removing
constraints between the registers that drive the bus can be
useful.
www.xilinx.com
1-877-XLX-CLAS
Page 271
Facilitator Guide
False Paths
Show Slide 298:
Answer
5) If the goal is to optimize the input and output times without constraining
the paths between registers, what constraints are needed?
Control
Register
Control_Enable
Status_Enable
BIDIR_PAD(7:0)
BIDIR_BUS(7:0)
Path-Specific Timing Constraints - 298
Key Points
!
Page 272
www.xilinx.com
1-877-XLX-CLAS
Facilitator Guide
Miscellaneous Constraints
Show Slide 299:
Outline
Miscellaneous Tab
Prevents X propagation
during simulation
www.xilinx.com
1-877-XLX-CLAS
Page 273
Facilitator Guide
Miscellaneous Constraints
Key Points
!
Prorating Constraints
This will prorate the device delay characteristics to accurately reflect your
worst-case system conditions
Key Points
!
Page 274
Facilitator Guide
Miscellaneous Constraints
Key Points
!
If you prorate your constraints, make sure that you enter the
worst-case temperature and VCC that your device might ever
encounter.
False paths
Highest
FROM THRU TO
FROM TO
Pin-specific OFFSETs
Group OFFSETs
Lowest
Key Points
!
www.xilinx.com
1-877-XLX-CLAS
Page 275
Facilitator Guide
Miscellaneous Constraints
Show Slide 303:
Timing Constraint
Interaction
Whenever a path is covered by more than one constraint, the tools must
choose which constraint to use for timing analysis
If the constraints are of different types, the highest priority constraint is
applied
If the constraints are of the same type (example: FROM TO), the decision
is more complex
Priority can be dictated with the PRIORITY keyword in the UCF
Key Points
!
Page 276
If two constraints cover the same paths and have the same
priority level, the software follows a set of rules to determine
which constraint will be applied.
www.xilinx.com
1-877-XLX-CLAS
Facilitator Guide
Summary
Show Slide 304:
Outline
Summary
These paths will use slower routing resources, which frees up fast routing
for critical signals
Prorating your operating conditions gives the tools the most accurate
picture of your design environment
In general, more specific constraints have a higher priority than less
specific constraints
www.xilinx.com
1-877-XLX-CLAS
Page 277
Summary
Where Can I Learn More?
!
Constraints Guide
Help Software Manuals
Page 278
www.xilinx.com
1-877-XLX-CLAS
Facilitator Guide
Facilitator Guide
www.xilinx.com
1-877-XLX-CLAS
Page 279
Facilitator Guide
Page 280
www.xilinx.com
1-877-XLX-CLAS
Facilitator Guide
Time
45 minutes
Process
www.xilinx.com
1-877-XLX-CLAS
Page 281
Facilitator Guide
Lab
Designing for Performance Lab Workbook
!
Page 282
www.xilinx.com
1-877-XLX-CLAS
Facilitator Guide
Time
30 minutes
Process
Introduction
Overview
Xplorer
Power Optimization
Summary
www.xilinx.com
1-877-XLX-CLAS
Page 283
Facilitator Guide
Introduction
Show Slide 306:
Advanced Implementation
Options
Objectives
After completing this module, you will be able to:
Increase design performance by using advanced MAP and Place & Route
options
Increase design performance by using the Xplorer tool
Save implementation time by using SmartGuide and partitions
Page 284
www.xilinx.com
1-877-XLX-CLAS
Facilitator Guide
Introduction
Show Slide 308:
Timing Closure
www.xilinx.com
1-877-XLX-CLAS
Page 285
Facilitator Guide
Overview
Show Slide 309:
Lessons
Overview
Advanced MAP and Place &
Route Options
Xplorer
SmartGuide and Partitions
Power Optimization
Summary
Introduction
Xilinx recommends using the default options and global timing constraints
the first time you implement a design
If your design does not meet timing goals, follow the recommended flow
presented earlier
Early in the design cycle, examine ways of changing your HDL code
Page 286
www.xilinx.com
1-877-XLX-CLAS
Facilitator Guide
Overview
Key Points
!
When to Use
Advanced Options
If timing is still not met, consider using advanced MAP or Place & Route
(PAR) options
This module discusses the expected trade-offs and benefits of each option
www.xilinx.com
1-877-XLX-CLAS
Page 287
Facilitator Guide
Lessons
Overview
Advanced MAP and Place & Route
Options
Xplorer
SmartGuide and Partitions
Power Optimization
Summary
Timing-Driven Packing
Timing constraints are used to optimize which pieces of logic are packed
into each slice
The Post-Map Static Timing Report contains more realistic net delays
Place & Route runtime is reduced because some placement is already
performed
Page 288
www.xilinx.com
1-877-XLX-CLAS
Facilitator Guide
Example
Standard Pack
FF1
FF1
FF2
FF2
Key Points
!
www.xilinx.com
1-877-XLX-CLAS
Page 289
Facilitator Guide
Turning on
Timing-Driven Packing
Key Points
Page 290
www.xilinx.com
1-877-XLX-CLAS
Facilitator Guide
Trade-Offs
Up to 200 percent
But you recover some of this increased runtime by saving runtime during
Place & Route
Key Points
!
www.xilinx.com
1-877-XLX-CLAS
Page 291
Facilitator Guide
Only available when the Place & Route effort level is set to High
Two settings: Normal and Continue on Impossible
Page 292
www.xilinx.com
1-877-XLX-CLAS
Facilitator Guide
You can also set the Placer Effort and Router Effort separately.
If you set the Placer Effort to High, but leave the Router Effort
at Standard, the Extra Effort option will only be used during
placement. This trick can increase your productivity by
decreasing software runtime.
www.xilinx.com
1-877-XLX-CLAS
Page 293
Facilitator Guide
Xplorer
Show Slide 319:
Lessons
Overview
Advanced MAP and Place & Route
Options
Xplorer
SmartGuide and Partitions
Power Optimization
Summary
Xplorer
Page 294
www.xilinx.com
1-877-XLX-CLAS
Facilitator Guide
Xplorer
Key Points
!
Xplorer Options
Overall Effort Level (MAP and PAR) Enables PAR to work longer and harder
Timing-Driven Map (MAP) Enables MAP to group timing-critical logic in the
same slice or CLB
Extra Effort Level (MAP and PAR) Even longer and harder
Multi-Pass Place and Route (PAR) Enables you to generate different results
with cost tables (not recommended for the Virtex-5 FPGA)
Global Optimization (MAP) Enables re-mapping, logic trimming, logic and
register duplication, and logic optimization
Retiming (MAP) Enables register migration
Register Duplication (MAP) Duplicates registers to reduce fanout
Logic Optimization (MAP) Duplicates logic to reduce logic levels
Optimization Strategy/Cover Mode (MAP) Controls how MAP assigns logic to
LUTs
Allow Logic Optimization Across Hierarchy (MAP) Last effort to reduce logic
levels
Advanced Implementation Options - 321
www.xilinx.com
1-877-XLX-CLAS
Page 295
Facilitator Guide
Xplorer
Key Points
Page 296
www.xilinx.com
1-877-XLX-CLAS
Facilitator Guide
Xplorer
Show Slide 322:
Running Xplorer
Key Points
!
Xplorer properties:
Xplorer Mode: Select Timing Closure to enable Xplorer.
Turn Off Xplorer After Run Completes: By default, after
Xplorer completes, the mode is set back to Off so that the
next implementation will not use Xplorer. Select No to
ensure that Xplorer is used every time the implementation
process is run.
Maximum Number of Iterations: Up to 20 iterations can be
run. Xplorer will stop when timing closure is achieved or
after the maximum number of iterations.
Enable Retiming: Available for Virtex-4 and Virtex-5 FPGA
designs only. This option allows Xplorer to use the retiming
option during the MAP process to move registers forward
or backward to balance the delays between timing paths.
Macro Search Path: This is the same as the Translate option.
www.xilinx.com
1-877-XLX-CLAS
Page 297
Facilitator Guide
Xplorer
Key Points
Other Xplorer Command Line Options: Xplorer can also be
run from the command line. Xplorer also has an additional
mode called Best Performance Mode where you are able to
specify the name of a clock signal. This option does not
allow you to specify more than one clock and it does not
allow you to optimize the entire design, just the logic on one
clock domain. Use this option at your own discretion.
Show Slide 323:
Xplorer Results
All other results are deleted (unless you run from the command line)
Key Points
Page 298
www.xilinx.com
1-877-XLX-CLAS
Facilitator Guide
Lessons
Overview
Advanced MAP and Place & Route
Options
Xplorer
SmartGuide and Partitions
Power Optimization
Summary
SmartCompile
Two strategies for maintaining some PAR results while still making some
changes to a design
Partitions are used to maintain implementation results while still making design
changes
SmartGuide is used to maintain timing results while still making design changes
www.xilinx.com
1-877-XLX-CLAS
Page 299
Facilitator Guide
Page 300
www.xilinx.com
1-877-XLX-CLAS
Facilitator Guide
SmartGuide
Timing Preservation in the Midst of Changes
Physical Layout
SmartGuide
Small
Change
Physical Layout
With Small Design
Change
Key Points
!
www.xilinx.com
1-877-XLX-CLAS
Page 301
Facilitator Guide
Note that for a LUT to be guided its equation can vary between
iterations. After the new logic is added, the tools complete a
clean-up phase where critical paths from the new and the old
logic may be re-placed and routed to help meet timing
constraints. This phase greatly improves the chances that the
tools will meet all of your timing objectives.
Partitions
Top
Implementation Preservation
Set Partitions
A1
A2
Logical Design (HDL)
2
Implement Design
3
Make Changes
- For example: C
Modified; A, B
Preserved
Physical Layout after change
Advanced Implementation Options - 327
Key Points
Page 302
www.xilinx.com
1-877-XLX-CLAS
Facilitator Guide
Partitions can also be set when using Synplify Pro software. Just
set a compile point for each level of hierarchy that will be a
partition.
www.xilinx.com
1-877-XLX-CLAS
Page 303
Facilitator Guide
Power Optimization
Show Slide 328:
Lessons
Overview
Advanced MAP and Place & Route
Options
Xplorer
SmartGuide and Partitions
Power Optimization
Summary
Power Optimization
Page 304
www.xilinx.com
1-877-XLX-CLAS
Facilitator Guide
Power Optimization
Key Points
!
www.xilinx.com
1-877-XLX-CLAS
Page 305
Facilitator Guide
Summary
Show Slide 330:
Lessons
Overview
Advanced MAP and Place & Route
Options
Xplorer
SmartGuide and Partitions
Power Optimization
Summary
1) Under what conditions will timing-driven packing have the most impact on
design performance?
2) What is the trade-off when using PAR with the Extra Effort option?
Page 306
www.xilinx.com
1-877-XLX-CLAS
Facilitator Guide
Summary
Show Slide 332:
Summary
Make certain that you have tried the options included in the timing closure
flow diagram if you have timing problems
Xplorer has a number of Map and PAR options it can run for you
SmartGuide and partitions enable you to save successful results and
reduce your implementation time
Online help
Click the Help button in the Process Properties window
Application Notes
Help Xilinx On the Web Application Notes
Application Note XAPP918: Incremental Design Reuse and
Partitions
www.xilinx.com
1-877-XLX-CLAS
Page 307
Facilitator Guide
2) What is the trade-off when using PAR with the Extra Effort
option?
!
Page 308
www.xilinx.com
1-877-XLX-CLAS
Facilitator Guide
Time
30 minutes
Process
www.xilinx.com
1-877-XLX-CLAS
Page 309
Facilitator Guide
Lab
Designing for Performance Lab Workbook
!
Page 310
www.xilinx.com
1-877-XLX-CLAS
Facilitator Guide
Power Estimation
Power Estimation
Purpose
Time
30 minutes
Process
Introduction
Overview
XPower Estimator
Summary
www.xilinx.com
1-877-XLX-CLAS
Page 311
Power Estimation
Facilitator Guide
Introduction
Show Slide 333:
Power Estimation
Objectives
After completing this module, you will be able to:
List the three phases of the design cycle where power calculations can be
performed
Estimate power consumption by using the XPower Estimator spreadsheet
Estimate power consumption by using the XPower Analyzer software
Page 312
www.xilinx.com
1-877-XLX-CLAS
Facilitator Guide
Power Estimation
Overview
Show Slide 335:
Lessons
Overview
XPower Estimator
Using the XPower Analyzer
Software
Summary
Power Consumption
Overview
Lower performance
Lower power requirements
No package power concerns
Package Power
Limit
PMAX
High Density
Low
Density
Real-World Design
Power Consumption
Performance (MHz)
www.xilinx.com
1-877-XLX-CLAS
Page 313
Power Estimation
Facilitator Guide
Overview
Key Points
!
Power Consumption
Concerns
System performance
Design density
Package options
Device reliability
Key Points
Page 314
Facilitator Guide
Power Estimation
Overview
Key Points
!
Estimating Power
Consumption
Output loading
System performance (switching frequency)
Design density (number of interconnects)
Design activity (percent of interconnects switching)
Logic block and interconnect structure
Supply voltage
www.xilinx.com
1-877-XLX-CLAS
Page 315
Power Estimation
Facilitator Guide
Overview
Show Slide 339:
Estimating Power
Consumption
Accurate power calculation at an early stage in the design cycle will result
in fewer problems later
Power Estimation - 339
Key Points
Page 316
www.xilinx.com
1-877-XLX-CLAS
Facilitator Guide
Power Estimation
Overview
Show Slide 340:
Activity Rates
Accurate activity rates (also known as toggle rates) are required for
meaningful power calculations
Clocks and input signals have an absolute frequency
Synchronous logic nets use a percentage activity rate
www.xilinx.com
1-877-XLX-CLAS
Page 317
Power Estimation
Facilitator Guide
XPower Estimator
Show Slide 341:
Lessons
Overview
XPower Estimator
Using the XPower Analyzer
Software
Summary
XPower Estimator
www.xilinx.com/power
Sheets
Page 318
www.xilinx.com
1-877-XLX-CLAS
Facilitator Guide
Power Estimation
XPower Estimator
Key Points
!
www.xilinx.com
1-877-XLX-CLAS
Page 319
Power Estimation
Facilitator Guide
XPower Estimator
Show Slide 344:
Page 320
www.xilinx.com
1-877-XLX-CLAS
Facilitator Guide
Power Estimation
Lessons
Overview
XPower Estimator
Using the XPower Analyzer
Software
Summary
Clock frequencies
Activity rates for nets, logic elements, and output pins
Capacitive loading on output pins
Power supply data and ambient temperature
Detailed design activity data from simulation (VCD file)
The XPower tool calculates the total average power consumption and
generates a report
www.xilinx.com
1-877-XLX-CLAS
Page 321
Power Estimation
Facilitator Guide
In order for the XPower tool to match instance and net names
from the VCD file to items in the NCD file, the VCD file must
be from a post-Place & Route simulation.
Page 322
www.xilinx.com
1-877-XLX-CLAS
Facilitator Guide
Power Estimation
Key Points
!
Page 323
Power Estimation
Facilitator Guide
Report type
Page 324
www.xilinx.com
1-877-XLX-CLAS
Facilitator Guide
Power Estimation
Power summary
| I(mA) | P(mW) |
---------------------------------------------------------------Total estimated power consumption |
|
206 |
--Total Vccint 1.20V |
69 |
83 |
Total Vccaux 2.50V |
45 |
113 |
Total Vcco33 3.30V |
3 |
10 |
--Inputs |
0 |
0 |
Outputs |
Vcco33 |
0 |
0 |
Signals |
0 |
0 |
--Quiescent Vccint 1.20V |
69 |
83 |
Quiescent Vccaux 2.50V | 45 |
113 |
Quiescent Vcco33 3.30V |
3 |
10 |
Thermal summary
---------------------------------------------------------------Estimated junction temperature
|
29C
Ambient temp |
25C
Case temp |
28C
Theta J-A |
21C/W
|
|
|
|
www.xilinx.com
1-877-XLX-CLAS
Page 325
Power Estimation
Facilitator Guide
Summary
Show Slide 352:
Lessons
Overview
XPower Estimator
Using the XPower Analyzer
Software
Summary
2) Power estimations are typically made during which three phases of the
design cycle?
3) What methods can be used to enter activity rates into the XPower
Analyzer software?
Page 326
www.xilinx.com
1-877-XLX-CLAS
Facilitator Guide
Power Estimation
Summary
Show Slide 354:
Summary
Accurate power calculation at an early stage in the design cycle will result
in fewer problems later
The XPower Analyzer software is a utility for estimating the power
consumption and the junction temperature of FPGA and CPLD devices
The XPower Analyzer software uses activity rates to calculate total
average power consumption
www.xilinx.com
1-877-XLX-CLAS
Page 327
Power Estimation
Facilitator Guide
Yes
Page 328
www.xilinx.com
1-877-XLX-CLAS
Facilitator Guide
Add a probe
Time
30 minutes
Process
www.xilinx.com
1-877-XLX-CLAS
Page 329
Facilitator Guide
Lab
Designing for Performance Lab Workbook
!
Page 330
www.xilinx.com
1-877-XLX-CLAS
Facilitator Guide
Time
30 minutes
Process
This optional module describes how to use the Core Inserter and
Core Generator tool flows and plan for debugging with the
ChipScope Pro software.
Lessons
!
Introduction
Importance of Debug
Design Flows
Summary
www.xilinx.com
1-877-XLX-CLAS
Page 331
Facilitator Guide
Introduction
Show Slide 355:
Page 332
www.xilinx.com
1-877-XLX-CLAS
Facilitator Guide
Introduction
Show Slide 357:
Objectives
After completing this module, you will be able to:
www.xilinx.com
1-877-XLX-CLAS
Page 333
Facilitator Guide
Importance of Debug
Show Slide 358:
Lessons
Importance of Debug
ChipScope Pro Software Cores
Design Flows
Summary
*An FPGA design survey conducted by Xilinx indicates that FPGA debug and verification accounts for
nearly half of FPGA design time
ChipScope Pro Software - 359
Page 334
www.xilinx.com
1-877-XLX-CLAS
Facilitator Guide
Importance of Debug
Show Slide 360:
Logic of Debug
Create Design
Modify Design
Probe
Design
Identify Fix
Analyze
Debug Data
Verify Design
Shrink
Shrink overall
overall design
design
time
time by
by 25%
25%
Final Device
ChipScope Pro 20%
OnOn-Chip Verification of
Design
and Debug Tool Time
40%
of
Design
Time
Design
Implementation
Design
Specification
www.xilinx.com
1-877-XLX-CLAS
Page 335
Facilitator Guide
Lessons
Importance of Debug
ChipScope Pro Software Cores
Design Flows
Summary
Page 336
www.xilinx.com
1-877-XLX-CLAS
Facilitator Guide
OPB GPIO
Bridge
IBA/PLBv46-specific bus
analysis core integrated with
EDK
IBA/OPB and IBA/PLB still
supported
Protocol detection
Debug and verify control,
address, and data buses
PLB Bus
OPB Bus
User Logic
Arbiter
Aurora
OPB SDRAM
Core Resources
For what?
You must leave room for the ChipScope Pro software cores in the FPGA
This may require using a larger part in the same package as you will use in
production
www.xilinx.com
1-877-XLX-CLAS
Page 337
Facilitator Guide
Depth
512
Depth
1024
Depth
2048
Depth
4096
1 block RAM
15
2 block RAMs
31
15
4 block RAMs
63
31
15
8 block RAMs
127
63
31
15
16 block RAMs
255
127
63
31
15
32 block RAMs
255
127
63
31
64 block RAMs
255
127
63
255
127
255
text
or
Core
Inserter
ChipScope
ChipScopePro
Pro
Core
CoreGenerator
Generator
Instantiate
InstantiateCores
Coresinto
into
Source
SourceHDL
HDL
Connect
ConnectInternal
InternalSignals
Signals
to
toCore
Core(in
(inSource
SourceHDL)
HDL)
Page 338
Core
Generator
ChipScope
ChipScopePro
ProCore
Core
Inserter
(intonetlist)
netlist)
Inserter(into
Synthesize
Synthesize
Implement
Implement
Download
Downloadand
andDebug
Debug
Using
UsingChipScope
ChipScopePro
ProSoftware
Software
www.xilinx.com
1-877-XLX-CLAS
Synthesize
Synthesize
Facilitator Guide
The ICON core interfaces between the JTAG interface and the capture
cores
Capture cores: customizable cores for creating triggers and data storage
ILA (Integrated Logic Analyzer) core: capture core for HDL designs
ILA/ATC (Integrated Logic Analyzer with Agilent Trace) core: similar to the ILA
core, except data is captured off-chip by the Agilent Trace Port Analyzer
IBA/OPB (Integrated Bus Analyzer for CoreConnect On-Chip Peripheral Bus)
core: capture core for debugging CoreConnect OPB buses
IBA/PLB (Integrated Bus Analyzer for CoreConnect Processor Local Bus)
core: similar to the IBA/OPB core, except for the PLB bus
IBA/PLBv46 supported through EDK
VIO (Virtual Input/Output) core: define and generate virtual I/O ports
www.xilinx.com
1-877-XLX-CLAS
Page 339
Facilitator Guide
Integrated Logic Analyzer (ILA) cores can be added with either the Core
Generator or Core Inserter tools
A design can contain up to 16 ILA cores
Maximum speed of the ILA core
7.1.01i (H.39)
Slowest Middle
Fastest
Speed
Speed
Speed
Grade
Grade
Grade
176 MHz 202 MHz 240 MHz
247 MHz 276 MHz 311 MHz
155 MHz 177 MHz
N/A
152 MHz 177 MHz
N/A
275 MHz 322 MHz 374 MHz
Device
2v1000a
2vp7a
3s400b
3s500e
4vlx25c
6.3.03i (G.38)
Slowest Middle
Fastest
Speed
Speed
Speed
Grade
Grade
Grade
232 MHz 267 MHz 310 MHz
267 MHz 307 MHz 343 MHz
163 MHz 187 MHz
N/A
154 MHz 177 MHz
N/A
246 MHz 289 MHz
N/A
a) Performance degradation due to non-optimal path chosen by ISE software tools (Map CR205561)
b) Performance degradation due to new Spartan-3 FPGA speed files and minor path routing differences
c) Performance improvement due to new Virtex-4 FPGA speed files (including new -12 speed grade)
Input or output
Synchronous or asynchronous
Page 340
www.xilinx.com
1-877-XLX-CLAS
Facilitator Guide
Can only be added with the ChipScope Pro Core Generator tool
Uses no block RAM, only logic
Inputs are like LEDs, for examining signals
Outputs are switches or pushbuttons, for driving signals
www.xilinx.com
1-877-XLX-CLAS
Page 341
Facilitator Guide
Design Flows
Show Slide 372:
Lessons
Importance of Debug
ChipScope Pro Software Cores
Design Flows
Summary
Page 342
ChipScope
ChipScopePro
Pro
Core
CoreGenerator
Generator
Instantiate
InstantiateCores
Coresinto
into
Source
SourceHDL
HDL
Connect
ConnectInternal
InternalSignals
Signals
to
toCore
Core(in
(inSource
SourceHDL)
HDL)
ChipScope
ChipScopePro
ProCore
Core
Inserter
Inserter(into
(intonetlist)
netlist)
Synthesize
Synthesize
Implement
Implement
Download
Downloadand
andDebug
Debug
Using
UsingChipScope
ChipScopePro
ProSoftware
Software
www.xilinx.com
1-877-XLX-CLAS
Synthesize
Synthesize
Facilitator Guide
Design Flows
Show Slide 374:
ChipScope
ChipScopePro
Pro
Core
CoreGenerator
Generator
Instantiate
InstantiateCores
Coresinto
into
Source
SourceHDL
HDL
Connect
ConnectInternal
InternalSignals
Signals
to
toCore
Core(in
(inSource
SourceHDL)
HDL)
Synthesize
Synthesize
ChipScope
ChipScopePro
ProCore
Core
Inserter
Inserter(into
(intonetlist)
netlist)
Synthesize
Synthesize
Implement
Implement
Download
Downloadand
andDebug
Debug
Using
UsingChipScope
ChipScopePro
ProSoftware
Software
www.xilinx.com
1-877-XLX-CLAS
Page 343
Facilitator Guide
Summary
Show Slide 375:
Lessons
Importance of Debug
ChipScope Pro Software Cores
Design Flows
Summary
Summary
Page 344
www.xilinx.com
1-877-XLX-CLAS
Facilitator Guide
Summary
Where Can I Learn More?
!
www.xilinx.com/chipscopepro
View recorded ChipScope Pro software
product demos
Access a 60-day free evaluation version
of the ChipScope Pro tools
Access ChipScope Pro software
documentation (user guide, at-a-glance summary of
features)
Obtain information on Agilent FPGA Dynamic Probe
technology (combine on-chip debug with the power of a
logic analyzer)
www.xilinx.com
1-877-XLX-CLAS
Page 345
Facilitator Guide
Time
60 minutes
Process
This optional lab illustrates how to use the ChipScope Pro software
to add the Analyzer ILA core and prepare for debugging.
General Flow
Page 346
www.xilinx.com
1-877-XLX-CLAS
Facilitator Guide
Lab
Designing for Performance Lab Workbook
!
www.xilinx.com
1-877-XLX-CLAS
Page 347
Course Summary
Facilitator Guide
Course Summary
Purpose
10 minutes
Process
Page 348
Course Summary
www.xilinx.com
1-877-XLX-CLAS
Facilitator Guide
Course Summary
Course Summary
Show Slide 377:
How can you use the Timing Analyzer to improve design performance?
www.xilinx.com
1-877-XLX-CLAS
Page 349
Course Summary
Facilitator Guide
Course Summary
Show Slide 379:
How can you use the Timing Analyzer to improve design performance?
Use the detailed path descriptions to find the root cause of timing errors
Cross-probe to the Floorplan Editor to view the placement of logic
Multicycle and false paths provide the Xilinx implementation tools greater
flexibility in meeting your timing objectives
Path-specific (critical paths) constraints have a higher priority in the
implementation tools
Page 350
www.xilinx.com
1-877-XLX-CLAS
Facilitator Guide
Course Summary
Course Summary
Show Slide 381:
Timing reports are used to identify critical paths and analyze the cause of
timing failures
Multicycle, false path, and critical path timing constraints can be easily
specified via the Advanced tab in the Xilinx Constraints Editor
Advanced implementation options, such as timing-driven packing, extra
effort level, and Xplorer can help increase performance
www.xilinx.com
1-877-XLX-CLAS
Page 351