Upload
kathlyn-henderson
View
215
Download
0
Embed Size (px)
Citation preview
EVE: A CAD Tool ProvidingPlacement and Pipelining Assistance for
High-Speed FPGA Circuit Designs
William Chow
Supervisor : Prof. Jonathan Rose
M.A.Sc. Thesis
Edward S. Rogers Sr. Department of
Electrical and Computer Engineering,
University of Toronto
September 28, 2001
2
Motivation
• Context: High-speed circuit designs, how?
• Push-button design flow– Automatic: design -> circuit– 0.18 m, struggling to achieve 150MHz+
• Von Herzen’s paper [VonH97]– 250MHz FPGA, 0.6m in 1997!
• Useful “Event Horizon” concept (later)
• EVE: EVent horizon Editor
4
Event Horizon
src CLB
250MHz budget = 4ns
0.8
0.80.4
1.2 1.2
0.8 1.20.4
Max clock skew = 0.1ns, clock-to-output delay = 1.3ns,LUT delay+FF setup time = 1.5ns
• Choose placement of target CLB
• Set target speed
• Know chip spec
• Calculate Event Horizon
Max routing delay = 4.0-0.1-1.3-1.5 = 1.1ns
5
Context
• Von Herzen’s approach– Set speed goal
– Build by construction using Event Horizon concept
• EVE– Start with placed and routed design– Increase speed by manual editing small
designs
7
Goals1. Construct a manual editor focussing
on packing/placement/pipelining level of the Event Horizon design methodology to allow a designer to increase speed easier
2. Gain insights to better placement and routing techniques through extensive manual circuit editing experience
8
Design Objectives of EVE
1. Target real FPGA architecture : Xilinx Virtex-E
2. Give full low-level control3. Give instant performance feedback4. Assist pipelining
(3&4) not supported by Xilinx Tools
9
EVE: two operating modes
1. Timing Exact Microscopic Placement (TEMP) Mode
– Change placement and packing of circuit components
– Instant timing feedback
– Invoke horizon : suggest good placement positions
2. Pipelining Mode– Maintain correct functionality during flip-flop insertion
and flip-flop motion
– Instant feedback of new circuit speed estimation
– Flip-flop placement optimizations
10
Horizon
• From “Event Horizon”• Gradient of colours• Horizon Radius
– Where to evaluate– Limit computation
• Display timing– -ve : speed improves– +ve : speed degrades
+0.2
+0.2
-0.2
-0.2
src LUT
+0.0
+0.4
+0.4
+0.2
+0.2
Radius = 1
Definition: Display effect of critical path delay should a circuit element moved to indicated positions
(mode 1)
11
Timing Exact Microscopic Placement(TEMP) Mode
Radius = 3 • Placement• Packing• Timing
Feedback• Horizon• More info• Better
answer
12
Implementation of TEMP mode
• Instant feedback– Internal Timing Analysis
• Accurate timing– Database of real delays
– Compression by 100x (100MB->1MB)
• High Interactivity– Integrate tightly with Xilinx backend (FPGA
Editor) for quick incremental P&R,timing
13
Partial Incremental Timing Analysis
• Full Timing Analysis (TA)
• O(n) Forward &Backward Sweep as in [HSC83]
• Faster: Only rebuild modified portion of circuit
14
Delay Database
• Delay Extraction
– RC Models: Elmore, Penfield Rubinstein
– Not possible in EVE
• Extracting Logic Delays
• Extracting Routing Delays
• Delay Database Compression
15
Routing Delay Compression
Intersect
Dr(r)
Dc(c)
Column of source pin
Row of source pin
Pin-to-pin delay (ns) Symmetric!Symmetric!“BRAMs”
16
Backend Integration
• Existing tools are insufficient– Lack ease for incremental flow
– Full CAD flow is slow
• Solution: Interface with Xilinx manual editor - FPGA Editor– Full set of commands for circuit editing
– Use named pipes on WIN NT platform
floorplan
P&R
TA
17
src CLB
Event Horizon: Pipelining
• Pipeline to extend Event Horizon
src CLB
Original Event Horizon
dstCLB
dstCLB
Pipelining flip-flop
Extended Event Horizon
(Mode 2)
19
Pipelining Mode
(Leave for
demo)
20
Baseline Circuits Generation
(Push-button flow baseline)• Input is VHDL or Verilog• Synthesize using Synplify Pro 6.2, freq = s• Place and route using Xilinx backend tools• Obtain frequency from reports• repeat step (2) to (4), increasing s 10% until
done• Using frequency in (5), do Multi-Pass
Place&Route (MPPR) for 10 runs, pick the best design [+10%]
(skip!)
21
Vision 142 241 4.92 203.3 224.8 10.6%Batcher 252 455 3.06 326.8 380.1 16.3%Banyan 165 311 2.94 340.7 395.3 16.0%Trap 187 470 2.45 408.3 460.4 12.8%Miim 122 112 6.16 162.4 168.5 3.8%Div 87 255 4.65 215.1 229.6 6.7%Dotproduct 243 178 6.74 148.4 173.3 16.8%Crossproduct 129 126 4.54 220.1 261.4 18.8%Average 166 269 4.43 238.7 268.8 12.7%
New Freq (MHz)
% Change
Circuit # LUTs
# FFs Period (ns)
Freq (MHz)
Results: Using TEMP mode only
+12.7%!+12.7%!(Note: Area is unchanged!)
22
Example : Vision
23
Vision: Before
203.3MHz
24
Vision: After
224.8MHz
25
Results: Using both TEMP and pipelining modes
(Note: FF inserted once only)
Circuit # LUTs # FFs # FFs added
Freq (MHz)
New Freq (MHz)
% Change
Vision 142 241 224.8 N/A : critical path in loopBatcher 252 455 380.1 N/A : already well pipelinedBanyan 165 311 395.3 N/A : already well pipelinedTrap 187 470 460.4 N/A : already well pipelinedMiim 122 112 168.5 N/A : critical path in loopDiv 87 255 66 229.6 237.7 3.5%Dotproduct 243 178 173.3 N/A : due to tool instabilityCrossproduct 129 126 261.4 N/A : due to tool instabilityMult 39 23 38 123.1 175.1 42.2%
26
Observations (1)
Pack and unpack slices during Pack and unpack slices during placement and routing is goodplacement and routing is good
Slice Slice
27
Observations (2)
Focusing on improving k-most Focusing on improving k-most critical path is effectivecritical path is effective
28
Observations (3)Partial re-routing of timing-critical Partial re-routing of timing-critical
regions is effectiveregions is effective
Reroute!
29
Observations (4)
CAD Tool should show high speed CAD Tool should show high speed routing resources on the chip, help routing resources on the chip, help
user make better decisionsuser make better decisions
Fast Routing!
30
Live DemoLive Demo
31
Conclusion• Proposed a high-speed manual circuit design
methodology • Created a manual editor
– Targets real designs: Xilinx Virtex-E– Focus on pipelining, placement, packing– Full low-level control– Instant exact timing feedback
• Results: speed increased up to +19%, avg +12.7% for 8 ccts
32
Future Work
1. Synthesis in Event Horizon framework
2. Extend EVE to support Virtex-II, etc.
3. Automate manual optimizations in EVE
4. Make pipelining mode more useful