ABC: A System for Sequential Synthesis and Verification
 
Loading...
Searching...
No Matches
bacCom.c
Go to the documentation of this file.
1
20
21#include "bac.h"
22#include "bacPrs.h"
23#include "proof/cec/cec.h"
24#include "base/main/mainInt.h"
25
27
31
32static int Bac_CommandRead ( Abc_Frame_t * pAbc, int argc, char ** argv );
33static int Bac_CommandWrite ( Abc_Frame_t * pAbc, int argc, char ** argv );
34static int Bac_CommandPs ( Abc_Frame_t * pAbc, int argc, char ** argv );
35static int Bac_CommandPut ( Abc_Frame_t * pAbc, int argc, char ** argv );
36static int Bac_CommandGet ( Abc_Frame_t * pAbc, int argc, char ** argv );
37static int Bac_CommandClp ( Abc_Frame_t * pAbc, int argc, char ** argv );
38static int Bac_CommandCec ( Abc_Frame_t * pAbc, int argc, char ** argv );
39static int Bac_CommandTest ( Abc_Frame_t * pAbc, int argc, char ** argv );
40
41static inline Bac_Man_t * Bac_AbcGetMan( Abc_Frame_t * pAbc ) { return (Bac_Man_t *)pAbc->pAbcBac; }
42static inline void Bac_AbcFreeMan( Abc_Frame_t * pAbc ) { if ( pAbc->pAbcBac ) Bac_ManFree(Bac_AbcGetMan(pAbc)); }
43static inline void Bac_AbcUpdateMan( Abc_Frame_t * pAbc, Bac_Man_t * p ) { Bac_AbcFreeMan(pAbc); pAbc->pAbcBac = p; }
44
48
61{
62 Bac_Man_t * p;
63 if ( Abc_FrameGetGlobalFrame() == NULL )
64 {
65 printf( "ABC framework is not started.\n" );
66 return;
67 }
68 p = Bac_PtrTransformToCba( vPtr );
69 if ( p == NULL )
70 printf( "Converting from Ptr failed.\n" );
71 Bac_AbcUpdateMan( Abc_FrameGetGlobalFrame(), p );
72}
74{
75 Vec_Ptr_t * vPtr;
76 Bac_Man_t * p;
77 if ( Abc_FrameGetGlobalFrame() == NULL )
78 {
79 printf( "ABC framework is not started.\n" );
80 return NULL;
81 }
82 p = Bac_AbcGetMan( Abc_FrameGetGlobalFrame() );
83 if ( p == NULL )
84 printf( "There is no CBA design present.\n" );
85 vPtr = Bac_PtrDeriveFromCba( p );
86 if ( vPtr == NULL )
87 printf( "Converting to Ptr has failed.\n" );
88 return vPtr;
89}
90
102void Bac_Init( Abc_Frame_t * pAbc )
103{
104 Cmd_CommandAdd( pAbc, "New word level", "@_read", Bac_CommandRead, 0 );
105 Cmd_CommandAdd( pAbc, "New word level", "@_write", Bac_CommandWrite, 0 );
106 Cmd_CommandAdd( pAbc, "New word level", "@_ps", Bac_CommandPs, 0 );
107 Cmd_CommandAdd( pAbc, "New word level", "@_put", Bac_CommandPut, 0 );
108 Cmd_CommandAdd( pAbc, "New word level", "@_get", Bac_CommandGet, 0 );
109 Cmd_CommandAdd( pAbc, "New word level", "@_clp", Bac_CommandClp, 0 );
110 Cmd_CommandAdd( pAbc, "New word level", "@_cec", Bac_CommandCec, 0 );
111 Cmd_CommandAdd( pAbc, "New word level", "@_test", Bac_CommandTest, 0 );
112}
113
125void Bac_End( Abc_Frame_t * pAbc )
126{
127 Bac_AbcFreeMan( pAbc );
128}
129
130
142int Bac_CommandRead( Abc_Frame_t * pAbc, int argc, char ** argv )
143{
144 FILE * pFile;
145 Bac_Man_t * p = NULL;
146 Vec_Ptr_t * vDes = NULL;
147 char * pFileName = NULL;
148 int c, fUseAbc = 0, fUsePtr = 0, fVerbose = 0;
150 while ( ( c = Extra_UtilGetopt( argc, argv, "apvh" ) ) != EOF )
151 {
152 switch ( c )
153 {
154 case 'a':
155 fUseAbc ^= 1;
156 break;
157 case 'p':
158 fUsePtr ^= 1;
159 break;
160 case 'v':
161 fVerbose ^= 1;
162 break;
163 case 'h':
164 goto usage;
165 default:
166 goto usage;
167 }
168 }
169 if ( argc != globalUtilOptind + 1 )
170 {
171 printf( "Bac_CommandRead(): Input file name should be given on the command line.\n" );
172 return 0;
173 }
174 // get the file name
175 pFileName = argv[globalUtilOptind];
176 if ( (pFile = fopen( pFileName, "r" )) == NULL )
177 {
178 Abc_Print( 1, "Cannot open input file \"%s\". ", pFileName );
179 if ( (pFileName = Extra_FileGetSimilarName( pFileName, ".v", ".blif", ".smt", ".bac", NULL )) )
180 Abc_Print( 1, "Did you mean \"%s\"?", pFileName );
181 Abc_Print( 1, "\n" );
182 return 0;
183 }
184 fclose( pFile );
185 // perform reading
186 if ( fUseAbc || fUsePtr )
187 {
188 extern Vec_Ptr_t * Ptr_AbcDeriveDes( Abc_Ntk_t * pNtk );
189 Abc_Ntk_t * pAbcNtk = Io_ReadNetlist( pFileName, Io_ReadFileType(pFileName), 0 );
190 Vec_Ptr_t * vDes = Ptr_AbcDeriveDes( pAbcNtk );
191 p = Bac_PtrTransformToCba( vDes );
192 Bac_PtrFree( vDes ); // points to names in pAbcNtk
193 if ( p )
194 {
195 ABC_FREE( p->pSpec );
196 p->pSpec = Abc_UtilStrsav( pAbcNtk->pSpec );
197 }
198 Abc_NtkDelete( pAbcNtk );
199 }
200 else if ( !strcmp( Extra_FileNameExtension(pFileName), "blif" ) )
201 {
202 vDes = Psr_ManReadBlif( pFileName );
203 if ( vDes && Vec_PtrSize(vDes) )
204 p = Psr_ManBuildCba( pFileName, vDes );
205 if ( vDes )
206 Psr_ManVecFree( vDes );
207 }
208 else if ( !strcmp( Extra_FileNameExtension(pFileName), "v" ) )
209 {
210 vDes = Psr_ManReadVerilog( pFileName );
211 if ( vDes && Vec_PtrSize(vDes) )
212 p = Psr_ManBuildCba( pFileName, vDes );
213 if ( vDes )
214 Psr_ManVecFree( vDes );
215 }
216 else if ( !strcmp( Extra_FileNameExtension(pFileName), "smt" ) )
217 {
218 vDes = NULL;//Psr_ManReadSmt( pFileName );
219 if ( vDes && Vec_PtrSize(vDes) )
220 p = Psr_ManBuildCba( pFileName, vDes );
221 if ( vDes )
222 Psr_ManVecFree( vDes );
223 }
224 else if ( !strcmp( Extra_FileNameExtension(pFileName), "bac" ) )
225 {
226 p = Bac_ManReadBac( pFileName );
227 }
228 else
229 {
230 printf( "Unrecognized input file extension.\n" );
231 return 0;
232 }
233 Bac_AbcUpdateMan( pAbc, p );
234 return 0;
235usage:
236 Abc_Print( -2, "usage: @_read [-apvh] <file_name>\n" );
237 Abc_Print( -2, "\t reads hierarchical design in BLIF or Verilog\n" );
238 Abc_Print( -2, "\t-a : toggle using old ABC parser [default = %s]\n", fUseAbc? "yes": "no" );
239 Abc_Print( -2, "\t-p : toggle using Ptr construction [default = %s]\n", fUsePtr? "yes": "no" );
240 Abc_Print( -2, "\t-v : toggle printing verbose information [default = %s]\n", fVerbose? "yes": "no" );
241 Abc_Print( -2, "\t-h : print the command usage\n");
242 return 1;
243}
244
256int Bac_CommandWrite( Abc_Frame_t * pAbc, int argc, char ** argv )
257{
258 Bac_Man_t * p = Bac_AbcGetMan(pAbc);
259 char * pFileName = NULL;
260 int fUseAssign = 1;
261 int fUsePtr = 0;
262 int c, fVerbose = 0;
264 while ( ( c = Extra_UtilGetopt( argc, argv, "apvh" ) ) != EOF )
265 {
266 switch ( c )
267 {
268 case 'a':
269 fUseAssign ^= 1;
270 break;
271 case 'p':
272 fUsePtr ^= 1;
273 break;
274 case 'v':
275 fVerbose ^= 1;
276 break;
277 case 'h':
278 goto usage;
279 default:
280 goto usage;
281 }
282 }
283 if ( p == NULL )
284 {
285 Abc_Print( 1, "Bac_CommandWrite(): There is no current design.\n" );
286 return 0;
287 }
288 if ( argc == globalUtilOptind + 1 )
289 pFileName = argv[globalUtilOptind];
290 else if ( argc == globalUtilOptind && p )
291 pFileName = Extra_FileNameGenericAppend( Bac_ManName(p), "_out.v" );
292 else
293 {
294 printf( "Output file name should be given on the command line.\n" );
295 return 0;
296 }
297 // perform writing
298 if ( !strcmp( Extra_FileNameExtension(pFileName), "blif" ) )
299 Bac_ManWriteBlif( pFileName, p );
300 else if ( !strcmp( Extra_FileNameExtension(pFileName), "v" ) )
301 {
302 if ( fUsePtr )
303 {
304 Vec_Ptr_t * vPtr = Bac_PtrDeriveFromCba( p );
305 if ( vPtr == NULL )
306 printf( "Converting to Ptr has failed.\n" );
307 else
308 {
309 Bac_PtrDumpVerilog( pFileName, vPtr );
310 Bac_PtrFree( vPtr );
311 }
312 }
313 else
314 Bac_ManWriteVerilog( pFileName, p, fUseAssign );
315 }
316 else if ( !strcmp( Extra_FileNameExtension(pFileName), "bac" ) )
317 Bac_ManWriteBac( pFileName, p );
318 else
319 {
320 printf( "Unrecognized output file extension.\n" );
321 return 0;
322 }
323 return 0;
324usage:
325 Abc_Print( -2, "usage: @_write [-apvh]\n" );
326 Abc_Print( -2, "\t writes the design into a file in BLIF or Verilog\n" );
327 Abc_Print( -2, "\t-a : toggle using assign-statement for primitives [default = %s]\n", fUseAssign? "yes": "no" );
328 Abc_Print( -2, "\t-p : toggle using Ptr construction (mapped Verilog only) [default = %s]\n", fUsePtr? "yes": "no" );
329 Abc_Print( -2, "\t-v : toggle printing verbose information [default = %s]\n", fVerbose? "yes": "no" );
330 Abc_Print( -2, "\t-h : print the command usage\n");
331 return 1;
332}
333
334
346int Bac_CommandPs( Abc_Frame_t * pAbc, int argc, char ** argv )
347{
348 Bac_Man_t * p = Bac_AbcGetMan(pAbc);
349 int c, nModules = 0, fVerbose = 0;
351 while ( ( c = Extra_UtilGetopt( argc, argv, "Mvh" ) ) != EOF )
352 {
353 switch ( c )
354 {
355 case 'M':
356 if ( globalUtilOptind >= argc )
357 {
358 Abc_Print( -1, "Command line switch \"-M\" should be followed by an integer.\n" );
359 goto usage;
360 }
361 nModules = atoi(argv[globalUtilOptind]);
363 if ( nModules < 0 )
364 goto usage;
365 break;
366 case 'v':
367 fVerbose ^= 1;
368 break;
369 case 'h':
370 goto usage;
371 default:
372 goto usage;
373 }
374 }
375 if ( p == NULL )
376 {
377 Abc_Print( 1, "Bac_CommandPs(): There is no current design.\n" );
378 return 0;
379 }
380 Bac_ManPrintStats( p, nModules, fVerbose );
381 return 0;
382usage:
383 Abc_Print( -2, "usage: @_ps [-M num] [-vh]\n" );
384 Abc_Print( -2, "\t prints statistics\n" );
385 Abc_Print( -2, "\t-M num : the number of first modules to report [default = %d]\n", nModules );
386 Abc_Print( -2, "\t-v : toggle printing verbose information [default = %s]\n", fVerbose? "yes": "no" );
387 Abc_Print( -2, "\t-h : print the command usage\n");
388 return 1;
389}
390
402int Bac_CommandPut( Abc_Frame_t * pAbc, int argc, char ** argv )
403{
404 Bac_Man_t * p = Bac_AbcGetMan(pAbc);
405 Gia_Man_t * pGia = NULL;
406 int c, fBarBufs = 1, fVerbose = 0;
408 while ( ( c = Extra_UtilGetopt( argc, argv, "bvh" ) ) != EOF )
409 {
410 switch ( c )
411 {
412 case 'b':
413 fBarBufs ^= 1;
414 break;
415 case 'v':
416 fVerbose ^= 1;
417 break;
418 case 'h':
419 goto usage;
420 default:
421 goto usage;
422 }
423 }
424 if ( p == NULL )
425 {
426 Abc_Print( 1, "Bac_CommandPut(): There is no current design.\n" );
427 return 0;
428 }
429 pGia = Bac_ManExtract( p, fBarBufs, fVerbose );
430 if ( pGia == NULL )
431 {
432 Abc_Print( 1, "Bac_CommandPut(): Conversion to AIG has failed.\n" );
433 return 0;
434 }
435 Abc_FrameUpdateGia( pAbc, pGia );
436 return 0;
437usage:
438 Abc_Print( -2, "usage: @_put [-bvh]\n" );
439 Abc_Print( -2, "\t extracts AIG from the hierarchical design\n" );
440 Abc_Print( -2, "\t-b : toggle using barrier buffers [default = %s]\n", fBarBufs? "yes": "no" );
441 Abc_Print( -2, "\t-v : toggle printing verbose information [default = %s]\n", fVerbose? "yes": "no" );
442 Abc_Print( -2, "\t-h : print the command usage\n");
443 return 1;
444}
445
457int Bac_CommandGet( Abc_Frame_t * pAbc, int argc, char ** argv )
458{
459 Bac_Man_t * pNew = NULL, * p = Bac_AbcGetMan(pAbc);
460 int c, fMapped = 0, fVerbose = 0;
462 while ( ( c = Extra_UtilGetopt( argc, argv, "mvh" ) ) != EOF )
463 {
464 switch ( c )
465 {
466 case 'm':
467 fMapped ^= 1;
468 break;
469 case 'v':
470 fVerbose ^= 1;
471 break;
472 case 'h':
473 goto usage;
474 default:
475 goto usage;
476 }
477 }
478 if ( p == NULL )
479 {
480 Abc_Print( 1, "Bac_CommandGet(): There is no current design.\n" );
481 return 0;
482 }
483 if ( fMapped )
484 {
485 if ( pAbc->pNtkCur == NULL )
486 {
487 Abc_Print( 1, "Bac_CommandGet(): There is no current mapped design.\n" );
488 return 0;
489 }
490 pNew = (Bac_Man_t *)Bac_ManInsertAbc( p, pAbc->pNtkCur );
491 }
492 else
493 {
494 if ( pAbc->pGia == NULL )
495 {
496 Abc_Print( 1, "Bac_CommandGet(): There is no current AIG.\n" );
497 return 0;
498 }
499 pNew = Bac_ManInsertGia( p, pAbc->pGia );
500 }
501 Bac_AbcUpdateMan( pAbc, pNew );
502 return 0;
503usage:
504 Abc_Print( -2, "usage: @_get [-mvh]\n" );
505 Abc_Print( -2, "\t inserts AIG or mapped network into the hierarchical design\n" );
506 Abc_Print( -2, "\t-m : toggle using mapped network from main-space [default = %s]\n", fMapped? "yes": "no" );
507 Abc_Print( -2, "\t-v : toggle printing verbose information [default = %s]\n", fVerbose? "yes": "no" );
508 Abc_Print( -2, "\t-h : print the command usage\n");
509 return 1;
510}
511
523int Bac_CommandClp( Abc_Frame_t * pAbc, int argc, char ** argv )
524{
525 Bac_Man_t * pNew = NULL, * p = Bac_AbcGetMan(pAbc);
526 int c, fVerbose = 0;
528 while ( ( c = Extra_UtilGetopt( argc, argv, "vh" ) ) != EOF )
529 {
530 switch ( c )
531 {
532 case 'v':
533 fVerbose ^= 1;
534 break;
535 case 'h':
536 goto usage;
537 default:
538 goto usage;
539 }
540 }
541 if ( p == NULL )
542 {
543 Abc_Print( 1, "Bac_CommandGet(): There is no current design.\n" );
544 return 0;
545 }
546 pNew = Bac_ManCollapse( p );
547 Bac_AbcUpdateMan( pAbc, pNew );
548 return 0;
549usage:
550 Abc_Print( -2, "usage: @_clp [-vh]\n" );
551 Abc_Print( -2, "\t collapses the current hierarchical design\n" );
552 Abc_Print( -2, "\t-v : toggle printing verbose information [default = %s]\n", fVerbose? "yes": "no" );
553 Abc_Print( -2, "\t-h : print the command usage\n");
554 return 1;
555}
556
568int Bac_CommandCec( Abc_Frame_t * pAbc, int argc, char ** argv )
569{
570 Bac_Man_t * p = Bac_AbcGetMan(pAbc);
571 Gia_Man_t * pFirst, * pSecond, * pMiter;
572 Cec_ParCec_t ParsCec, * pPars = &ParsCec;
573 Vec_Ptr_t * vDes;
574 char * FileName, * pStr, ** pArgvNew;
575 int c, nArgcNew, fDumpMiter = 0;
576 FILE * pFile;
579 while ( ( c = Extra_UtilGetopt( argc, argv, "vh" ) ) != EOF )
580 {
581 switch ( c )
582 {
583 case 'v':
584 pPars->fVerbose ^= 1;
585 break;
586 case 'h':
587 goto usage;
588 default:
589 goto usage;
590 }
591 }
592 if ( p == NULL )
593 {
594 Abc_Print( 1, "Bac_CommandCec(): There is no current design.\n" );
595 return 0;
596 }
597 pArgvNew = argv + globalUtilOptind;
598 nArgcNew = argc - globalUtilOptind;
599 if ( nArgcNew != 1 )
600 {
601 if ( p->pSpec == NULL )
602 {
603 Abc_Print( -1, "File name is not given on the command line.\n" );
604 return 1;
605 }
606 FileName = p->pSpec;
607 }
608 else
609 FileName = pArgvNew[0];
610 // fix the wrong symbol
611 for ( pStr = FileName; *pStr; pStr++ )
612 if ( *pStr == '>' )
613 *pStr = '\\';
614 if ( (pFile = fopen( FileName, "r" )) == NULL )
615 {
616 Abc_Print( -1, "Cannot open input file \"%s\". ", FileName );
617 if ( (FileName = Extra_FileGetSimilarName( FileName, ".v", ".blif", NULL, NULL, NULL )) )
618 Abc_Print( 1, "Did you mean \"%s\"?", FileName );
619 Abc_Print( 1, "\n" );
620 return 1;
621 }
622 fclose( pFile );
623
624 // extract AIG from the current design
625 pFirst = Bac_ManExtract( p, 0, 0 );
626 if ( pFirst == NULL )
627 {
628 Abc_Print( -1, "Extracting AIG from the current design has failed.\n" );
629 return 0;
630 }
631 // extract AIG from the second design
632 if ( !strcmp( Extra_FileNameExtension(FileName), "blif" ) )
633 vDes = Psr_ManReadBlif( FileName );
634 else if ( !strcmp( Extra_FileNameExtension(FileName), "v" ) )
635 vDes = Psr_ManReadVerilog( FileName );
636 else assert( 0 );
637 p = Psr_ManBuildCba( FileName, vDes );
638 Psr_ManVecFree( vDes );
639 pSecond = Bac_ManExtract( p, 0, 0 );
640 Bac_ManFree( p );
641 if ( pSecond == NULL )
642 {
643 Gia_ManStop( pFirst );
644 Abc_Print( -1, "Extracting AIG from the original design has failed.\n" );
645 return 0;
646 }
647 // compute the miter
648 pMiter = Gia_ManMiter( pFirst, pSecond, 0, 1, 0, 0, pPars->fVerbose );
649 if ( pMiter )
650 {
651 if ( fDumpMiter )
652 {
653 Abc_Print( 0, "The verification miter is written into file \"%s\".\n", "cec_miter.aig" );
654 Gia_AigerWrite( pMiter, "cec_miter.aig", 0, 0, 0 );
655 }
656 pAbc->Status = Cec_ManVerify( pMiter, pPars );
657 //Abc_FrameReplaceCex( pAbc, &pAbc->pGia->pCexComb );
658 Gia_ManStop( pMiter );
659 }
660 Gia_ManStop( pFirst );
661 Gia_ManStop( pSecond );
662 return 0;
663usage:
664 Abc_Print( -2, "usage: @_cec [-vh]\n" );
665 Abc_Print( -2, "\t combinational equivalence checking\n" );
666 Abc_Print( -2, "\t-v : toggle printing verbose information [default = %s]\n", pPars->fVerbose? "yes": "no" );
667 Abc_Print( -2, "\t-h : print the command usage\n");
668 return 1;
669}
670
682int Bac_CommandTest( Abc_Frame_t * pAbc, int argc, char ** argv )
683{
684 extern void Psr_ManReadBlifTest();
685 extern void Psr_ManReadVerilogTest();
686 extern void Psr_SmtReadSmtTest();
687 //Bac_Man_t * p = Bac_AbcGetMan(pAbc);
688 int c, fVerbose = 0;
690 while ( ( c = Extra_UtilGetopt( argc, argv, "vh" ) ) != EOF )
691 {
692 switch ( c )
693 {
694 case 'v':
695 fVerbose ^= 1;
696 break;
697 case 'h':
698 goto usage;
699 default:
700 goto usage;
701 }
702 }
703/*
704 if ( p == NULL )
705 {
706 Abc_Print( 1, "Bac_CommandTest(): There is no current design.\n" );
707 return 0;
708 }
709*/
710 //Bac_PtrTransformTestTest();
711 //Psr_ManReadVerilogTest();
712 //Psr_SmtReadSmtTest();
713 return 0;
714usage:
715 Abc_Print( -2, "usage: @_test [-vh]\n" );
716 Abc_Print( -2, "\t experiments with word-level networks\n" );
717 Abc_Print( -2, "\t-v : toggle printing verbose information [default = %s]\n", fVerbose? "yes": "no" );
718 Abc_Print( -2, "\t-h : print the command usage\n");
719 return 1;
720}
721
725
726
728
void Abc_FrameUpdateGia(Abc_Frame_t *pAbc, Gia_Man_t *pNew)
Definition abc.c:824
struct Abc_Ntk_t_ Abc_Ntk_t
Definition abc.h:115
ABC_DLL void Abc_NtkDelete(Abc_Ntk_t *pNtk)
Definition abcNtk.c:1421
#define ABC_FREE(obj)
Definition abc_global.h:267
#define ABC_NAMESPACE_IMPL_START
#define ABC_NAMESPACE_IMPL_END
typedefABC_NAMESPACE_HEADER_START struct Abc_Frame_t_ Abc_Frame_t
INCLUDES ///.
Definition abcapis.h:38
ABC_DLL Abc_Frame_t * Abc_FrameGetGlobalFrame()
Definition mainFrame.c:643
void Bac_Init(Abc_Frame_t *pAbc)
Definition bacCom.c:102
void Abc_FrameImportPtr(Vec_Ptr_t *vPtr)
FUNCTION DEFINITIONS ///.
Definition bacCom.c:60
Vec_Ptr_t * Abc_FrameExportPtr()
Definition bacCom.c:73
void Bac_End(Abc_Frame_t *pAbc)
Definition bacCom.c:125
Vec_Ptr_t * Ptr_AbcDeriveDes(Abc_Ntk_t *pNtk)
Definition bacPtrAbc.c:194
void Psr_ManReadBlifTest()
void Psr_ManReadVerilogTest(char *pFileName)
Definition bacReadVer.c:849
void Bac_PtrFree(Vec_Ptr_t *vDes)
Definition bacPtr.c:98
struct Bac_Man_t_ Bac_Man_t
Definition bac.h:142
Gia_Man_t * Bac_ManExtract(Bac_Man_t *p, int fBuffers, int fVerbose)
Definition bacBlast.c:216
Bac_Man_t * Bac_ManCollapse(Bac_Man_t *p)
Definition bacNtk.c:567
Bac_Man_t * Bac_ManInsertGia(Bac_Man_t *p, Gia_Man_t *pGia)
Definition bacBlast.c:399
void Bac_ManWriteBac(char *pFileName, Bac_Man_t *p)
Definition bacBac.c:272
void Bac_ManWriteBlif(char *pFileName, Bac_Man_t *p)
Bac_Man_t * Bac_ManReadBac(char *pFileName)
Definition bacBac.c:181
Vec_Ptr_t * Psr_ManReadVerilog(char *pFileName)
Definition bacReadVer.c:834
void Bac_PtrDumpVerilog(char *pFileName, Vec_Ptr_t *vDes)
Definition bacPtr.c:256
Bac_Man_t * Bac_PtrTransformToCba(Vec_Ptr_t *vDes)
Definition bacPtrAbc.c:355
Bac_Man_t * Psr_ManBuildCba(char *pFileName, Vec_Ptr_t *vDes)
void * Bac_ManInsertAbc(Bac_Man_t *p, void *pAbc)
Definition bacBlast.c:570
Vec_Ptr_t * Psr_ManReadBlif(char *pFileName)
void Bac_ManWriteVerilog(char *pFileName, Bac_Man_t *p, int fUseAssign)
Vec_Ptr_t * Bac_PtrDeriveFromCba(Bac_Man_t *p)
Definition bacPtrAbc.c:459
void Cec_ManCecSetDefaultParams(Cec_ParCec_t *p)
Definition cecCore.c:159
struct Cec_ParCec_t_ Cec_ParCec_t
Definition cec.h:129
int Cec_ManVerify(Gia_Man_t *p, Cec_ParCec_t *pPars)
MACRO DEFINITIONS ///.
Definition cecCec.c:326
void Cmd_CommandAdd(Abc_Frame_t *pAbc, const char *sGroup, const char *sName, Cmd_CommandFuncType pFunc, int fChanges)
Definition cmdApi.c:63
Cube * p
Definition exorList.c:222
int globalUtilOptind
char * Extra_FileGetSimilarName(char *pFileNameWrong, char *pS1, char *pS2, char *pS3, char *pS4, char *pS5)
int Extra_UtilGetopt(int argc, char *argv[], const char *optstring)
ABC_DLL void Extra_UtilGetoptReset()
char * Extra_FileNameGenericAppend(char *pBase, char *pSuffix)
char * Extra_FileNameExtension(char *FileName)
void Gia_ManStop(Gia_Man_t *p)
Definition giaMan.c:82
struct Gia_Man_t_ Gia_Man_t
Definition gia.h:96
Gia_Man_t * Gia_ManMiter(Gia_Man_t *pAig0, Gia_Man_t *pAig1, int nInsDup, int fDualOut, int fSeq, int fImplic, int fVerbose)
Definition giaDup.c:2983
void Gia_AigerWrite(Gia_Man_t *p, char *pFileName, int fWriteSymbols, int fCompact, int fWriteNewLine)
Definition giaAiger.c:1595
Abc_Ntk_t * Io_ReadNetlist(char *pFileName, Io_FileType_t FileType, int fCheck)
Definition ioUtil.c:99
Io_FileType_t Io_ReadFileType(char *pFileName)
DECLARATIONS ///.
Definition ioUtil.c:47
usage()
Definition main.c:626
char * pSpec
Definition abc.h:159
int fVerbose
Definition cec.h:140
#define assert(ex)
Definition util_old.h:213
int strcmp()
typedefABC_NAMESPACE_HEADER_START struct Vec_Ptr_t_ Vec_Ptr_t
INCLUDES ///.
Definition vecPtr.h:42