Color template - University of Utah
Download
Report
Transcript Color template - University of Utah
Computer-Aided Design of Digital VLSI
Circuits & Systems
Perspectives on Next-Generation
Logic Synthesis
Priyank Kalla
Dept. of Elec. & Comp. Engineering
University of Utah,SLC
Logic Synthesis in VLSI Realization
Objective:
Generate Optimal Designs
Specifications
Circuit Netlist
Sequential
Optimization
Optimized
Netlist
Tech. Mapping
Cell Library
Place & Route
Semi-Custom Design Styles
Semi-Custom
Array-based
Cell-based
Std. Cells
Macro cells
Hierarchical
Std. Cells
PLA
Memory
Gate-Arrays
MPGAs
FPGAs
Choice of Design Styles
Custom
Semi-custom Gate-array
Density
Very high
High
Medium
Performance
Very high
High
Medium
Design time
Very Long
High
Medium/low
Manufacturi
ng time
Medium
Medium
Short
Low volume
Very High
High
Low
Low
Low
High
Cost
High. Vol.
Cost
Design Representations
Transformation:
Architectural
F1 = A*A – B*B
F2 = C*C – D*D
F = x F1 + x’ F2
Behavioural
F1 = (A-B)(A+B)
F2 = (C-D)(C+D)
F = x F1 + x’ F2
Transformations
s1
s1
s4
s2
s0
s3
s2
s0
s3
Transformation Criteria
Architectural
Resource Optimization
Latency/Throughput Optimization
Computation Scheduling, Resource Binding
Testability and Verifiability
Behavioural
Logic Area
Gate Delay (timing performance)
Switching & Static Power Dissipation
Testability and Verifiability
Area
…
Minimization Versus Optimization
Delay…
Minimization
versus Optimization Trade-offs
Minimize Logic Area, or Delay, or Power….
Optimize Area within bounded Delays
Optimize Delay within bounded Area
Physical Synthesis: Optimize Area w.r.t.
Reliability and Manufacturability
What is Logic Synthesis?
Given:
Logic Functions or Finite-State Machines
Automatically generate designs (synthesis)
Minimize or Optimize Logic w.r.t. constraints
Optimally map logic onto realistic gates
Problems
and Challenges
Memory: Size!
Size!
SIZE!
Time: Computationally intensive operations
What kind of representations to use?
How to optimize logic to target the technology?
When Technology was PLAs….
Two-Level
Logic Minimization: K-map type
F = a’bc + ab’c + abc’ + abc
F = ab + ac + bc
Fewer inputs = fewer transistors
Reduced Area AND Reduced Delay
Algorithmic Techniques:
Quine-McCluskey, Espresso, Signature-cubes
Then came CMOS Technology….
Salient
Features:
Very high noise margins
Design Scalability
Enabled Standard Cell-based Design
Abstract Electrical Properties: Area-Delay
Fanout-Drive Scalability: X’sistor Sizing
Low (zero) Static Power Dissipation
Enabled Standard-Cell Place & Route
Estimates: Close to ~10% of actual layout
Cheap, Reliable, Scalable, low turn-aournd time
Multi-Level Logic Synthesis
F
= ab + bc + ac
F = b(a + c) + ac
F = ab + c(b + a)
Problem: Area and Delay became dependent
Problem: How do you factorize?
Multi-Level Synthesis for CMOS
Synthesis
Issues to consider
Objective: Minimize number of literals (area)
Delay: Depth of paths, fanouts, signal orders,
arrival and required times….
Area Delay became dependent
Factorization:
Extract common subexpressions
Fanout problems
Routing Difficulties
Optimization (instead of minimization) became
the dominant issue
Don’t Cares came into Focus….
F
= a(b+c)
When a = 0, (b + c) = Don’t care
D.C. = a’(b + c)? Not really….
How to “generate” D.C. set to optimize logic?
Problem: How do you factorize to create a good
don’t care set ?
Problem: How to filter “bad” don’t care sets ?
Don’t Cares Computations…..
How
to efficiently compute D.C.s and simplify ckt?
Input DC
Image computations
Controllability and observability DCs
Propagate DC set across the circuit
Image of the DC
Solution: Sequence of Optimizations
Script-based
multi-level logic synthesis
Collapse the whole circuit into two-level logic
Apply K-map type two-level minimization
Perform Greedy Factorization
Compute Don’t Cares
Simplify with Don’t cares
Estimate area/delay, re-factorize if needed
Delay minimization: depth minimization, fanout
adjustment, transistor sizing, buffer insertion….
Sequential Optimization
Behavioural
Transformations
s1
s1
s4
s2
s0
s3
Behavioural
s2
s0
s3
Optimizations:
Code assignments: What is there effect on design?
S0 (00), s1(01), s2(10), s3(11)
S0(00), s1(10), s2(01), s3(11)
FPGA-based Logic Synthesis
Look-up
Table based FPGAs
Look-up
Table
Optimizations
Criteria:
a b c
f
0
0
0
0
1
1
1
1
0
0
0
1
0
1
0
1
0
0
1
1
0
0
1
1
0
1
0
1
0
1
0
1
Input-space Partitioning, Decomposition
Literal minimization does nothing here…..
Routing resources, congestion……
The coming of age of Synthesis….
Power
of multi-level logic synthesis
Two-level minimization: solved!
Good factorization techniques found
Good Boolean Decomposition techniques
Good representations: ROBDDs…..
Don’t care theory well understood
Technological challenges well understood
(CMOS, FPGA, PLA, Memories….)
Some Problems Remain……
Limitations
of conventional synthesis techniques
Sequential Optimizations not well understood
Perhaps the problem has become redundant?
Technology specific decomposition still needs
some work
Not much support for hierarchical synthesis
No support for across the boundary optimizations
Power optimization at logic-level: NO IDEA!!
Effect of factorization on Placement & routing
New Challenges in Logic Synthesis
The
problems of the future…..
Static CMOS: area-delay will become
unacceptable
Layout is already becoming unsolvable
Static (leakage) power is increasing
Design granularity…. Large v/s small
Hierarchical synthesis will become a major issue
NOISE! Dynamic logic related….
New Technologies to Synthesize
Dynamic
Logic
Problems: Domino logic is monotonic
Charge Sharing, leakage, noise….
Standard-cell based or macro-cell based?
Pass
Transistor Logic (PTL)
All of the above problems
Signal degradation + restoration?
s
Need of the Hour: I think……
Mixed
Pass Transistor & Static CMOS Logic
Area reduction due to PTL
Delay reduction due to PTL & CMOS buffers
Signal degradation + restoration can be solved
Challenges:
Factorize to reduce noise
What to map on PTL and what to map on CMOS?
s1
s2
CMOS
Gate
Large fanout
Need of the Future: I think……
For
new technologies, “nano”-type
Area/Delay estimation Rethink
Sequential Optimization will bounce back!
Binary valued logic to Multi-values Logic
Power has to be handled at logic level
Memory no problem…. But computation time….
Logic optimization for manufacturability…..
Structured Logic Decomposition for estimatable
Placement and routing….
How about “Synthesis for verifiablity” ?