89 int i, nNodes, nAnds, nBufferSize;
90 unsigned * pBufferNode;
91 assert( Abc_NtkIsStrash(pNtk) );
93 pFile = fopen( pFileName,
"wb" );
96 fprintf( stdout,
"Io_WriteBaf(): Cannot open the output file \"%s\".\n", pFileName );
101 fprintf( pFile,
"# BAF (Binary Aig Format) for \"%s\" written by ABC on %s\n", pNtk->
pName,
Extra_TimeStamp() );
104 fprintf( pFile,
"%s%c", pNtk->
pName, 0 );
106 fprintf( pFile,
"%d%c", Abc_NtkPiNum(pNtk), 0 );
108 fprintf( pFile,
"%d%c", Abc_NtkPoNum(pNtk), 0 );
110 fprintf( pFile,
"%d%c", Abc_NtkLatchNum(pNtk), 0 );
112 fprintf( pFile,
"%d%c", Abc_NtkNodeNum(pNtk), 0 );
124 fprintf( pFile,
"%s%c",
Abc_ObjName(Abc_ObjFanin0(pObj)), 0 );
125 fprintf( pFile,
"%s%c",
Abc_ObjName(Abc_ObjFanout0(pObj)), 0 );
138 nBufferSize = Abc_NtkNodeNum(pNtk) * 2 + Abc_NtkCoNum(pNtk);
139 pBufferNode =
ABC_ALLOC(
unsigned, nBufferSize );
143 Extra_ProgressBarUpdate( pProgress, nAnds, NULL );
144 pBufferNode[nAnds++] = (((int)(ABC_PTRINT_T)Abc_ObjFanin0(pObj)->pCopy) << 1) | (
int)Abc_ObjFaninC0(pObj);
145 pBufferNode[nAnds++] = (((int)(ABC_PTRINT_T)Abc_ObjFanin1(pObj)->pCopy) << 1) | (
int)Abc_ObjFaninC1(pObj);
151 Extra_ProgressBarUpdate( pProgress, nAnds, NULL );
152 pBufferNode[nAnds] = (((int)(ABC_PTRINT_T)Abc_ObjFanin0(pObj)->pCopy) << 1) | (
int)Abc_ObjFaninC0(pObj);
153 if ( Abc_ObjFanoutNum(pObj) > 0 && Abc_ObjIsLatch(Abc_ObjFanout0(pObj)) )
154 pBufferNode[nAnds] = (pBufferNode[nAnds] << 2) | ((
int)(ABC_PTRINT_T)Abc_ObjData(Abc_ObjFanout0(pObj)) & 3);
158 assert( nBufferSize == nAnds );
161 fwrite( pBufferNode, 1,
sizeof(
int) * nBufferSize, pFile );