Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Course Agenda
Optional Topics
– Power Estimation with Xpower
– Advance Implementation Options
– Embedded Solutions with Power PC/MicroBlaze and Embedded Development Kit (EDK)
– Xtreme DSP Solutions with System Generator
• AllianceCORE
Features
Functionality
Pinout
Resource utilization
compxlib.exe
XilinxCoreLib
Compile library for
behavioral simulation
(one time only)
Generate
Core
.EDN
.VHD,
.VHO, .V
Core generation
.xco
.VEO and integration
Instantiate
Simulate Implement
Timing Closure with Timing Analyzer - 2 © 2003 Xilinx, Inc. All Rights Reserved
Achieving Timing Closure
Timing Closure with Timing Analyzer - 4 © 2003 Xilinx, Inc. All Rights Reserved
Outline
• Timing Reports
• Interpreting Timing Reports
• Report Options
• Summary
Timing Closure with Timing Analyzer - 5 © 2003 Xilinx, Inc. All Rights Reserved
Timing Reports
• Timing reports enable you to determine how and why constraints were
not met
– Reports contain detailed descriptions of paths that fail their constraints
• The Project Navigator can create timing reports at two points in the
design flow
– Post-Map Static Timing Report
– Post-Place & Route Static Timing Report
• The Timing Analyzer is a utility for creating and reading timing reports
Timing Closure with Timing Analyzer - 6 © 2003 Xilinx, Inc. All Rights Reserved
Using the Timing Analyzer
• Create and open a report in the
Timing Analyzer by double-
clicking on Post-Place & Route
Static Timing Report
• Open a plain text version of the
report
• Start the Timing Analyzer to
create custom reports by double-
clicking on Analyze Post-Place &
Route Static Timing (Timing
Analyzer)
Timing Closure with Timing Analyzer - 7 © 2003 Xilinx, Inc. All Rights Reserved
Timing Analyzer GUI
• Hierarchical browser
– Quickly navigate to specific
report sections
• Current position in the report
– Identifies the portion of the
report that is displayed in the
text window
• Report text
– Links to the Timing
Improvement Wizard,
Interactive Data Sheet and
Floorplanner, highlighted in blue
Timing Closure with Timing Analyzer - 8 © 2003 Xilinx, Inc. All Rights Reserved
Cross Probing
• Shows the placement of logic in a
delay path
• To enable cross probing, use the
command: View → Floorplanner
for Cross probing
• Click highlighted text
– The corresponding logic is
selected in the Floorplanner
Timing Closure with Timing Analyzer - 9 © 2003 Xilinx, Inc. All Rights Reserved
Timing Report Structure
• Timing Constraints
– Number of paths covered and number of paths that failed for each constraint
– Detailed descriptions of the longest paths
• Data Sheet Report
– Setup, hold, and clock-to-out times for each I/O pin
• Timing Summary
– Number of errors, Timing Score
• Timing Analyzer Settings
– Allows you to easily duplicate the report
Timing Closure with Timing Analyzer - 10 © 2003 Xilinx, Inc. All Rights Reserved
Report Example
• Constraint summary
– Number of paths covered
– Number of timing errors
– Length of critical path
• Detailed path description
– Delay types are described
in the data sheet
– Worst-case conditions
assumed, unless pro-rated
• Total delay
– OFFSET paths have two parts
– Logic/routing breakdown
Timing Closure with Timing Analyzer - 11 © 2003 Xilinx, Inc. All Rights Reserved
Outline
• Timing Reports
• Interpreting Timing Reports
• Report Options
• Summary
Timing Closure with Timing Analyzer - 12 © 2003 Xilinx, Inc. All Rights Reserved
Estimating Design
Performance
• Performance estimates are available before implementation is complete
• Synthesis report
– Logic delays are accurate
– Routing delays are estimated based on fanout
– Reported performance generally accurate to within 20 percent
• Post-Map Static Timing Report
– Logic delays are accurate
– Routing delays are estimated based on the fastest possible routing resources
– Use the 60/40 rule to get a more realistic performance estimate
Timing Closure with Timing Analyzer - 13 © 2003 Xilinx, Inc. All Rights Reserved
60/40 Rule
• A rule-of-thumb to determine whether timing constraints are reasonable
• Open the Post-Map Static Timing Report
• Look at the percentage of the timing constraint that is used up by logic
delays
– 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)
Timing Closure with Timing Analyzer - 14 © 2003 Xilinx, Inc. All Rights Reserved
Analyzing Post-Place &
Route Timing
• There are many factors that contribute to timing errors, including:
– Neglecting synchronous design rules or using incorrect HDL coding style
– Poor synthesis results (too many logic levels in the path)
– Inaccurate or incomplete timing constraints
– Poor logic mapping or placement
• Each root cause has a different solution
– Rewrite HDL code
– Add timing constraints
– Resynthesize or re-implement with different software options
• Correct interpretation of timing reports can reveal the most likely cause
– And therefore, the most likely solution
Timing Closure with Timing Analyzer - 15 © 2003 Xilinx, Inc. All Rights Reserved
Example: Poor Placement
Data Path: source to dest
Location Delay type Delay(ns) Logical Resource(s)
------------------------------------------------- -------------------
U29.IQ1 Tiockiq 0.382 source
SLICE_X0Y65.F2 net (fanout=7) 1.921 net_1
SLICE_X0Y65.X Tilo 0.291 lut_1
SLICE_X15Y1.G2 net (fanout=1) 2.359 net_2
SLICE_X15Y1.Y Tilo 0.291 lut_2
SLICE_X15Y1.F2 net (fanout=1) 0.008 net_3
SLICE_X15Y1.X Tilo 0.291 lut_3
SLICE_X15Y2.DY net (fanout=1) 0.108 net_4
SLICE_X15Y2.CLK Tdyck 0.001 dest
------------------------------------------------- ------------------------------
Total 5.652ns (1.256ns logic, 4.396ns route)
(22.2% logic, 77.8% route)
Timing Closure with Timing Analyzer - 16 © 2003 Xilinx, Inc. All Rights Reserved
Poor Placement: Solutions
• Timing-driven Map, if the placement is caused by packing unrelated logic
together
– Cross-probe to the Floorplanner to see what has been packed together
– Timing-driven Map is covered in the Advanced Implementation Options
module
• PAR extra effort or MPPR options
– Covered in the Advanced Implementation Options module
• Floorplanning or RLOC constraints, if you have the skill
– Covered in the Advanced FPGA Implementation course
Timing Closure with Timing Analyzer - 17 © 2003 Xilinx, Inc. All Rights Reserved
Example: High Fanout
Data Path: source to dest
Delay type Delay(ns) Logical Resource(s)
---------------------------- -------------------
Tcko 0.382 source
net (fanout=87) 4.921 net_1
Tilo 0.291 lut_1
net (fanout=1) 0.080 net_2
Tilo 0.291 lut_2
net (fanout=2) 0.523 net_3
Tilo 0.291 lut_3
net (fanout=1) 0.108 net_4
Tdyck 0.001 dest
---------------------------- --------------------------------------
Total 6.888ns (1.256ns logic, 5.632ns route)
(18.2% logic, 81.8% route)
Timing Closure with Timing Analyzer - 18 © 2003 Xilinx, Inc. All Rights Reserved
High Fanout: Solutions
• Most likely solution is to duplicate the source of the high-fanout net
– In this example, the net is the output of a flip-flop, so the solution is to
duplicate the flip-flop
– If the net is driven by combinatorial logic, it may be more difficult to locate
the source of the net in the HDL code
Timing Closure with Timing Analyzer - 19 © 2003 Xilinx, Inc. All Rights Reserved
Example: Too Many
Logic Levels
Data Path: source to dest
Delay type Delay(ns) Logical Resource(s)
---------------------------- -------------------
Tcko 0.314 source
net (fanout=7) 1.221 net_1
Tilo 0.291 lut_1
net (fanout=1) 0.180 net_2
Tilo 0.291 lut_2
net (fanout=1) 0.423 net_3
Tilo 0.291 lut_3
net (fanout=1) 0.123 net_4
Tilo 0.291 lut_4
net (fanout=1) 0.610 net_5
Tilo 0.291 lut_5
net (fanout=1) 0.533 net_6
Tilo 0.291 lut_6
net (fanout=1) 0.408 net_7
Tdyck 0.001 dest
---------------------------- --------------------------------------
Total 5.559ns (2.129ns logic, 3.430ns route)
(38.3% logic, 61.7% route)
Timing Closure with Timing Analyzer - 20 © 2003 Xilinx, Inc. All Rights Reserved
Too Many Logic
Levels: Solutions
• The implementation tools cannot do much to improve performance
• The netlist must be altered to reduce the amount of logic between
flip-flops
• Possible solutions:
– Check whether the path is a multi-cycle path
• If it is, add a multi-cycle path constraint
– Use the retiming option during synthesis to distribute logic more evenly
between flip-flops
– Confirm that good coding techniques were used to build this logic
(no nested IF or CASE statements)
– Add a pipeline stage
Timing Closure with Timing Analyzer - 21 © 2003 Xilinx, Inc. All Rights Reserved
Example: I/O Timing
Clock Path: clk to source_ff
Delay type Delay(ns) Logical Resource(s)
---------------------------- -------------------
Tiopi 0.669 clk
clk_BUFGP/IBUFG
net (fanout=1) 0.019 clk_BUFGP/IBUFG
Tgi0o 0.802 clk_BUFGP/BUFG.GCLKMUX
clk_BUFGP/BUFG
net (fanout=226) 0.307 clk_BUFGP
---------------------------- ------------------------------
Total 1.797ns (1.471ns logic, 0.326ns route)
(81.9% logic, 18.1% route)
Timing Closure with Timing Analyzer - 22 © 2003 Xilinx, Inc. All Rights Reserved
I/O Timing: Solutions
• Use a DCM to remove clock distribution delay
• Register all top-level inputs and outputs
– IOB flip-flops have the best timing
• Increase the slew rate or drive strength on outputs
– Only available for LVCMOS and LVTTL I/O standards
Timing Closure with Timing Analyzer - 23 © 2003 Xilinx, Inc. All Rights Reserved
Outline
• Timing Reports
• Interpreting Timing Reports
• Report Options
• Summary
Timing Closure with Timing Analyzer - 24 © 2003 Xilinx, Inc. All Rights Reserved
Creating Custom Reports
• The Post-Map and Post-Place & Route Static Timing Reports are usually
sufficient timing analysis tools
• Custom reports can be created with the Timing Analyzer to:
– *Show detailed path descriptions for more timing paths
– *Analyze specific paths that may be unconstrained
– Analyze designs that contain no constraints
– Change the constraints or design parameters to perform “what-if” analysis
Timing Closure with Timing Analyzer - 25 © 2003 Xilinx, Inc. All Rights Reserved
Types of Timing Reports
• Analyze Against Timing Constraints
– Compares design performance with timing constraints
– Most commonly used report format
• Used for Post-Map and Post-Place & Route Static Timing Reports if design contains
constraints
• Analyze Against User Specified Paths by Defining Clock and I/O Timing
– Allows you to define PERIOD and OFFSET constraints on-the-fly
– Use with designs that have no constraints defined
Timing Closure with Timing Analyzer - 26 © 2003 Xilinx, Inc. All Rights Reserved
Timing Constraints Tab
• After selecting a Timing Analyzer
report, you can select from various
report options
• Report Failing Paths: Lists only the
paths failing to meet your specified
timing constraints
• Report Unconstrained Paths: Allows
you to list some or all of the
unconstrained paths in your design
• You can also select which constraints
you want reported
Timing Closure with Timing Analyzer - 27 © 2003 Xilinx, Inc. All Rights Reserved
Options Tab
• Speed grade
– Generate new timing information
without re-implementing
• Constraint Details
– Specify the number of detailed
paths reported per constraint
– Report details of hold violations
• Timing report contents
• Prorating
– Specify your own worst-case
environment
Timing Closure with Timing Analyzer - 28 © 2003 Xilinx, Inc. All Rights Reserved
Filter Paths by Net Tab
• Restrict which paths are
reported by selecting
specific nets
• Each net is assigned to
be included by default
• Net Filter values:
– Exclude paths
containing this net
– Include Only paths
containing this net
– Default
Timing Closure with Timing Analyzer - 29 © 2003 Xilinx, Inc. All Rights Reserved
Path Tracing Tab
• Restrict which paths are
reported by selecting path end
points or path types
• In this example, if you
had an OFFSET OUT
constraint associated with this
design, the report would only
include paths associated with
the TENSOUT0 and
TENSOUT1 pins
Timing Closure with Timing Analyzer - 30 © 2003 Xilinx, Inc. All Rights Reserved
Outline
• Timing Reports
• Interpreting Timing Reports
• Report Options
• Summary
Timing Closure with Timing Analyzer - 31 © 2003 Xilinx, Inc. All Rights Reserved
Review Questions
• To which resources is the timing report linked?
Timing Closure with Timing Analyzer - 32 © 2003 Xilinx, Inc. All Rights Reserved
Answers
• To which resources is the timing report linked?
– Timing Improvement Wizard on the Web
– Interactive Data Sheet on the Web
– Floorplanner for cross-probing
• List the possible causes of timing errors
– Neglecting synchronous design rules or using incorrect HDL coding style
– Poor synthesis results (too many levels of logic)
– Inaccurate or incomplete timing constraints
– Poor logic mapping or placement
Timing Closure with Timing Analyzer - 33 © 2003 Xilinx, Inc. All Rights Reserved
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 the Floorplanner to view the placement of logic in a
timing path
• The Timing Analyzer can generate various types of reports for specific
circumstances
Timing Closure with Timing Analyzer - 34 © 2003 Xilinx, Inc. All Rights Reserved
Where Can I Learn More?
• Online Help
– Help → Timing Analyzer Help Contents
– Help button available in the Options GUIs
• Timing Improvement Wizard: http://support.xilinx.com → Problem
Solvers
– Decision-tree process guides you to the suggested next step to achieve
timing closure
Timing Closure with Timing Analyzer - 35 © 2003 Xilinx, Inc. All Rights Reserved
Agenda
Section 1 : Optimize Your Design for Xilinx Architecture
– Core Generator System
• Lab : Core Generator System Flow
CLK
D Q D Q OUT2
BUS [7..0]
CDATA
CLK
D Q D Q OUT2
BUS [7..0]
CDATA
NET_A
D Q D Q
FLOP1 FLOP2
MYCTR D Q
reg
D Q
reg
Step 2
Select Element Type
Step 3
Select Nets or 3-state
Buffers and click on Add
data_rising
data_falling
t = -3 0ns 2 5
• Input data is valid 3 ns before rising and falling edge
– PERIOD constraint is 10 ns, initial edge rising, 50-percent duty cycle
• Create groups of flip-flops for each clock edge
• For inputs clocked on a rising edge, OFFSET = IN 3 ns BEFORE clk;
• For inputs clocked on a falling edge, OFFSET = IN –2 ns BEFORE clk;
– 2 ns after initial (rising) edge = 3 ns before falling edge
clk 3ns
10 ns 3ns
data_rising
data_falling
t = 0ns 3 8
• Output data must be valid 3 ns after rising and falling edge
– PERIOD constraint is 10 ns, initial edge rising, 50-percent duty cycle
• Create groups of flip-flops for each clock edge
• For outputs clocked on a rising edge, OFFSET = OUT 3 ns AFTER clk;
• For outputs clocked on a falling edge, OFFSET = OUT 8 ns AFTER clk;
– 8 ns after initial (rising) edge = 3 ns after falling edge
IN D Q D Q D Q D Q
OUT
C C C C
CLK
RESET_A
RESET_B
D Q D Q
OUT
CLK
DQ D Q D Q D Q
OUT1
CLK_A
CLK_B
PERIOD CLK_A 5 ns
PERIOD CLK_B
D Q D Q D Q D Q
OUT1
CLK_A
CLK_B
example
– Registers in COUT14 are
updated every 4 clock cycles
– Paths between these registers
are multi-cycle paths
TC CE
CLK PRE2 COUT14
Q0 Q1 Q2 Q3 Q4 Q14 Q15
TC CE
CLK PRE2 COUT14
Q0 Q1 Q2 Q3 Q4 Q14 Q15
Control Status
Register Register
Control_Enable Status_Enable
BIDIR_PAD(7:0)
BIDIR_BUS(7:0)
Control Status
Registers Registers
Control_Enable Status_Enable
BIDIR_PAD(7:0)
BIDIR_BUS(7:0)
Control Status
Registers Registers
Control_Enable Status_Enable
BIDIR_PAD(7:0)
BIDIR_BUS(7:0)
FloorPlanner
ucf NGDBUILD
Floorplanner ngd
MAP
fnf
ncd, pcf
PAR
ncd
• Floorplanner:
– More advanced tool with placement capabilities beyond that of PACE
• Create groups of logic
• Constrain logic to a specific location (hard location constraints - hard LOC)
• Constrain logic from a current placement (hard LOC)
• View and edit placed design
• Perform packing of logic resources
• Used for cross-probing with Timing Analyzer
– PACE is much better for specifying pin constraints
– Specifying area constraints is similar to PACE
Design Nets
Lists all the nets in the Floorplan (in back)
design Shows current placement
constraints and design edits
2 Path
Pathappears
appears
1 Click
in
inFloorplanner
Floorplanner
Clickon
onpath
path
in Timing Analyzer
in Timing Analyzer
Data Buses
Data Buses
•
Control Signals
would use for smaller chips
Control Signals
• In addition, consider the following:
– Group control signals and data Data Flow
buses near related internal logic
– High-fanout signals may be placed
near the middle of the chip, for
easy access to horizontal long
lines
LSB
• In this situation, you are only interested in constraining the slices and
3-state buffers
– Hand-place the block RAMs and block multipliers
Package Pins
Design Object List Legend
Displays elements
contained in the
group that are
selected in the Device Architecture
Design Hierarchy Allows area
window constraint
specification
• Introduction
• Floorplanning Procedures
• Area Constraints & I/O Layout
• PACE
• Summary
• Appendix:
– RPM Core
– Overcoming MAP/PAR Limitations
– Pseudo Guide File with Floorplanner
– Additional I/O Considerations
Design Hierarchy
Displays color-coded hierarchical
blocks. Traverse hierarchy to view
any component in design
Design Nets
Lists all nets in the design
Placement
Floorplan (in back) Shows the current design layout from the
Shows the current placement implementation tools
constraints and design edits
VHDL: Verilog:
process ( clk ) always@(posedge CLK)
begin OUT <= A & B;
if ( clk' event and clk = '1' ) then
Q <= (A AND B);
end if;
end process;
6 7 6-7
0 1 0-1
Incremental & Modular Design Techniques - 2 © 2003 Xilinx, Inc. All Rights Reserved
Incremental and
Modular Design
Techniques
Incremental & Modular Design Techniques - 4 © 2003 Xilinx, Inc. All Rights Reserved
Outline
• Incremental Design Introduction
• Modular Design Introduction
• Incremental Design Flow
• Modular Design Flow
• IDT/MDT Prerequisites and Synthesis
• Guide Files
• Summary
Incremental & Modular Design Techniques - 5 © 2003 Xilinx, Inc. All Rights Reserved
What is Incremental Design?
IDT
Top-Level
Block Top
Incremental & Modular Design Techniques - 6 © 2003 Xilinx, Inc. All Rights Reserved
Why Use
Incremental Design?
• The first expectation is that the recompiled design must meet timing
– Assuming the original design met timing
• The second expectation is that the recompile (synthesis, place&route) is
faster than a full compile
– Allowing you to increase the number of bug fixes per day
• The basic concept is to maintain “good” results
– In synthesis you will only resynthesize the changed blocks
– Then the implementation (place&route) tools will have to run placement and
routing on only the changed portions of your design
• Maintaining the placement and routing of unchanged blocks
Incremental & Modular Design Techniques - 7 © 2003 Xilinx, Inc. All Rights Reserved
How?
• Resynthesize only the changed block Top-Level
(Block A2) Block Top
as a guide file
Sub-Block Sub-Block Sub-Block Sub-Block
– The guide file will match Block A1 Block A2 Block B1 Block B2
all previous routing and
placement information for the
unchanged blocks and redo
placement and routing for the
changed block (Block A2)
Incremental & Modular Design Techniques - 8 © 2003 Xilinx, Inc. All Rights Reserved
IDT Case Study 1
• Case 1: Packet Processing Design:
– XC2V500 -4 FG456
– Utilization:
• 92% of Slices
• 67% of FFs
– Performance Objectives:
• 25 MHz clock
– Incremental design techniques results:
• Implementation time before IDT implemented:
– ~1.5 hours
• Implementation after IDT implemented (after each incremental design change):
– ~20 minutes
Incremental & Modular Design Techniques - 9 © 2003 Xilinx, Inc. All Rights Reserved
IDT Case Study 2
• Case 2: Routing algorithm
– XC2V3000 -4 FF1152
– Utilization:
• 85% of Slices
• 59% of FFs
– Performance Objectives:
• 112 MHz clock
– Incremental design techniques results:
• Implementation time before IDT implemented:
– ~8 hours
• Implementation after IDT implemented (after each incremental design change):
– 2.5 hours
Incremental & Modular Design Techniques - 10 © 2003 Xilinx, Inc. All Rights Reserved
Outline
• Incremental Design Introduction
• Modular Design Introduction
• Incremental Design Flow
• Modular Design Flow
• IDT/MDT Prerequisites and Synthesis
• Guide Files
• Summary
Incremental & Modular Design Techniques - 11 © 2003 Xilinx, Inc. All Rights Reserved
What is Modular Design?
MDT
Top-Level
Block Top
Team A Team B
Incremental & Modular Design Techniques - 12 © 2003 Xilinx, Inc. All Rights Reserved
Why Use
Modular Design?
• Team-based design
– Designers want to:
• Implement design in parallel, piece-wise fashion: Divide and conquer
• Optimize each block separately, tuning each towards their unique design goals
– Focus on smaller blocks
• Achieve perfectly repeatable, predictable results on unchanged modules:
Lock down and forget
– If this is your only goal, incremental design techniques are likely to
provide a more beneficial solution than modular design
• Save time
Incremental & Modular Design Techniques - 13 © 2003 Xilinx, Inc. All Rights Reserved
A Consistent Spectrum
of Flows
Divide and Conquer Methodologies
•True
•Simplest
•Simplest
•Developed for quick
•Quick runtimes for •Truebottom-up
bottom-upflow:
flow:
•Changes runtimes for small modules implemented
•Changesstill
still small design modules
separately
implemented
“uncontrolled” design changes separately
“uncontrolled” changes •Most
•Simple
•Simpleflow
flow •Mostcomplex
complex
•Module
requirements
requirements •ModuleTSPECs
TSPECsare
are
required
required
Incremental & Modular Design Techniques - 14 © 2003 Xilinx, Inc. All Rights Reserved
How?
• Create a layout that identifies where to place each design block on the die
• Each block is fully implemented independently of one another
• All blocks are combined using their individual implementation information
– Via Guided implementation files (NCD)
Chip Layout
Top-Level
Block Top
Block
A
Block
Sub-Block Sub-Block Sub-Block
Block A Block B Block C C
Block
Sub-Block Sub-Block Sub-Block Sub-Block B
Block A1 Block A2 Block B1 Block B2
Incremental & Modular Design Techniques - 15 © 2003 Xilinx, Inc. All Rights Reserved
Modular Design Tools
• The modular design tools are available as part of all ISE toolsets starting
with 5.2
• Currently, modular design tools can only be used via the command line
Incremental & Modular Design Techniques - 16 © 2003 Xilinx, Inc. All Rights Reserved
Skills Check
Incremental & Modular Design Techniques - 17 © 2003 Xilinx, Inc. All Rights Reserved
Review
• Describe how Incremental Design Techniques differ from Modular
Design Techniques
Incremental & Modular Design Techniques - 18 © 2003 Xilinx, Inc. All Rights Reserved
Answer
• Describe how Incremental Design Techniques differ from Modular
Design Techniques
– Incremental Design Techniques: used for rapid bug fixes where changes
are limited to a single design block
– Modular Design Techniques: used for team based designs where individual
design blocks are implemented independently by individual teams
Incremental & Modular Design Techniques - 19 © 2003 Xilinx, Inc. All Rights Reserved
Outline
• Incremental Design Introduction
• Modular Design Introduction
• Incremental Design Flow
• Modular Design Flow
• IDT/MDT Prerequisites and Synthesis
• Guide Files
• Summary
Incremental & Modular Design Techniques - 20 © 2003 Xilinx, Inc. All Rights Reserved
Incremental Design Flow
Incremental & Modular Design Techniques - 21 © 2003 Xilinx, Inc. All Rights Reserved
Incremental Design: Step 1
nPartition boundaries to match the (incremental) blocks that you would
like to preserve
– The synthesis tool must not be allowed to optimize across these boundaries
– XST, LS, Synplify pre 7.2: Individual netlists for each incremental block
– Synplify using Multi-Point synthesis: One netlist for entire design
– Typically, you would create between two and eight blocks
Incremental & Modular Design Techniques - 22 © 2003 Xilinx, Inc. All Rights Reserved
Incremental Design: Step 1
nIn this example, we have circled the sub-blocks for which we want to
incrementally apply changes
– Each circled block indicates an incremental block
• Generally results in an individual netlist
• Each incremental block will require floorplanning
Top-Level
Block Top
Incremental & Modular Design Techniques - 23 © 2003 Xilinx, Inc. All Rights Reserved
Incremental Design: Step 2
oSynthesize design
– Synthesize each incremental design block
• Generally, write out individual netlists (EDIF, NGC) for each incremental block
• For incremental block netlists, you need to disable I/O insertion (I/O pads and
buffers)
– Apply synthesis attribute: do not insert clock buffers
Incremental & Modular Design Techniques - 24 © 2003 Xilinx, Inc. All Rights Reserved
Incremental Design: Step 3
pUse Floorplanner (or PACE) to layout AREA constraints for each of the
preserved blocks
– Use non-overlapping area constraints
Incremental & Modular Design Techniques - 25 © 2003 Xilinx, Inc. All Rights Reserved
Incremental Design: Step 4
q Implement the design until timing objectives
are met
– Using the floorplan information contained in the
UCF
– This may require several implementation
iterations with a high effort level
• Additionally, it may have required the use of
Multi-Pass Place and Route (MPPR)
– Once this step is complete we want to maintain
these “good” results
• Utilize incremental design techniques
Incremental & Modular Design Techniques - 26 © 2003 Xilinx, Inc. All Rights Reserved
Incremental Design: Step 5
rAs changes are required, make changes incrementally: one module at
a time
– Resynthesize only the incremental block that changed
Incremental & Modular Design Techniques - 27 © 2003 Xilinx, Inc. All Rights Reserved
Incremental Design: Step 6
s Incremental Implementation
– Reimplement using guide files
(NCD)
• As a guide, apply both the previous
map NCD file and the par NCD file
• All previous blocks that did not
change will retain placement and
routing
• Once all the unchanged logic is
placed and routed, the new logic
will be placed and routed
Incremental & Modular Design Techniques - 28 © 2003 Xilinx, Inc. All Rights Reserved
Outline
• Incremental Design Introduction
• Modular Design Introduction
• Incremental Design Flow
• Modular Design Flow
• IDT/MDT Prerequisites and Synthesis
• Guide Files
• Summary
Incremental & Modular Design Techniques - 29 © 2003 Xilinx, Inc. All Rights Reserved
Modular Flow
Incremental & Modular Design Techniques - 30 © 2003 Xilinx, Inc. All Rights Reserved
Phase 1: Initial Budgeting
Goals
• Three goals:
– Position global logic in the top-level design outside of the other modules
– Size and position each module in the target device using the floorplanner to
create Area Groups
– Position the I/O ports of each module in such a way as to guide the
implementation tools on the flow of the signals from one module to another
Incremental & Modular Design Techniques - 31 © 2003 Xilinx, Inc. All Rights Reserved
Phases 2 to 3:
Implementation
• Phase 2:
– Each module is implemented separately
• This allows each team/designer to individually implement their portion of the
design until timing goals are met
• Phase 3:
– Files from the first two steps are merged together
– During this step, the implementation tools will primarily be routing the nets
between the individual blocks
Incremental & Modular Design Techniques - 32 © 2003 Xilinx, Inc. All Rights Reserved
Required Directory Structure
• Under your “work” directory you will create the following structure:
– /<top_level_directory>
• Will contain top-level NGO file and UCF which are used for all active module
implementations
– /<active_moduleA_directory>, /<active_moduleB_directory>…
• One directory for each active module
• This will contain the active module implementation information
– /<pim_directory>
• Stores “guide” information from each active module implementation
Incremental & Modular Design Techniques - 33 © 2003 Xilinx, Inc. All Rights Reserved
Phase 1A: Create NGD
• Creating an NGD file of the top-level design without
any module implementation information
Incremental & Modular Design Techniques - 34 © 2003 Xilinx, Inc. All Rights Reserved
Phase 1B: Top Level Timing
Constraints
• Add top level timing constraints
constraints_editor <design_name>.ngd
– At this point, clocks may not drive any loads, hand edit constraints in UCF
to specify clocks
Incremental & Modular Design Techniques - 35 © 2003 Xilinx, Inc. All Rights Reserved
Phase 1C: Floorplan
• Floorplan
floorplanner <design_name>.ngd
Incremental & Modular Design Techniques - 36 © 2003 Xilinx, Inc. All Rights Reserved
Phase 2A: Setup Active
Module
Active Module Implementation
• Setup Active Module
– Synthesize each module and sub-blocks in separate module directories
– Copy top level UCF to module directory and rename to <module_name>.ucf
• This allows you to maintain common top level constraints but also add module
level specific constraints
Incremental & Modular Design Techniques - 37 © 2003 Xilinx, Inc. All Rights Reserved
Phase 2A: Setup Active
Module (Continued)
Active Module Implementation
• Setup Active Module
– Run NGDBUILD on active module(s)
ngdbuild -uc <module_name>.ucf -modular module -active <module_name>
<top_level_directory>/<design_name>.ngo
– <top_level_directory>/<design_name>: Top-level ngo file used as an input file for
the Active Module Implementation phase
Incremental & Modular Design Techniques - 38 © 2003 Xilinx, Inc. All Rights Reserved
Phase 2B: Implement and
Publish Active Module
Active Module Implementation
• Implement and Publish Active Module
– Run MAP, PAR, and TRACE until timing is met:
map <design_name>.ngd
par -w <design_name>.ncd <design_name>_routed.ncd
– No Modular specific commands
– Apply map and par commands as necessary
trce <design_name>_routed.ncd
Incremental & Modular Design Techniques - 39 © 2003 Xilinx, Inc. All Rights Reserved
Phase 3: Final Assembly
• To incorporate all the logic for each module into the top-level design, run
ngdbuild as follows:
ngdbuild -modular assemble -pimpath pim_directory_path <design_name>.ngo
• Run MAP, PAR, and TRACE:
map <design_name>.ngd
par -w <design_name>.ncd <design_name>_routed.ncd
– No Modular specific commands
– Apply map and par commands as necessary
trce <design_name>_routed.ncd
Incremental & Modular Design Techniques - 40 © 2003 Xilinx, Inc. All Rights Reserved
Outline
• Incremental Design Introduction
• Modular Design Introduction
• Incremental Design Flow
• Modular Design Flow
• IDT/MDT Prerequisites and Synthesis
• Guide Files
• Summary
Incremental & Modular Design Techniques - 41 © 2003 Xilinx, Inc. All Rights Reserved
IDT/MDT Prerequisites
• Basic guidelines
– Well-partitioned hierarchical design
– Well-defined data flow
– Well-defined port interaction
– Registered leaf-level hierarchical boundaries
Incremental & Modular Design Techniques - 42 © 2003 Xilinx, Inc. All Rights Reserved
Partitioning
• The design must have an effective functional and physical partition into
proper modules
– The design should be broken into functional hierarchical blocks that can be
placed onto the chip with a well-defined physical flow
– Separate structural levels and RTL levels of the code
• Do not mix the two types of HDL in a single entity/module
• Structural -- instantiations of lower-level blocks
• RTL -- leaf-level code where functionality is created
• This is not new to designing, but it does require a top-down design
approach be used with some up-front budgeting
Incremental & Modular Design Techniques - 43 © 2003 Xilinx, Inc. All Rights Reserved
Hierarchy Preservation
• Synthesis tool should preserve hierarchy
– Primarily an IDT requirement, but also useful for MDT
• Why?
– If the hierarchy is flattened, any change to any single piece of code will
require the entire design to be resynthesized
– This will cause a ripple effect; any small change will effectively change the
entire netlist
– Also, to effectively use incremental design, the hierarchy must be in place
Incremental & Modular Design Techniques - 44 © 2003 Xilinx, Inc. All Rights Reserved
Hierarchy Preservation
• Exemplar, Synplicity, Synopsys, and XST synthesis tools all have the
capability to preserve the hierarchy
• Synopsys:
– Set checkbox to Preserve Hierarchy in Implementation
• Synplicity:
– Set syn_netlist_hierarchy = TRUE on top-level entity/module
– Set syn_hier hard for each level of hierarchy
• Exemplar:
– Optimize tab → Hierarchy box → Preserve button
– Set checkbox to Optimize single level of hierarchy
• XST:
– Properties → Check Keep Hierarchy
Incremental & Modular Design Techniques - 45 © 2003 Xilinx, Inc. All Rights Reserved
Data-Flow
• What is well-defined data-flow?
Block A1
• A large portion of the blocks in Block B2
the design should not include
global logic Block A2
Incremental & Modular Design Techniques - 46 © 2003 Xilinx, Inc. All Rights Reserved
Port Interaction
• What is meant by well-defined port interaction?
Incremental & Modular Design Techniques - 47 © 2003 Xilinx, Inc. All Rights Reserved
Registered Boundaries
• Registering the outputs of each leaf-level boundary eliminates the need
for synthesis tools to optimize across boundaries
– This is also a fundamental aspect of synchronous design methodology
Incremental & Modular Design Techniques - 48 © 2003 Xilinx, Inc. All Rights Reserved
Modular Design Guidelines
• MDT specific guidelines:
– All lower-level modules must be declared
– Modular design supports only two levels of hierarchy
• The top level and its sub-blocks
• IDT can have multiple levels
– You cannot make multiple instantiations of the same block
• This requires copying and renaming the entity/module for each unique instance
• IDT allows this, assuming the synthesis tools support it (XST does not)
– IOB registers must be inferred in the top-level code
– Three-state logic inference should occur inside of one level
• The 3-state logic should not span several different hierarchical blocks
– Three-state signals that are outputs of a block must be declared as inout
Incremental & Modular Design Techniques - 49 © 2003 Xilinx, Inc. All Rights Reserved
IDT Specific Guidelines
• For incremental design to be effective, the full design netlist must change
very little for each iteration
– This requires the synthesis tool to limit changes to a single incremental
design block
• You will generally generate a netlist file for each incremental block
• Select the top-level EDIF/NGC in the Xilinx implementation tools, and the
implementation tools will find the remaining files in the same directory
– Or you can provide the search directory information (-sd) if each netlist is in
a separate directory/folder
Incremental & Modular Design Techniques - 50 © 2003 Xilinx, Inc. All Rights Reserved
Incremental Synthesis
LeonardoSpectrum
Incremental & Modular Design Techniques - 51 © 2003 Xilinx, Inc. All Rights Reserved
Incremental Synthesis
Synplify
Incremental & Modular Design Techniques - 52 © 2003 Xilinx, Inc. All Rights Reserved
Incremental Synthesis
XST
Incremental & Modular Design Techniques - 53 © 2003 Xilinx, Inc. All Rights Reserved
Outline
• Incremental Design Introduction
• Modular Design Introduction
• Incremental Design Flow
• Modular Design Flow
• IDT/MDT Prerequisites and Synthesis
• Guide Files
• Summary
Incremental & Modular Design Techniques - 54 © 2003 Xilinx, Inc. All Rights Reserved
Guide File
• What is a guide file?
– It is a file from a previous implementation that is used to guide a more recent
implementation
– The map.ncd file contains mapping (packing) information for slices, IOBs, etc.
– The <par>.ncd file contains placement and routing information
• What happens during a guided implementation?
1. The implementation tools try to match names of internal resources between the
guide file and the current netlist
2. When the tools find a match, they place that logic into the same location as it
was located in the guide file
3. Routing is also maintained when matching signals between logic is found
Incremental & Modular Design Techniques - 55 © 2003 Xilinx, Inc. All Rights Reserved
Checkerboard Guide File
• If you do NOT use incremental or modular
design techniques, guide will result in a
“checkerboard” guide file
– A checkerboard of changes
• Black represents unchanged slices
in the design
• Yellow represents the changed slices
in the design
– A checkerboard guide file is one in which
many small changes have occurred to the
placed and routed design
– This results in less flexibility for PAR to
place-and-route the changed components
Incremental & Modular Design Techniques - 56 © 2003 Xilinx, Inc. All Rights Reserved
Incremental Design
Guide File
• When you use incremental design
techniques, all design changes are
limited to one area on the die
– Due to floorplanning
• Incremental guiding will not use guide
information for any incremental block
that changes (AREA_GROUP)
– This gives PAR more flexibility in
re-placing and routing that block
• PAR is not hindered by a checkerboard
guide file
Incremental & Modular Design Techniques - 57 © 2003 Xilinx, Inc. All Rights Reserved
Guide File Requirements
• Limited changes to the netlist
– For the checkerboard approach, the netlist should change less than ten
percent
– For an incremental design approach, only a single incremental block should
change
• To satisfy this requirement in a HDL-based design, there is a single
recommendation:
– Recompile only the input HDL files where the changes are made
• This can be accomplished by adhering to the rules in the previous sections
Incremental & Modular Design Techniques - 58 © 2003 Xilinx, Inc. All Rights Reserved
Guide File Use
• Guide is used during mapping, placement, and routing phases of
implementation
• In Project Navigator, right-click Implement Design → Properties →
Place & Route Properties tab
– Use the Guide Design File, and browse to the location of the previous
implementation NCD file that you want to use as the guide file
• <design_name>.ncd: Placed & routed NCD file that contains mapping,
placement, and routing information
• <design_name>_map.ncd: Mapped NCD file that contains only mapping
information
– Only the packing of the logic into CLBs and IOBs will remain the same as
the guide file. No placement & routing information will be retained
Incremental & Modular Design Techniques - 59 © 2003 Xilinx, Inc. All Rights Reserved
Guide Mode
• For incremental designs, use Incremental
guide mode
• For modular designs, Incremental guide mode is
automatically used
– Exact:
• The placement and routing is maintained regardless
of constraints for all matching components
– Leverage:
• The tools will use all matching components as the INITIAL starting point for placement and
routing
• They will then make changes to adhere to constraints and optimize netlist changes
– Incremental:
• Within a floorplanned block, if any component does not match the previous implementation,
none of the components within that block are guided
– Otherwise it is the same as Exact guide mode
Incremental & Modular Design Techniques - 60 © 2003 Xilinx, Inc. All Rights Reserved
Outline
• Incremental Design Introduction
• Modular Design Introduction
• Incremental Design Flow
• Modular Design Flow
• IDT/MDT Prerequisites and Synthesis
• Guide Files
• Summary
Incremental & Modular Design Techniques - 61 © 2003 Xilinx, Inc. All Rights Reserved
Review Questions
• Describe each of the incremental design flow steps
• Describe each of the modular design flow steps
• What are the basic prerequisites for incremental and modular design?
• What is a guide file?
Incremental & Modular Design Techniques - 62 © 2003 Xilinx, Inc. All Rights Reserved
Answers
• Describe each of the incremental design flow steps
Incremental & Modular Design Techniques - 63 © 2003 Xilinx, Inc. All Rights Reserved
Answers
• Describe each of the modular design flow steps
Incremental & Modular Design Techniques - 64 © 2003 Xilinx, Inc. All Rights Reserved
Answers
• What are the basic prerequisites for incremental and modular design?
– Well-partitioned hierarchical design
– Well-defined data-flow
– Well-defined port interaction
– Registered leaf-level hierarchical boundaries
• What is a guide file?
– An NCD file from a previous implementation that is used to guide the
packing, placement, and routing of a new (partially changed) netlist
Incremental & Modular Design Techniques - 65 © 2003 Xilinx, Inc. All Rights Reserved
Summary
• Incremental Design Techniques and Modular Design Techniques require
adherence to synchronous design methods
Incremental & Modular Design Techniques - 66 © 2003 Xilinx, Inc. All Rights Reserved
Where Can I Learn More?
• Online Software Manuals:
– Xilinx Synthesis Technology (XST) Users Guide
– Development System Reference Guide → Incremental Design
– Development System Reference Guide → Modular Design
– Development System Reference Guide → Map → Guided Map
– Development System Reference Guide → PAR → Guided PAR
• Synplify → Help menu → Online Documents
• LeonardoSpectrum → Help menu → Open Manuals Bookcase
Incremental & Modular Design Techniques - 67 © 2003 Xilinx, Inc. All Rights Reserved
Agenda
Section 1 : Optimize Your Design for Xilinx Architecture
– Core Generator System
• Lab : Core Generator System Flow
Incremental & Modular Design Techniques - 68 © 2003 Xilinx, Inc. All Rights Reserved
Agenda
Section 5 : Reduce Debug Time
– FPGA Editor: Viewing and Editing a Routed Design
• Lab: FPGA Editor
Optional Topics
– Power Estimation with Xpower
– Advance Implementation Options
– Embedded Solutions with Power PC/MicroBlaze and Embedded Development Kit (EDK)
– DSP Solutions with System Generator
PAR
• Placing and routing critical
components
NCD
– Before implementation (Post-MAP)
BITGEN
• Making minor changes
– After implementation (Post-PAR)
BIT
Array List
Window Window
History World
Window Window
• Trace window
– Generates a Timing Analysis report
– Select the Type of Report
– Click Apply
• Determine skew
– (Longest Delay) - (Shortest Delay)
• Method
– Automatic routing
• Selects the shortest route
• Possible long wait times
– Manual routing
• Specific pins can be selected
• Selects the shortest route if multiple pins are selected
• Rerouting a signal:
– Select net in Array or List window to
reroute
– Click → unroute in pushbutton panel
– Specify routing options (Auto Route
Setup)
– Click → autoroute in pushbutton
panel
• Tech Tips
– http://support.xilinx.com ÆTech Tips Æ Floorplanner & FPGA Editor
Optional Topics
– Power Estimation with Xpower
– Advance Implementation Options
– Embedded Solutions with Power PC/MicroBlaze and Embedded Development Kit (EDK)
– DSP Solutions with System Generator
Xilinx Confidential
Agenda
Section 5 : Reduce Debug Time
– FPGA Editor: Viewing and Editing a Routed Design
• Lab: FPGA Editor
Optional Topics
– Power Estimation with Xpower
– Advance Implementation Options
– Embedded Solutions with Power PC/MicroBlaze and Embedded Development Kit (EDK)
– DSP Solutions with System Generator
Viterbi
MAC
synchronously on rising or falling clock
OPB GPIO
OPB Bus
Bridge
edges
PLB Bus
– Define and drive pulse trains to simulate ATM Utopia L2
Arbiter
input signal activity
• Integrated Bus Analysis (IBA)
– Access CoreConnect bus structures, the
interface between the PowerPC and
processor peripherals
Use ChipScope Pro IBA cores to monitor and
analyze PLB and OPB bus transactions
XC2VP20
FF1152
ILA LAN
Probe Trace
ATC
points
XC2VP20
FF1152
Optional Topics
– Power Estimation with Xpower
– Advance Implementation Options
– Embedded Solutions with Power PC/MicroBlaze and Embedded Development Kit (EDK)
– DSP Solutions with System Generator
Lower performance
PMAX
–
High Density
– Lower power requirements
– No package power concerns
• Today's FPGAs have: Low
Density
– Much higher performance Real World Design
Power Consumption
– Higher power requirements
Performance (MHz)
– Package power limit concerns exist
Thermal summary:
----------------------------------------------------------------
Estimated junction temperature: 46C
250 LFM 43C
...
Ambient temp: 25C
Case temp: 43C
Theta J-A range: 26 - 26C/W
• What methods can be used to enter activity rates into the XPower tool?
FF1 FF1
FF2
FF2
GUI
GUI Your Custom
Your Code,
HW
Apps, OS…
Bash (Unix-style)
Parameterizable
Optimized SW Shell with Tcl
HW IP
Libs and applications
Drivers and text input
libc.a
Xilinx Work
WorkthetheWay
Way
Micro-Kernel LEDs
LEDs
128MB
128MB
You
YouWant
Want––GUI,
GUI,
Your
&& Serial Serial
Serial Serial DDR
DDR
Buttons
Buttons Port Port
Port Port SDRAM
SDRAM
or
orBoth!
4KB
4KBIOCM BSP
IOCM
BRAM BSP&&
Both!
BRAM Kernel
Kernel
Computing
Ethernet
Ethernet
OPB
10/100 E-Net
OPB
OPB
Arbiter
Arbiter
OPB
OPB
<>
<>
PLB
PLB
PLB
PLB
Arbiter
Arbiter
PPC
PPC
405
405
Linux
Linux
BSP
BSP&&
Platform
Kernel
Kernel
OPB
32/33
32/33PCI
PCI 8KB
PCI
2KB BRAM 32KB BRAM
BRAM 8KBDOCM
DOCM
BRAM Cntrl 32KB BRAM
BRAM
BRAM Cntrl
Cntrl
BRAM
RocketIO
DSOCM
Dedicated Hard IP ISOCM
BRAM PowerPC BRAM Flexible Soft IP
405 Core IBM CoreConnect™
DCR Bus on-chip bus standard
Instruction Data
PLB, OPB, and DCR
PLB OPB
Arbiter
Arbiter
Bus
Processor Local Bus On-Chip Peripheral Bus
Bridge
e.g.
Hi-Speed Memory GB On-Chip
UART GPIO
Peripheral Controller E-Net Peripheral
I-Cache
BRAM
Local Memory
MicroBlaze
BRAM Flexible Soft IP
Configurable
Bus 32-Bit RISC Core Sizes
D-Cache Possible in Dedicated Hard IP
BRAM Virtex-II Pro PowerPC
405 Core
Instruction Data
LocalLink™ OPB
Arbiter
FIFO Channels PLB
Arbiter
Bus
On-Chip Peripheral Bus Bridge
Processor Local Bus
0,1…….32
e.g.
Hi-Speed Memory GB
Custom Custom Peripheral Controller E-Net
Functions Functions
10/100 On-Chip
UART
E-Net Peripheral
Off-Chip FLASH/SRAM
Memory
C Code VHDL/Verilog
Compiler/Linker Synthesizer
(Simulator) Simulator
Debugger
eCos µCLinux
µC Linux
OSes
Tools
Generated System
Dedicated Hard IP
300MHz PowerPC Flexible Soft IP
405 Core
INTC
Instruction DCR Bus
Data
100MHz
Arbiter
Arbiter
100MHz Bus
Processor Local Bus
Bridge On-Chip Peripheral Bus
16KB BRAM
UART
JTAG_PPC PLB2OPB
INTC
PPC
PLB Timer
PLB
BRAM
BRAM
Cntlr
Proc_Sys_
Reset GPIO PSB
PLB
PLB
BRAM GPIO
DCM BRAM LEDs
Cntlr
Custom HW Platform
Complete,
Complete,automatic
automaticBSP
BSPgeneration
generation
(Steps
(Steps 1-4) for VxWorks 5.4/5.5on
1-4) for VxWorks 5.4/5.5 on
PowerPC
PowerPC and XMK on PowerPC&&
and XMK on PowerPC
As Needed Step4, Additional MicroBlaze
(Vendor, roll your MicroBlaze
own, services, etc.)
Driver Support I2C, GPIO,…..
Integrated
IntegratedHW
HW&&SW
SW
System
SystemDevelopment
DevelopmentTools
Tools
Note: Support for a generic board is in upcoming release. For now, you can
target any system as the UCF file is the only board-specific item
Auto-Generated
Configure IP Memory Map Base HW Done!
4 5 6
Start
1
Identify source type Bus Type
2 3
opb_bram_if_cntlr_v1_00_a
opb_bram_if_cntlr_v2_00_a
opb_central_dma_v1_00_a (New)
– PLB2OPB Bridge
Watchdog Timer
– OPB Uart-Lite, OPB JTAG
– PLB & OPB Arbiter
Uart, OPB GPIO, OPB SPI
– PLB & OPB IPIF Interface
– OPB Interrupt Controller
• Memory controllers
• Additional IP
– OPB Block Memory OPB
– OPB System ACE
SDRAM, OPB DDR, OPB
EMC, OPB ZBT controller
– PLB Block Memory, PLB
Xilinx Confidential
Agenda
• Why should I use FPGAs for DSP?
• Which FPGAs for DSP?
– VirtexTM-II Series, SpartanTM-3
• What DSP algorithms are available?
• Which Design Tools should I use?
– Software
– Hardware
• What’s next?
C0 C1 C2 .... C255
MAC unit
256 Loops needed to process samples All 256 MAC operations in 1 clock cycle
256 Tap FIR Filter Example
Xilinx XtremeDSP 4 Xilinx Confidential
FPGAs are Ideal for
Multi-channel DSP designs?
20MHz ch1 80MHz
LPF Samples
Samples
LPF ch2
LPF
LPF ch3
Multi Channel
ch4 Filter
LPF
A
Q = (A x B) + (C x D) + (E x F) + (G x H) B
× +
C
can be implemented in parallel
D
× + +
Q
E +
F
× +
G
H
× +
× +
+
× + +
× + DQ
+
+ DQ
+
× + × + × +
× +
A/D SDRAM
A/D Control PL4 ASSP
PowerPC PowerPC
3.125 Gbps
MACs, DUCs,
D/A DDCs, Logic
PowerPC PowerPC
D/A Control CORBA
SDRAM
• Industry’s most used FPGAs for DSP • Industry’s lowest cost FPGA
• Highest performance DSP – 90nm process
– Up to 556 hard embedded 18x18 – 300mm wafers
multipliers • High performance DSP
– Up to 10MB of dual port block RAM – Up to 104 hard embedded 18x18
– Up to 4 PPC 405 processors for control multipliers
– 3.125 Gbps serial transceivers – Up to 2MB of dual port block RAM
• Ideal for multi-channel designs – 32-bit MicroBlazeTM µP
$1,600 First
First FPGA
FPGA with
with
dedicated
dedicated DSP
DSP features
features
Unit Price
$1,200 First
First FPGA
FPGA with
with
DSP
DSP features
features ++ µprocessors
µprocessors
$800 Industry’s
Industry’s first
first
-- 90nm
90nm process
process
-- 300mm
300mm wafer
wafer
$400 -- DSP
DSP features
features
Processor I/F
M6 Cipher
VGA Front
SHA-1 8-bit µC LVDS Display
32-bit µP Controller
DTCP Tx
MDCT for DDR Memory
MPEG-4 H/W Acceleration MP3 SDRAM
Controller SDRAM
DCT/IDCT Motion
for MPEG-4 Compensation Flash Multi-Ch
Controller CAN PHY
PCI Controller PHY
UART, I2C,
Controller
SPI, PWM
Digital Channel
Down Frame
Synchronization Estimation
Conversion
Channel
Interpolator Remove Cyclic Equalizer & FEC
FFT
Prefix Detector
•MAC- Frequency
based FIR Synchronization FEC Cores:
Filter Core •Reed-Solomon Decoder
•DDS Core •Viterbi Decoder
Sample Clock •De-interleaver
Synchronization •Turbo Product Code
CORDIC Core (TPC) Decoder
Data I 2 ch. I
RRC
In M PEG 8b->7 b RS In te r- R ando-
F ram er
& (12 8,
le a ver m izer
TCM a =0 .18 Cable
F IFO 12 2) Q or Q
a =0 .12
P ro g . C o n tro ls
Interlea ver S elect
Q A M S elect
Level S elect
F ram e C o n tro ls
Downlink
(Forward
Link) Digital Digital Down Conversion
Rx Linear IF Mixer&
ADC Quadrature • Decimation LPF
Uplink Amplifier BP Filter • Matched Filtering
(Reverse Rx Demod
Link)
Tx
Digital Up Conversion • MAC FIR for
Multi Carrier Low Power • Interpolation LPF interpolation &
Mobile pulse shaping
Power Amp. Antenna DAC • Pulse Shaping (RRC)
Station Digital •
• DDS for pulse
(MCPA) Combiners Up/Down
Digital Pre-distortion shaping
RF Conversion
FEC Cores
CDMA2000 TCC
Encoder Downlink Symbol Rate Processing Downlink Chip Rate Processing Quadrature
Convolutional Encoder • CRC coding • Power scaling
Interleaver • FEC coding • Dedicated phys channel generation
Modulation
• Rate matching • Phys channel combining QPSK
• 1st Interleaving • LFSR code generation
Interface to • TrCH radio frame generation • Spreading/scrambling
• 2nd Interleaving Back Plane Drivers
Base I/Q LVDS & Gigabit IO
Station
Controller Uplink Symbol Rate Processing Uplink Chip Rate Processing
• 2nd De-interleaving • Searcher(for multipaths)
• Radio frame deconstruction • LFSR code generator
• Rate recovery • Channel estimation
• 1st De-interleaving • Tracking rake receiver I/Q
• FEC decoding • Multipath combiner (max ratio)
• CRC decoding Base Band
Processing
FEC Cores
CDMA2000 TCC Decoder, Viterbi Decoder, De-interleaver
Increasing Cost
Control Tasks
PowerPC with Application-Specific
Hardware Acceleration
FIR Filter
Extreme The Virtex-II Pro Advantage
Processing™
Control Tasks
Traditional FIR Filter FIR Filter
Processing time
GDB / GPIO
Module UART
in EDK
60+ Advanced DSP Cores 60+ DSP Development Boards Dedicated Field Specialists
• Comprehensive Library • 50+ Field DSP Experts
• Fast Turnaround • Processor, I/O Experts too
• Exceptional Performance