ABC Tutorial
ABC Tutorial
RTL
ABC
Verification
Logic synthesis
Technology mapping
Physical synthesis
Manufacturing
Destinations
• Combinational synthesis • Sequential synthesis
– traditional (SIS) – traditional (retiming)
– AIG-based – AIG-based
– tech mapping – tech mapping
– equivalence checking – verification
• bounded
• unbounded
• based on synthesis
Means of Transportation
• Netlist
– contains nets along with nodes, latches, and PI/PO terminals
– currently only used for I/O of networks to/from files
• Logic network
– traditional logic network as in SIS; does not have nets
– nodes have SOP/BDD representation of local functions
• AIG
– innovative network representation
– unifies synthesis, mapping, and equivalence checking
• Sequential AIG
– a generalization of AIGs for sequential networks
Types of Fuel
• SOPs
– Sum-Of-Products (two-level AND-OR representation) traditionally used
to store node functions
– convenient for factoring but has a tendency to grow large
• BDDs
– graph-based representation, canonical for a fixed variable ordering
– convenient for some applications but has a tendency to grow large
• AND2s
– networks of two-input ANDs and inverters
– scalable, non-canonical representation
• Gates
– primitives from the gate library assigned to the nodes by tech mapping
Allowed Combinations
• Networks are composed of objects
– several network types are supported
• Nodes are objects having logic function
– Several node functionality types are possible
• Future work
– support of required times
– procedures to update timing incrementally (useful for resynthesis)
Using BDD Representation
• CUDD by Fabio Somenzi is used for all BDD manipulation
• Pointer to the BDD manager is in pNtk->pManFunc
• Pointers to the local functions are in pNode->pData
• Global functions can be computed by Abc_NtkGlobalBdds
– uses dynamic variable reordering
– handles the case when BDDs blow up
• When constructing a new logic network, it is often convenient to use
BDDs to represent local functions
– in the end, it is possible to convert to a logic network with SOPs by calling
Abc_NtkBddToSop (or vice versa, by calling Abc_NtkSopToBdd)