1 /**CFile**************************************************************** 2 3 FileName [ioAbc.h] 4 5 SystemName [ABC: Logic synthesis and verification system.] 6 7 PackageName [Command processing package.] 8 9 Synopsis [External declarations.] 10 11 Author [Alan Mishchenko] 12 13 Affiliation [UC Berkeley] 14 15 Date [Ver. 1.0. Started - June 20, 2005.] 16 17 Revision [$Id: ioAbc.h,v 1.00 2005/06/20 00:00:00 alanmi Exp $] 18 19 ***********************************************************************/ 20 21 #ifndef ABC__base__io__ioAbc_h 22 #define ABC__base__io__ioAbc_h 23 24 25 //////////////////////////////////////////////////////////////////////// 26 /// INCLUDES /// 27 //////////////////////////////////////////////////////////////////////// 28 29 #include "base/abc/abc.h" 30 #include "misc/extra/extra.h" 31 #include "misc/util/utilNam.h" 32 33 //////////////////////////////////////////////////////////////////////// 34 /// PARAMETERS /// 35 //////////////////////////////////////////////////////////////////////// 36 37 38 39 ABC_NAMESPACE_HEADER_START 40 41 42 //////////////////////////////////////////////////////////////////////// 43 /// BASIC TYPES /// 44 //////////////////////////////////////////////////////////////////////// 45 46 // network functionality 47 typedef enum { 48 IO_FILE_NONE = 0, 49 IO_FILE_AIGER, 50 IO_FILE_BAF, 51 IO_FILE_BBLIF, 52 IO_FILE_BLIF, 53 IO_FILE_BLIFMV, 54 IO_FILE_BENCH, 55 IO_FILE_BOOK, 56 IO_FILE_CNF, 57 IO_FILE_DOT, 58 IO_FILE_EDIF, 59 IO_FILE_EQN, 60 IO_FILE_GML, 61 IO_FILE_JSON, 62 IO_FILE_LIST, 63 IO_FILE_PLA, 64 IO_FILE_MOPLA, 65 IO_FILE_SMV, 66 IO_FILE_VERILOG, 67 IO_FILE_UNKNOWN 68 } Io_FileType_t; 69 70 //////////////////////////////////////////////////////////////////////// 71 /// MACRO DEFINITIONS /// 72 //////////////////////////////////////////////////////////////////////// 73 74 #define IO_WRITE_LINE_LENGTH 78 // the output line length 75 76 //////////////////////////////////////////////////////////////////////// 77 /// FUNCTION DECLARATIONS /// 78 //////////////////////////////////////////////////////////////////////// 79 80 /*=== abcReadAiger.c ==========================================================*/ 81 extern Abc_Ntk_t * Io_ReadAiger( char * pFileName, int fCheck ); 82 /*=== abcReadBaf.c ============================================================*/ 83 extern Abc_Ntk_t * Io_ReadBaf( char * pFileName, int fCheck ); 84 /*=== abcReadBblif.c ============================================================*/ 85 extern Abc_Ntk_t * Io_ReadBblif( char * pFileName, int fCheck ); 86 /*=== abcReadBlif.c ===========================================================*/ 87 extern Abc_Ntk_t * Io_ReadBlif( char * pFileName, int fCheck ); 88 /*=== abcReadBlifMv.c =========================================================*/ 89 extern Abc_Ntk_t * Io_ReadBlifMv( char * pFileName, int fBlifMv, int fCheck ); 90 /*=== abcReadBench.c ==========================================================*/ 91 extern Abc_Ntk_t * Io_ReadBench( char * pFileName, int fCheck ); 92 extern void Io_ReadBenchInit( Abc_Ntk_t * pNtk, char * pFileName ); 93 /*=== abcReadEdif.c ===========================================================*/ 94 extern Abc_Ntk_t * Io_ReadEdif( char * pFileName, int fCheck ); 95 /*=== abcReadEqn.c ============================================================*/ 96 extern Abc_Ntk_t * Io_ReadEqn( char * pFileName, int fCheck ); 97 /*=== abcReadPla.c ============================================================*/ 98 extern Abc_Ntk_t * Io_ReadPla( char * pFileName, int fZeros, int fBoth, int fOnDc, int fSkipPrepro, int fCheck ); 99 /*=== abcReadVerilog.c ========================================================*/ 100 extern Abc_Ntk_t * Io_ReadVerilog( char * pFileName, int fCheck ); 101 /*=== abcWriteAiger.c =========================================================*/ 102 extern void Io_WriteAiger( Abc_Ntk_t * pNtk, char * pFileName, int fWriteSymbols, int fCompact, int fUnique ); 103 extern void Io_WriteAigerCex( Abc_Cex_t * pCex, Abc_Ntk_t * pNtk, void * pG, char * pFileName ); 104 /*=== abcWriteBaf.c ===========================================================*/ 105 extern void Io_WriteBaf( Abc_Ntk_t * pNtk, char * pFileName ); 106 /*=== abcWriteBblif.c ===========================================================*/ 107 extern void Io_WriteBblif( Abc_Ntk_t * pNtk, char * pFileName ); 108 /*=== abcWriteBlif.c ==========================================================*/ 109 extern void Io_WriteBlifLogic( Abc_Ntk_t * pNtk, char * pFileName, int fWriteLatches ); 110 extern void Io_WriteBlif( Abc_Ntk_t * pNtk, char * pFileName, int fWriteLatches, int fBb2Wb, int fSeq ); 111 extern void Io_WriteTimingInfo( FILE * pFile, Abc_Ntk_t * pNtk ); 112 extern void Io_WriteBlifSpecial( Abc_Ntk_t * pNtk, char * FileName, char * pLutStruct, int fUseHie ); 113 /*=== abcWriteBlifMv.c ==========================================================*/ 114 extern void Io_WriteBlifMv( Abc_Ntk_t * pNtk, char * FileName ); 115 /*=== abcWriteBench.c =========================================================*/ 116 extern int Io_WriteBench( Abc_Ntk_t * pNtk, const char * FileName ); 117 extern int Io_WriteBenchLut( Abc_Ntk_t * pNtk, char * FileName ); 118 /*=== abcWriteBook.c =========================================================*/ 119 extern void Io_WriteBook( Abc_Ntk_t * pNtk, char * FileName ); 120 /*=== abcWriteCnf.c ===========================================================*/ 121 extern int Io_WriteCnf( Abc_Ntk_t * pNtk, char * FileName, int fAllPrimes ); 122 /*=== abcWriteDot.c ===========================================================*/ 123 extern void Io_WriteDot( Abc_Ntk_t * pNtk, char * FileName ); 124 extern void Io_WriteDotNtk( Abc_Ntk_t * pNtk, Vec_Ptr_t * vNodes, Vec_Ptr_t * vNodesShow, char * pFileName, int fGateNames, int fUseReverse ); 125 extern void Io_WriteDotSeq( Abc_Ntk_t * pNtk, Vec_Ptr_t * vNodes, Vec_Ptr_t * vNodesShow, char * pFileName, int fGateNames, int fUseReverse ); 126 /*=== abcWriteEqn.c ===========================================================*/ 127 extern void Io_WriteEqn( Abc_Ntk_t * pNtk, char * pFileName ); 128 /*=== abcWriteGml.c ===========================================================*/ 129 extern void Io_WriteGml( Abc_Ntk_t * pNtk, char * pFileName ); 130 /*=== abcWriteList.c ==========================================================*/ 131 extern void Io_WriteList( Abc_Ntk_t * pNtk, char * pFileName, int fUseHost ); 132 /*=== abcWritePla.c ===========================================================*/ 133 extern int Io_WritePla( Abc_Ntk_t * pNtk, char * FileName ); 134 extern int Io_WriteMoPla( Abc_Ntk_t * pNtk, char * FileName ); 135 /*=== abcWriteSmv.c ===========================================================*/ 136 extern int Io_WriteSmv( Abc_Ntk_t * pNtk, char * FileName ); 137 /*=== abcWriteVerilog.c =======================================================*/ 138 extern void Io_WriteVerilog( Abc_Ntk_t * pNtk, char * FileName, int fOnlyAnds ); 139 /*=== abcUtil.c ===============================================================*/ 140 extern Io_FileType_t Io_ReadFileType( char * pFileName ); 141 extern Io_FileType_t Io_ReadLibType( char * pFileName ); 142 extern Abc_Ntk_t * Io_ReadNetlist( char * pFileName, Io_FileType_t FileType, int fCheck ); 143 extern Abc_Ntk_t * Io_Read( char * pFileName, Io_FileType_t FileType, int fCheck, int fBarBufs ); 144 extern void Io_Write( Abc_Ntk_t * pNtk, char * pFileName, Io_FileType_t FileType ); 145 extern void Io_WriteHie( Abc_Ntk_t * pNtk, char * pBaseName, char * pFileName ); 146 extern Abc_Obj_t * Io_ReadCreatePi( Abc_Ntk_t * pNtk, char * pName ); 147 extern Abc_Obj_t * Io_ReadCreatePo( Abc_Ntk_t * pNtk, char * pName ); 148 extern Abc_Obj_t * Io_ReadCreateLatch( Abc_Ntk_t * pNtk, char * pNetLI, char * pNetLO ); 149 extern Abc_Obj_t * Io_ReadCreateResetLatch( Abc_Ntk_t * pNtk, int fBlifMv ); 150 extern Abc_Obj_t * Io_ReadCreateResetMux( Abc_Ntk_t * pNtk, char * pResetLO, char * pDataLI, int fBlifMv ); 151 extern Abc_Obj_t * Io_ReadCreateNode( Abc_Ntk_t * pNtk, char * pNameOut, char * pNamesIn[], int nInputs ); 152 extern Abc_Obj_t * Io_ReadCreateConst( Abc_Ntk_t * pNtk, char * pName, int fConst1 ); 153 extern Abc_Obj_t * Io_ReadCreateInv( Abc_Ntk_t * pNtk, char * pNameIn, char * pNameOut ); 154 extern Abc_Obj_t * Io_ReadCreateBuf( Abc_Ntk_t * pNtk, char * pNameIn, char * pNameOut ); 155 extern FILE * Io_FileOpen( const char * FileName, const char * PathVar, const char * Mode, int fVerbose ); 156 157 /*=== ioJson.c ===========================================================*/ 158 extern void Io_ReadJson( char * pFileName ); 159 extern void Io_WriteJson( char * pFileName ); 160 161 162 163 ABC_NAMESPACE_HEADER_END 164 165 166 167 #endif 168 169 //////////////////////////////////////////////////////////////////////// 170 /// END OF FILE /// 171 //////////////////////////////////////////////////////////////////////// 172 173