1 /**CFile****************************************************************
2 
3   FileName    [ivyResyn.c]
4 
5   SystemName  [ABC: Logic synthesis and verification system.]
6 
7   PackageName [And-Inverter Graph package.]
8 
9   Synopsis    [AIG rewriting script.]
10 
11   Author      [Alan Mishchenko]
12 
13   Affiliation [UC Berkeley]
14 
15   Date        [Ver. 1.0. Started - May 11, 2006.]
16 
17   Revision    [$Id: ivyResyn.c,v 1.00 2006/05/11 00:00:00 alanmi Exp $]
18 
19 ***********************************************************************/
20 
21 #include "ivy.h"
22 
23 ABC_NAMESPACE_IMPL_START
24 
25 
26 ////////////////////////////////////////////////////////////////////////
27 ///                        DECLARATIONS                              ///
28 ////////////////////////////////////////////////////////////////////////
29 
30 ////////////////////////////////////////////////////////////////////////
31 ///                     FUNCTION DEFINITIONS                         ///
32 ////////////////////////////////////////////////////////////////////////
33 
34 /**Function*************************************************************
35 
36   Synopsis    [Performs several passes of rewriting on the AIG.]
37 
38   Description []
39 
40   SideEffects []
41 
42   SeeAlso     []
43 
44 ***********************************************************************/
Ivy_ManResyn0(Ivy_Man_t * pMan,int fUpdateLevel,int fVerbose)45 Ivy_Man_t * Ivy_ManResyn0( Ivy_Man_t * pMan, int fUpdateLevel, int fVerbose )
46 {
47     abctime clk;
48     Ivy_Man_t * pTemp;
49 
50 if ( fVerbose ) { printf( "Original:\n" ); }
51 if ( fVerbose ) Ivy_ManPrintStats( pMan );
52 
53 clk = Abc_Clock();
54     pMan = Ivy_ManBalance( pMan, fUpdateLevel );
55 if ( fVerbose ) { printf( "\n" ); }
56 if ( fVerbose ) { ABC_PRT( "Balance", Abc_Clock() - clk ); }
57 if ( fVerbose ) Ivy_ManPrintStats( pMan );
58 
59 //    Ivy_ManRewriteAlg( pMan, fUpdateLevel, 0 );
60 clk = Abc_Clock();
61     Ivy_ManRewritePre( pMan, fUpdateLevel, 0, 0 );
62 if ( fVerbose ) { printf( "\n" ); }
63 if ( fVerbose ) { ABC_PRT( "Rewrite", Abc_Clock() - clk ); }
64 if ( fVerbose ) Ivy_ManPrintStats( pMan );
65 
66 clk = Abc_Clock();
67     pMan = Ivy_ManBalance( pTemp = pMan, fUpdateLevel );
68     Ivy_ManStop( pTemp );
69 if ( fVerbose ) { printf( "\n" ); }
70 if ( fVerbose ) { ABC_PRT( "Balance", Abc_Clock() - clk ); }
71 if ( fVerbose ) Ivy_ManPrintStats( pMan );
72     return pMan;
73 }
74 
75 /**Function*************************************************************
76 
77   Synopsis    [Performs several passes of rewriting on the AIG.]
78 
79   Description []
80 
81   SideEffects []
82 
83   SeeAlso     []
84 
85 ***********************************************************************/
Ivy_ManResyn(Ivy_Man_t * pMan,int fUpdateLevel,int fVerbose)86 Ivy_Man_t * Ivy_ManResyn( Ivy_Man_t * pMan, int fUpdateLevel, int fVerbose )
87 {
88     abctime clk;
89     Ivy_Man_t * pTemp;
90 
91 if ( fVerbose ) { printf( "Original:\n" ); }
92 if ( fVerbose ) Ivy_ManPrintStats( pMan );
93 
94 clk = Abc_Clock();
95     pMan = Ivy_ManBalance( pMan, fUpdateLevel );
96 if ( fVerbose ) { printf( "\n" ); }
97 if ( fVerbose ) { ABC_PRT( "Balance", Abc_Clock() - clk ); }
98 if ( fVerbose ) Ivy_ManPrintStats( pMan );
99 
100 //    Ivy_ManRewriteAlg( pMan, fUpdateLevel, 0 );
101 clk = Abc_Clock();
102     Ivy_ManRewritePre( pMan, fUpdateLevel, 0, 0 );
103 if ( fVerbose ) { printf( "\n" ); }
104 if ( fVerbose ) { ABC_PRT( "Rewrite", Abc_Clock() - clk ); }
105 if ( fVerbose ) Ivy_ManPrintStats( pMan );
106 
107 clk = Abc_Clock();
108     pMan = Ivy_ManBalance( pTemp = pMan, fUpdateLevel );
109     Ivy_ManStop( pTemp );
110 if ( fVerbose ) { printf( "\n" ); }
111 if ( fVerbose ) { ABC_PRT( "Balance", Abc_Clock() - clk ); }
112 if ( fVerbose ) Ivy_ManPrintStats( pMan );
113 
114 //    Ivy_ManRewriteAlg( pMan, fUpdateLevel, 1 );
115 clk = Abc_Clock();
116     Ivy_ManRewritePre( pMan, fUpdateLevel, 1, 0 );
117 if ( fVerbose ) { printf( "\n" ); }
118 if ( fVerbose ) { ABC_PRT( "Rewrite", Abc_Clock() - clk ); }
119 if ( fVerbose ) Ivy_ManPrintStats( pMan );
120 
121 clk = Abc_Clock();
122     pMan = Ivy_ManBalance( pTemp = pMan, fUpdateLevel );
123     Ivy_ManStop( pTemp );
124 if ( fVerbose ) { printf( "\n" ); }
125 if ( fVerbose ) { ABC_PRT( "Balance", Abc_Clock() - clk ); }
126 if ( fVerbose ) Ivy_ManPrintStats( pMan );
127 
128 //    Ivy_ManRewriteAlg( pMan, fUpdateLevel, 1 );
129 clk = Abc_Clock();
130     Ivy_ManRewritePre( pMan, fUpdateLevel, 1, 0 );
131 if ( fVerbose ) { printf( "\n" ); }
132 if ( fVerbose ) { ABC_PRT( "Rewrite", Abc_Clock() - clk ); }
133 if ( fVerbose ) Ivy_ManPrintStats( pMan );
134 
135 clk = Abc_Clock();
136     pMan = Ivy_ManBalance( pTemp = pMan, fUpdateLevel );
137     Ivy_ManStop( pTemp );
138 if ( fVerbose ) { printf( "\n" ); }
139 if ( fVerbose ) { ABC_PRT( "Balance", Abc_Clock() - clk ); }
140 if ( fVerbose ) Ivy_ManPrintStats( pMan );
141     return pMan;
142 }
143 
144 /**Function*************************************************************
145 
146   Synopsis    [Performs several passes of rewriting on the AIG.]
147 
148   Description []
149 
150   SideEffects []
151 
152   SeeAlso     []
153 
154 ***********************************************************************/
Ivy_ManRwsat(Ivy_Man_t * pMan,int fVerbose)155 Ivy_Man_t * Ivy_ManRwsat( Ivy_Man_t * pMan, int fVerbose )
156 {
157     abctime clk;
158     Ivy_Man_t * pTemp;
159 
160 if ( fVerbose ) { printf( "Original:\n" ); }
161 if ( fVerbose ) Ivy_ManPrintStats( pMan );
162 
163 clk = Abc_Clock();
164     Ivy_ManRewritePre( pMan, 0, 0, 0 );
165 if ( fVerbose ) { printf( "\n" ); }
166 if ( fVerbose ) { ABC_PRT( "Rewrite", Abc_Clock() - clk ); }
167 if ( fVerbose ) Ivy_ManPrintStats( pMan );
168 
169 clk = Abc_Clock();
170     pMan = Ivy_ManBalance( pTemp = pMan, 0 );
171 //    pMan = Ivy_ManDup( pTemp = pMan );
172     Ivy_ManStop( pTemp );
173 if ( fVerbose ) { printf( "\n" ); }
174 if ( fVerbose ) { ABC_PRT( "Balance", Abc_Clock() - clk ); }
175 if ( fVerbose ) Ivy_ManPrintStats( pMan );
176 
177 /*
178 clk = Abc_Clock();
179     Ivy_ManRewritePre( pMan, 0, 0, 0 );
180 if ( fVerbose ) { printf( "\n" ); }
181 if ( fVerbose ) { ABC_PRT( "Rewrite", Abc_Clock() - clk ); }
182 if ( fVerbose ) Ivy_ManPrintStats( pMan );
183 
184 clk = Abc_Clock();
185     pMan = Ivy_ManBalance( pTemp = pMan, 0 );
186     Ivy_ManStop( pTemp );
187 if ( fVerbose ) { printf( "\n" ); }
188 if ( fVerbose ) { ABC_PRT( "Balance", Abc_Clock() - clk ); }
189 if ( fVerbose ) Ivy_ManPrintStats( pMan );
190 */
191     return pMan;
192 }
193 
194 
195 ////////////////////////////////////////////////////////////////////////
196 ///                       END OF FILE                                ///
197 ////////////////////////////////////////////////////////////////////////
198 
199 
200 ABC_NAMESPACE_IMPL_END
201 
202