Download PLAyer: A Tool for Fast Mapping of Combinational Logic for Design

Survey
yes no Was this document useful for you?
   Thank you for your participation!

* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project

Document related concepts

IEEE 802.1aq wikipedia , lookup

Distributed operating system wikipedia , lookup

Airborne Networking wikipedia , lookup

CAN bus wikipedia , lookup

List of wireless community networks by region wikipedia , lookup

Routing in delay-tolerant networking wikipedia , lookup

Kademlia wikipedia , lookup

Transcript
ABC:
An Industrial-Strength Academic
Synthesis and Verification Tool
(based on a tutorial given at CAV 2010)
Berkeley Verification and Synthesis Research Center
UC Berkeley
Robert Brayton, Niklas Een, Alan Mishchenko
Jiang Long, Sayak Ray, Baruch Sterin
Thanks to: NSA, SRC, and industrial sponsors,
Actel, Altera, Atrenta, IBM, Intel, Jasper, Magma, Oasys,
Real Intent, Synopsys, Tabula, and Verific
Overview
What is ABC?
 Synthesis/verification synergy
 Introduction to AIGs
 Representative transformations
 Integrated verification flow
 Verification example
 Future work

2
A Plethora of ABCs
http://en.wikipedia.org/wiki/Abc

ABC (American Broadcasting Company)


ABC (Active Body Control)


In C++, these are generic classes at the base of the
inheritance tree; objects of such abstract classes
cannot be created…
Atanasoff-Berry Computer


ABC is designed to minimize body roll in corner,
accelerating, and braking. The system uses 13
sensors which monitor body movement to supply the
computer with information every 10 ms…
ABC (Abstract Base Class)


A television network…
The Atanasoff–Berry Computer (ABC) was the first
electronic digital computing device. Conceived in
1937, the machine was not programmable, being
designed only to solve systems of linear equations. It
was successfully tested in 1942.
ABC (supposed to mean “as simple as ABC”)

A system for sequential synthesis and verification at
Berkeley
3
ABC



Started 6 years ago as a replacement for SIS
Academic public-domain tool
“Industrial-strength”



Focuses on efficient implementation
Has been employed in commercial offerings of
several CAD companies
Exploits the synergy between synthesis and
verification
4
Design Flow
Property
Checking
System Specification
Equivalence
checking
RTL
Logic synthesis
Technology mapping
Verification
ABC
Physical synthesis
Manufacturing
5
Synthesis and Verification

Synthesis

Given a Boolean function
 Represented


by a truth table, BDD, or a circuit
Derive a “good” circuit implementing it
Verification
Given a (very large) circuit
 Prove that its output is always constant

6
Synthesis/Verification Synergy

Similar solutions


Algorithm migration


e.g. BDDs, SAT, induction, interpolation, rewriting
Related complexity


e.g. retiming in synthesis / retiming in verification
scalable synthesis <=> scalable verification
Common data-structures

combinational and sequential AIGs
7
Areas Addressed by ABC

Combinational synthesis




AIG rewriting
technology mapping
resynthesis after mapping
Combinational verification




SAT solving
SAT sweeping
combinational equivalence
checking (CEC)
Sequential synthesis




retiming
structural register sweep
merging seq. equiv. nodes
Sequential verification




bounded model checking
(BMC)
unbounded model/equiv
checking (MC/EC)
safety/liveness properties
exploits synthesis history
8
Terminology

Logic function (e.g. F = ab+cd)




Variables (e.g. b)
Minterms (e.g. abcd)
Cube (e.g. ab)
Logic network





Primary inputs/outputs
Logic nodes
Fanins/fanouts
Transitive fanin/fanout cone
Cut and window (defined later)
Primary outputs
TFO
Fanouts
Fanins
TFI
Primary inputs
9
AIG (And-Inverter Graphs)
Definition and Examples
AIG is a Boolean network composed of two-input ANDs and inverters
ab
00
01
11
10
00
0
0
1
0
01
0
0
1
1
11
0
1
1
0
10
0
0
1
0
cd
F(a,b,c,d) = ab + d(ac’+bc)
a
6 nodes
d
b
4 levels
a
a
c
b
c
F(a,b,c,d) = ac’(b’d’)’ + c(a’d’)’ =
ac’(b+d) + bc(a+d)
00
01
11
10
00
0
0
1
0
01
0
0
1
1
11
0
1
1
0
7 nodes
10
0
0
1
0
3 levels
cd
b
a
c
b
d
b
c a
d
10
Structural Hashing



