Exemple #1
0
void Cba_PrsWriteBlifLines( FILE * pFile, Cba_Ntk_t * p )
{
    Vec_Int_t * vFanins;
    int Type, Func, i;
    Cba_NtkForEachObjTypeFuncFanins( p, Type, Func, vFanins, i )
        if ( Type == CBA_PRS_NODE ) // .names/assign/box2 (no formal/actual binding)
        {
            fprintf( pFile, ".names" );
            Cba_PrsWriteBlifArray( pFile, p, vFanins, 1 );
            fprintf( pFile, "%s", Cba_NtkFuncStr(p,  Func) );
        }
        else if ( Type == CBA_PRS_BOX ) // .names/assign/box2 (no formal/actual binding)
        {
            fprintf( pFile, ".subckt" );
            fprintf( pFile, " %s", Cba_NtkStr(p,  Func) );
            Cba_PrsWriteBlifArray2( pFile, p, vFanins );
        }
        else if ( Type == CBA_PRS_LATCH ) // .names/assign/box2 (no formal/actual binding)
        {
            fprintf( pFile, ".latch" );
            fprintf( pFile, " %s", Cba_NtkStr(p,  Vec_IntEntry(vFanins, 1)) );
            fprintf( pFile, " %s", Cba_NtkStr(p,  Vec_IntEntry(vFanins, 0)) );
            fprintf( pFile, " %c\n", '0' + Func );
        }
}
Exemple #2
0
ABC_NAMESPACE_IMPL_START

////////////////////////////////////////////////////////////////////////
///                        DECLARATIONS                              ///
////////////////////////////////////////////////////////////////////////

////////////////////////////////////////////////////////////////////////
///                     FUNCTION DEFINITIONS                         ///
////////////////////////////////////////////////////////////////////////

/**Function*************************************************************

  Synopsis    [Writing parser state into a file.]

  Description []
               
  SideEffects []

  SeeAlso     []

***********************************************************************/
void Cba_PrsWriteBlifArray( FILE * pFile, Cba_Ntk_t * p, Vec_Int_t * vFanins, int fFirst )
{
    int NameId, i;
    Vec_IntForEachEntryStart( vFanins, NameId, i, fFirst )
        fprintf( pFile, " %s", Cba_NtkStr(p, NameId) );
    if ( fFirst )
        fprintf( pFile, " %s", Cba_NtkStr(p, Vec_IntEntry(vFanins,0)) );
    fprintf( pFile, "\n" );
}
Exemple #3
0
void Cba_PrsWriteBlifArray2( FILE * pFile, Cba_Ntk_t * p, Vec_Int_t * vFanins )
{
    int FormId, NameId, i;
    assert( Vec_IntSize(vFanins) % 2 == 0 );
    Vec_IntForEachEntryDouble( vFanins, FormId, NameId, i )
        fprintf( pFile, " %s=%s", Cba_NtkStr(p, FormId), Cba_NtkStr(p, NameId) );
    fprintf( pFile, "\n" );
}
void Cba_NtkObjOrder( Cba_Ntk_t * p, Vec_Int_t * vObjs, Vec_Int_t * vNameIds )
{
    char Buffer[1000], * pName;
    Vec_Ptr_t * vNames;
    int i, iObj;
    if ( Vec_IntSize(vObjs) < 2 )
        return;
    vNames = Vec_PtrAlloc( Vec_IntSize(vObjs) );
    Vec_IntForEachEntry( vObjs, iObj, i )
    {
        char * pTypeName = Cba_NtkTypeName( p, Cba_ObjType(p, iObj) );
        char * pInstName = vNameIds ? Cba_NtkStr(p, Vec_IntEntry(vNameIds, i)) : Cba_ObjNameStr(p, iObj);
        sprintf( Buffer, "%s_%s_%d", pTypeName, pInstName, iObj );
        Vec_PtrPush( vNames, Abc_UtilStrsav(Buffer) );
    }