DECLARATIONS ///.
Date [Ver. 1.0. Started - June 20, 2005.]
] FUNCTION DEFINITIONS /// Function*************************************************************
85{
87 FILE * pFile;
89 int i, nNodes, nAnds, nBufferSize;
90 unsigned * pBufferNode;
91 assert( Abc_NtkIsStrash(pNtk) );
92
93 pFile = fopen( pFileName, "wb" );
94 if ( pFile == NULL )
95 {
96 fprintf( stdout, "Io_WriteBaf(): Cannot open the output file \"%s\".\n", pFileName );
97 return;
98 }
99
100
101 fprintf( pFile,
"# BAF (Binary Aig Format) for \"%s\" written by ABC on %s\n", pNtk->
pName,
Extra_TimeStamp() );
102
103
104 fprintf( pFile,
"%s%c", pNtk->
pName, 0 );
105
106 fprintf( pFile, "%d%c", Abc_NtkPiNum(pNtk), 0 );
107
108 fprintf( pFile, "%d%c", Abc_NtkPoNum(pNtk), 0 );
109
110 fprintf( pFile, "%d%c", Abc_NtkLatchNum(pNtk), 0 );
111
112 fprintf( pFile, "%d%c", Abc_NtkNodeNum(pNtk), 0 );
113
114
117
120
122 {
124 fprintf( pFile,
"%s%c",
Abc_ObjName(Abc_ObjFanin0(pObj)), 0 );
125 fprintf( pFile,
"%s%c",
Abc_ObjName(Abc_ObjFanout0(pObj)), 0 );
126 }
127
128
130 nNodes = 1;
135
136
137 nAnds = 0;
138 nBufferSize = Abc_NtkNodeNum(pNtk) * 2 + Abc_NtkCoNum(pNtk);
139 pBufferNode =
ABC_ALLOC(
unsigned, nBufferSize );
142 {
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);
146 }
147
148
150 {
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);
155 nAnds++;
156 }
158 assert( nBufferSize == nAnds );
159
160
161 fwrite( pBufferNode, 1, sizeof(int) * nBufferSize, pFile );
162 fclose( pFile );
164}
struct Abc_Obj_t_ Abc_Obj_t
#define Abc_NtkForEachCo(pNtk, pCo, i)
#define Abc_AigForEachAnd(pNtk, pNode, i)
#define Abc_NtkForEachPo(pNtk, pPo, i)
#define Abc_NtkForEachLatch(pNtk, pObj, i)
ABC_DLL char * Abc_ObjName(Abc_Obj_t *pNode)
DECLARATIONS ///.
#define Abc_NtkForEachPi(pNtk, pPi, i)
#define Abc_NtkForEachCi(pNtk, pCi, i)
ABC_DLL void Abc_NtkCleanCopy(Abc_Ntk_t *pNtk)
#define ABC_ALLOC(type, num)
ABC_NAMESPACE_IMPL_START typedef char ProgressBar