Propagates constants and merges structural equivalences
Is applied on-the-fly during AIG construction
Results in circuit compaction
Example: F = abc
Before structural hashing
G = (abc)’ H = abc’
After structural hashing
11
Why AIGs?
Same reasons hold for both synthesis and verification

Easy to construct, relatively compact, robust


Can be efficiently stored on disk


3-4 bytes / AIG node (1M AIG ~ 4Mb file)
Unifying representation



1M AIG ~ 12Mb RAM
Used by all the different verification engines
Easy to pass around, duplicate, save
Compatible with SAT solvers



Efficient AIG-to-CNF conversion available
Circuit-based SAT solvers work directly on AIG
“AIGs + simulation + SAT” works well in many cases
12
AIG Memory Usage

Fixed amount of memory for each node



Can be done by a simple custom memory manager
Dynamic fanout manipulation is supported!
Allocate memory for nodes in a topological order

Optimized for traversal in the same topological order



Mostly AIG can be stored in cache – fewer cache misses.
Small static memory footprint in many applications
Compute fanout information on demand
13
“Classical” Logic Synthesis
Boolean network in SIS
Equivalent AIG in ABC
f
f
z
ze
xd  yd  xy
x
z
y
ab
x
cd  cd
y
e
a
b
c
d
e
a b c
d
AIG is a Boolean network of 2-input
14
AND nodes and invertors (dotted lines)
One AIG Node – Many Cuts
Combinational AIG
f


a
b
c
d
Each AIG cut represents a
different logic node
AIG manipulation with cuts is
equivalent to working on many
Boolean networks at the same
time
e
Different cuts for the same node
15
Combinational Synthesis

AIG rewriting minimizes the number of AIG nodes
without increasing the number of AIG levels
Rewriting AIG subgraphs

Pre-computing AIG subgraphs

Rewriting node A
Consider function f = abc
Subgraph 1
Subgraph 2
A
A
a b
Subgraph 3

a
b
a c
c
Subgraph 2
Subgraph 1
Rewriting node B
a
a b
a c
b
b
c
B
a
B

c
a
a b
a c
b
c
Subgraph 2
a b
a c
Subgraph 1
In both cases 1 node is saved 16
Combinational Rewriting
iterate 10 times {
for each AIG node {
for each k-cut
derive node output as function of cut variables
if ( smaller AIG is in the pre-computed library )
rewrite using improved AIG structure
}
}
Note: For 4-cuts, each AIG node has, on average, 5 cuts
compared to a SIS node with only 1 cut
Rewriting at a node can be very fast – using hash-table
lookups, truth table manipulation, disjoint decomposition
17
Resubstitution

Resubstitution means expressing
one function in terms of others


Given f(x) and {gi(x)}, is it possible
to express f in terms of a subset of
functions gi?
If so, what is function f(g)?
f(g)
f(x)
g1 g2 g3
x


x
An efficient truth-table-based and SAT-based solution exists
Runs in seconds for functions with hundreds of I/Os

A. Mishchenko, R. Brayton, J.-H. R. Jiang, and S. Jang, "Scalable
don't care based logic optimization and resynthesis", Proc. FPGA'09.
18
Technology Mapping
Input: A Boolean network
(And-Inverter Graph)
Output: A netlist of K-LUTs implementing
AIG and optimizing some cost function
f
f
Technology
Mapping
a
b
c
d
e
The subject graph
a b
c d e
The mapped netlist
19
Library Formats for Tech Mapping

GENLIB format


