Topics Logic synthesis. Placement and routing..

Slides:



Advertisements
Similar presentations
TOPIC : SYNTHESIS DESIGN FLOW Module 4.3 Verilog Synthesis.
Advertisements

FPGA-Based System Design: Chapter 4 Copyright  2004 Prentice Hall PTR Topics n Logic synthesis. n Placement and routing.
ECE 551 Digital System Design & Synthesis Lecture 08 The Synthesis Process Constraints and Design Rules High-Level Synthesis Options.
Logic Synthesis – 3 Optimization Ahmed Hemani Sources: Synopsys Documentation.
FPGA Technology Mapping Dr. Philip Brisk Department of Computer Science and Engineering University of California, Riverside CS 223.
Modern VLSI Design 2e: Chapter4 Copyright  1998 Prentice Hall PTR.
Technology Mapping.
Placement 1 Outline Goal What is Placement? Why Placement?
Reconfigurable Computing (EN2911X, Fall07)
Fuzzy Evolutionary Algorithm for VLSI Placement Sadiq M. SaitHabib YoussefJunaid A. Khan Department of Computer Engineering King Fahd University of Petroleum.
FPGA Technology Mapping. 2 Technology mapping:  Implements the optimized nodes of the Boolean network to the target device library.  For FPGA, library.
ECE 506 Reconfigurable Computing Lecture 7 FPGA Placement.
Register-Transfer (RT) Synthesis Greg Stitt ECE Department University of Florida.
Introduction to Routing. The Routing Problem Apply after placement Input: –Netlist –Timing budget for, typically, critical nets –Locations of blocks and.
Global Routing.
POWER-DRIVEN MAPPING K-LUT-BASED FPGA CIRCUITS I. Bucur, N. Cupcea, C. Stefanescu, A. Surpateanu Computer Science and Engineering Department, University.
CprE / ComS 583 Reconfigurable Computing Prof. Joseph Zambreno Department of Electrical and Computer Engineering Iowa State University Lecture #14 – Placement.
Modern VLSI Design 3e: Chapters 1-3 week12-1 Lecture 30 Scale and Yield Mar. 24, 2003.
Massachusetts Institute of Technology 1 L14 – Physical Design Spring 2007 Ajay Joshi.
1 EECS 219B Spring 2001 Timing Optimization Andreas Kuehlmann.
Modern VLSI Design 3e: Chapter 4 Copyright  1998, 2002 Prentice Hall PTR Topics n Combinational network delay. n Logic optimization.
L11: Lower Power High Level Synthesis(2) 성균관대학교 조 준 동 교수
CprE / ComS 583 Reconfigurable Computing
Placement. Physical Design Cycle Partitioning Placement/ Floorplanning Placement/ Floorplanning Routing Break the circuit up into smaller segments Place.
4. Combinational Logic Networks Layout Design Methods 4. 2
Modern VLSI Design 3e: Chapter 10 Copyright  1998, 2002 Prentice Hall PTR Topics n CAD systems. n Simulation. n Placement and routing. n Layout analysis.
CSE 589 Part VI. Reading Skiena, Sections 5.5 and 6.8 CLR, chapter 37.
Topics Combinational network delay.
Modern VLSI Design 3e: Chapter 4 Copyright  1998, 2002 Prentice Hall PTR Topics n Layouts for logic networks. n Channel routing. n Simulation.
1 A Min-Cost Flow Based Detailed Router for FPGAs Seokjin Lee *, Yongseok Cheon *, D. F. Wong + * The University of Texas at Austin + University of Illinois.
Technology Mapping. 2 Technology mapping is the phase of logic synthesis when gates are selected from a technology library to implement the circuit. Technology.
Courtesy RK Brayton (UCB) and A Kuehlmann (Cadence) 1 Logic Synthesis Multi-Level Logic Synthesis.
Give qualifications of instructors: DAP
FPGA CAD 10-MAR-2003.
Modern VLSI Design 4e: Chapter 4 Copyright  2008 Wayne Wolf Topics n Combinational network delay. n Logic optimization.
Example Apply hierarchical clustering with d min to below data where c=3. Nearest neighbor clustering d min d max will form elongated clusters!
Register-Transfer (RT) Synthesis Greg Stitt ECE Department University of Florida.
School of Computer Science & Engineering
VLSI Physical Design Automation
CHAPTER 7 MULTI-LEVEL GATE CIRCUITS / NAND AND NOR GATES
Delay Optimization using SOP Balancing
CS137: Electronic Design Automation
Topics The logic design process..
Applying Logic Synthesis for Speeding Up SAT
Topics HDL coding for synthesis. Verilog. VHDL..
Reconfigurable Computing
A Boolean Paradigm in Multi-Valued Logic Synthesis
IAY 0800 Digitaalsüsteemide disain
CprE / ComS 583 Reconfigurable Computing
Timing Optimization Andreas Kuehlmann
SAT-Based Area Recovery in Technology Mapping
Alan Mishchenko University of California, Berkeley
Multi-Level Minimization
SAT-Based Optimization with Don’t-Cares Revisited
332:437 Lecture 3 Hardware Design Methodology and Advanced Logic Design Hardware design.
Sungho Kang Yonsei University
ECE 667 Synthesis and Verification of Digital Systems
Timing Optimization.
Routing Algorithms.
Register-Transfer (RT) Synthesis
Technology Mapping I based on tree covering
VLSI CAD Flow: Logic Synthesis, Placement and Routing Lecture 5
Delay Optimization using SOP Balancing
Md. Tanveer Anwar University of Arkansas
Illustrative Example p p Lookup Table for Digits of h g f e ) ( d c b
SAT-based Methods: Logic Synthesis and Technology Mapping
Fast Min-Register Retiming Through Binary Max-Flow
Laws & Rules of Boolean Algebra
*Internal Synthesizer Flow *Details of Synthesis Steps
Reconfigurable Computing (EN2911X, Fall07)
Presentation transcript:

Topics Logic synthesis. Placement and routing.

Logic optimization Logic synthesis programs transform Boolean expressions into logic gate networks in a particular library. Optimization goals: minimize area, meet delay constraint; some power optimizations.

Syntax-directed translation Translate HDL into logic directly. ab + ac Generally requires optimization.

Macros Pre-designed logic. Hard macro: includes placement. Generally identified by language features. + operator. xxx() Hard macro: includes placement. Soft macro: no placement.

Logic synthesis phases Technology-independent optimizations work on logic representations that do not directly model logic gates. Technology-dependent optimizations work in the available set of logic gates. Transformation from technology-independent to technology-dependent is called library binding.

Technology-independent optimizations Works on Boolean expression equivalent. Estimates size based on number of literals. Uses factorization, resubstitution, minimization, etc. to optimize logic. Technology-independent phase uses simple delay models.

Technology-dependent optimizations Maps Boolean expressions into a particular cell library. Mapping may take into account area, delay. May perform some optimizations on addition to simple mapping. Allows more accurate delay models.

Boolean network A Boolean network is the main representation of the logic functions for technology independent optimizations. Each node can be represented as sum-of-products (or product-of-sums). Provides multi-level structure, but functions in the network need not correspond to logic gates.

Boolean network example primary outputs out1 = k2 + x2’ out2 = k3 + x1 k2 = x1’ x2 x4 + k1 k3 = k1 x4’ k1 = x2 + x3 primary inputs x1 x2 x3 x4

Terms Support: set of variables used by a function. Transitive fanout: all the primary outputs and intermediate variables of a function. Transitive fanin: all the primary inputs and intermediate variables used by a function. Transistive fanin determines a cone of logic. cone primary inputs output

Technology-independent logic optimization Simplification rewrites node to simplify its form. Network restructuring introduces new nodes for common factors, collapses several nodes into one new node. Delay restructuring changes factorization to reduce path length.

Cost in the Boolean network Don’t know exact gate structure, but can estimate final network cost: area estimated by number of literals (true or complement forms of variables); delay estimated by path length.

Partially-specified functions Don’t-cares can be implemented in either the on-set or off-set. Don’t-cares provide the greatest opportunities for minimization in many cases.

Partially-specified function example 1 don’t care x1 1 1 x3

Don’t-cares in Boolean networks In two-level function, don’t-cares are defined at primary output. In Boolean network, structure of network itself introduces don’t-cares. Types of structural don’t-cares: satisfiability; observability.

Satisfiability don’t-cares Occur when an intermediate variable value is inconsistent with its function inputs. Since this can’t happen, we don’t care. f=yc y == g a=b=0, f=1 can’t happen Don’t-care for f: y’g + yg’ y g=ab a b c

Observability don’t-cares Occur when an intermediate variable’s value doesn’t affect the network primary outputs. a If a=1, then b is don’t-care x b

Optimizations Simplification. Network restructuring. Changing the way a function is represented. Network restructuring. Adding and removing nodes. Delay restructuring. Optimizations that reduce the height of critical paths.

Cube representation On-set, off-set, don’t-care set, cover: x2 x1 x3

Espresso example x1 x2 x3

Partial collapsing f1 f4 F f4 f2 f3 f3 before after

Factorization Based on division: formulate candidate divisor; test how it divides into the function; if g = f/c, we can use c as an intermediate function for f. Algebraic division: don’t take into account Boolean simplification. Less expensive then Boolean division.

Factorization using division Three steps: generate potential common factors and compute literal savings if used; choose factors to substitute into network; restructure the network to use the new factors. Algebraic/Boolean divison can be used to implement first step.

Technology mapping Cover the function:

FPGA tech mapping Cost (number of inputs) doesn’t always increase with added functions:

FPGAs vs. custom logic Cost metric for static gates is literal: ax + bx’ has four literals, requires 8 transistors. Cost metric for FPGAs is logic element: All functions that fit in an LE have the same cost.

LUT-based logic synthesis Find the largest logic cone that will fit into the LUT: r = q + s’ s = d’ q = g’ + h d = a + b

Placement and routing Two critical phases of layout design: placement of components on the chip; routing of wires between components. Placement and routing interact, but separating layout design into phases helps us understand the problem and find good solutions.

Placement metrics Quality metrics for layout: area; delay. Area and delay determined partly by wiring. How do we judge a placement without wiring? Estimate wire length without actually performing routing. Design time may be important for FPGAs

Wire length as a quality metric bad placement good placement

Wire length measures Estimate wire length by distance between components. Possible distance measures: Euclidean distance (sqrt(x2 + y2)); Manhattan distance (x + y). Multi-point nets must be broken up into trees for good estimates. Manhattan Euclidean

Wiring trees Steiner point

Placement techniques Can construct an initial solution, improve an existing solution. Pairwise interchange is a simple improvement metric: Interchange a pair, keep the swap if it helps wire length. Heuristic determines which two components to swap.

Placement by partitioning Works well for components of fairly uniform size. Partition netlist to minimize total wire length using min-cut criterion. Partitioning may be interpreted as 1-D or 2-D layout.

Recursive partitioning

Min-cut bisecting partitioning 1 net B A 3 nets C D partition 1 partition 2

Min-cut bisecting partitioning, cont’d Swapping A and B: B drags 1 net; A drags 3 nets; total cut increase: 3 nets. Conclusion: probably not a good swap, but must be compared with other pairs.

Kernighan-Lin algorithm Compute min cut criterion: count total net cut change. Algorithm exchanges sets of nodes to perform hill-climbing—finding improvements where no single swap will improve the cut. Recursively subdivide to determine placement detail.

Simulated annealing Powerful but CPU-intensive optimization technique. Analogy to annealing of metals: temperature determines probability of a component jumping position; probabilistically accept moves. start at high temperature, cool to lower temperature to try to reach good placement.

Routing Major phases in routing: global routing assigns nets to routing areas; detailed routing designs the routing areas. Net ordering is a major problem. Order in whch nets are routed determines quality fo result. Net ordering is a heuristic.

Global routing Choose a sequence of channels. Not tracks within a channel. Must take capacity into account. Channel graph allows path algorithms to be used for global routing.

Channel graph channel switch box LE LE channel channel LE LE

Maze routing Will find shortest path for a single wire, if such a path exists. Two phases: Label nodes with distance, radiating from source. Use distances to trace from sink to source, choosing a path that always decreases distance to source.

Lee (wavefront) router

FPGA issues Often want a fast answer. May be willing to accept lower quality result for less place/route time. May be interested in knowing wirability without needing the final configuration. Fast placement: constructive placement, iterative improvement through simulated annealing.

FPGA routing Finding a route into given interconnection network. Global routing assigns to channels. Local routing selects the programming points used to make the connections.

FPGA routing techniques Nair: route based on congestion, not distance. Route in two passes: Estimate congestion. Final routing. Triptych: more gradual penalty for congestion.