Simple format used in academic tools
For each gate, lists its name, Boolean function, pin names and
order, area, pin-to-pin delays, etc
http://www.eecs.berkeley.edu/~alanmi/publications/other/SIS_paper_genlib.pdf

LIBERTY format


Elaborate format used in industrial tools
For each gate, represents all information needed for synthesis,
mapping, delay/power computation, etc
http://www.opensourceliberty.org/

ABC reads both formats but uses only a subset of
available information
20
Comparison of Two Syntheses
“Contemporary” synthesis
“Classical” synthesis


Boolean network
Network manipulation
(algebraic)






AIG network
DAG-aware AIG rewriting (Boolean)




Espresso
Don’t cares computed using
BDDs
Resubstitution
Several related algorithms

Elimination
Decomposition (common
kernel extraction)
Node minimization


Node minimization



Rewriting
Refactoring
Balancing
Boolean decomposition
Don’t cares computed using
simulation and SAT
Resubstitution with don’t cares
Note: here all algorithms are scalable:
no SOP, no BDDs, no Espresso
21
Formal Verification

Property checking


Create miter from the design and
the safety property
Special construction for liveness



p
0
Biere et al, Proc. FMICS’06
D1
Equivalence checking


Property checking miter
Create miter from two versions
of the same design
Assuming the initial state is given
The goal is to prove that the
output of the miter is 0, for all
states reachable from the initial.
Equivalence checking miter
0
D1
D2
22
Outcomes of Verification

Success


Failure


The property holds in all reachable states
A finite-length counter-example (CEX) is found
Undecided

A limit on resources (such as runtime) is reached
23
Inductive Invariant

An inductive invariant is a
Boolean function in terms of
register variables, such that


It is true for the initial state(s)
It is inductive


assuming that is holds in one
(or more) time-frames allows us to
prove it in the next time-frame
State space
Bad
Invariant
Reached
Init
It does not contain “bad states”
where the property fails
24
Inductive Invariant (cont.)


It does not matter how inductive invariant is derived!
If it is available in any form (as a circuit, BDD or CNF),
it can be checked for correctness using a third-party tool



This way, verification proof can be certified
Comment 1: If the property is true, the set of all
reachable states is an inductive invariant
Comment 2: In practice, computing the set of all
reachable states is often impossible.
In such cases, an inductive invariant is an overapproximation of reachable states.
25
Verification Engines

Bug-hunters




Provers





random simulation
bounded model checking (BMC)
hybrids of the above two (“semi-formal”)
K-step induction, with or without uniqueness constraints
BDDs (exact reachability)
Interpolation (over-approximate reachability)
Property directed reachability (over-approximate reachability)
Transformers



Combinational synthesis
Reparameterization
Retiming
26
Integrated Verification Flow

Preprocessing




Creating a miter
Computing the intial state, etc
Handling combinational problems
Handling sequential problems




Start with faster engines
Continue with slower engines
Run main induction loop
Call last-gasp engines
27
Command “dprove” in ABC












transforming initial state (“undc”, “zero”)
converting into an AIG (“strash”)
creating sequential miter (“miter -c”)
combinational equivalence checking (“iprove”)
bounded model checking (“bmc”)
sequential sweep (“scl”)
phase-abstraction (“phase”)
most forward retiming (“dret -f”)
partitioned register correspondence (“lcorr”)
min-register retiming (“dretime”)
combinational SAT sweeping (“fraig”)
for ( K = 1; K  16; K = K * 2 )







signal correspondence (“scorr”)
stronger AIG rewriting (“dc2”)
min-register retiming (“dretime”)
sequential AIG simulation
interpolation (“int”)
BDD-based reachability (“reach”)
saving reduced hard miter (“write_aiger”)
Preprocessors
Combinational solver
Faster engines
Slower engines
Main induction loop
Last-gasp engines
28
Typical Run of SEC in ABC
abc - > miter –cm r\orig\s38584.1.blif r\rrr\s38584.1_r.blif
abc - > dprove –vb
Original miter:
Sequential cleanup:
Forward retiming:
Latch-corr (I= 15):
Fraiging:
Min-reg retiming:
K-step (K= 1,I= 8):
Min-reg retiming:
Rewriting:
Seq simulation :
K-step (K= 2,I= 9):
Min-reg retiming:
Rewriting:
Seq simulation :
K-step (K= 4,I= 8):
Latches
Latches
Latches
Latches
Latches
Latches
Latches
Latches
Latches
Latches
Latches
Latches
Latches
Latches
Latches
Networks are equivalent.
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
4162.
3777.
5196.
4311.
4311.
2280.
2053.
2036.
2036.
2036.
1517.
1516.
1516.
1516.
0.
Time =
Nodes
Nodes
Nodes
Nodes
Nodes
Nodes
Nodes
Nodes
Nodes
Nodes
Nodes
Nodes
Nodes
Nodes
Nodes
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
23649.
22081.
21743.
19670.
18872.
18867.
16602.
16518.
14399.
14399.
10725.
10725.
10498.
10498.
0.
Time
Time
Time
Time
Time
Time
Time
Time
Time
Time
Time
Time
Time
Time
=
=
=
=
=
=
=
=
=
=
=
=
=
=
0.07
0.24
2.88
0.35
0.93
13.19
0.14
1.64
0.29
14.81
0.14
1.09
0.45
11.89
sec
sec
sec
sec
sec
sec
sec
sec
sec
sec
sec
sec
sec
sec
48.16 sec
29
Combinational Equivalence Checking
(command ‘cec’)
Naïve approach
• Build output miter – call SAT
 works well for many easy problems
D1
D2
?
SAT-2
D
?
C
SAT-1
A
B
Proving internal equivalences
in a topological order
Better approach - SAT sweeping
• based on incremental SAT solving
• detect possibly equivalent nodes using
simulation
• candidate constant nodes
• candidate equivalent nodes
• run SAT on the intermediate miters in a
topological order
30
• refine candidates using counterexamples
Improved CEC (command ‘&cec’)

For hard CEC instances


Heuristic: skip some equivalences
Results in
5x reduction in runtime
 Solving previously unresolved problems

Given a combinational miter with
equivalence class {A, B, A’, B’}
Possible equivalences:
A = B, A = A’, A = B’, B = A’, B = B’, A’ = B’
A
B
A’
B’
- only try to prove A=A’ and B=B’
- do not try to prove
D1
D2
A = B, A’ = B’, A’ = B
A = B’
31
CEC Under Permutation
Yes or No (and counterexample)
Yes or No (and counterexample)
CEC
CEC
Design1
Design2
Boolean matcher
Design1



Design2
A resource-aware combination of graph-based,
simulation-based, and SAT-based techniques
Works for circuits with 100s of I/Os in about 1 min
ABC command ”bm” (developed at U of Michigan)

Hadi Katebi and Igor Markov, “Large-scale Boolean Matching”,
Proc. DATE’10.
32
HWMCC 2011

4th Hardware Model Checking Competition


Organized by


6 universities submitted 14 solvers + 4 solvers that won previous
competitions
Benchmarks


Armin Biere, Keijo Heljanko, Siert Wieringa, Niklas Soerensson
Participants


Held at FMCAD’11 in Austin, TX (Oct 30 – Nov 2, 2011)
465 benchmarks from different sources
Resources


15 min, 7Gb RAM, 4 cores
Using 32 node cluster, Intel Quad Core 2.6 GHz, 8 GB, Ubuntu
33
Courtesy Armin Biere
34
Courtesy Armin Biere
35
Courtesy Armin Biere
36
Future Work

Exploring new directions




Satisfiability Modulo Theories (SMT)
Software verification
Using concurrency, etc
Improving bit-level engines



Application-specific SAT solvers
A modern BDD package
Improved sequential logic simulators



combining random, guided and symbolic simulation
Improved abstraction refinement
… and may be a new engine or two
37
To Learn More
Visit BVSRC webpage www.bvsrc.org
 Read recent papers

http://www.eecs.berkeley.edu/~alanmi/publications

Send email


[email protected]
[email protected]
38
39