| /**CFile**************************************************************** |
| |
| FileName [mvcPrint.c] |
| |
| PackageName [MVSIS 2.0: Multi-valued logic synthesis system.] |
| |
| Synopsis [Printing cubes and covers.] |
| |
| Author [MVSIS Group] |
| |
| Affiliation [UC Berkeley] |
| |
| Date [Ver. 1.0. Started - February 1, 2003.] |
| |
| Revision [$Id: mvcPrint.c,v 1.6 2003/04/09 18:02:06 alanmi Exp $] |
| |
| ***********************************************************************/ |
| |
| #include "mvc.h" |
| //#include "vm.h" |
| //#include "vmInt.h" |
| |
| ABC_NAMESPACE_IMPL_START |
| |
| |
| //////////////////////////////////////////////////////////////////////// |
| /// DECLARATIONS /// |
| //////////////////////////////////////////////////////////////////////// |
| |
| static void Mvc_CubePrintBinary( Mvc_Cover_t * pCover, Mvc_Cube_t * pCube ); |
| |
| //////////////////////////////////////////////////////////////////////// |
| /// FUNCTION DEFINITIONS /// |
| //////////////////////////////////////////////////////////////////////// |
| |
| /**Function************************************************************* |
| |
| Synopsis [] |
| |
| Description [] |
| |
| SideEffects [] |
| |
| SeeAlso [] |
| |
| ***********************************************************************/ |
| void Mvc_CoverPrint( Mvc_Cover_t * pCover ) |
| { |
| Mvc_Cube_t * pCube; |
| int i; |
| // print general statistics |
| printf( "The cover contains %d cubes (%d bits and %d words)\n", |
| pCover->lCubes.nItems, pCover->nBits, pCover->nWords ); |
| // iterate through the cubes |
| Mvc_CoverForEachCube( pCover, pCube ) |
| Mvc_CubePrint( pCover, pCube ); |
| |
| if ( pCover->pLits ) |
| { |
| for ( i = 0; i < pCover->nBits; i++ ) |
| printf( " %d", pCover->pLits[i] ); |
| printf( "\n" ); |
| } |
| printf( "End of cover printout\n" ); |
| } |
| |
| |
| /**Function************************************************************* |
| |
| Synopsis [] |
| |
| Description [] |
| |
| SideEffects [] |
| |
| SeeAlso [] |
| |
| ***********************************************************************/ |
| void Mvc_CubePrint( Mvc_Cover_t * pCover, Mvc_Cube_t * pCube ) |
| { |
| int iBit, Value; |
| // iterate through the literals |
| // printf( "Size = %2d ", Mvc_CubeReadSize(pCube) ); |
| Mvc_CubeForEachBit( pCover, pCube, iBit, Value ) |
| printf( "%c", '0' + Value ); |
| printf( "\n" ); |
| } |
| |
| |
| /**Function************************************************************* |
| |
| Synopsis [] |
| |
| Description [] |
| |
| SideEffects [] |
| |
| SeeAlso [] |
| |
| ***********************************************************************/ |
| void Mvc_CoverPrintBinary( Mvc_Cover_t * pCover ) |
| { |
| Mvc_Cube_t * pCube; |
| int i; |
| // print general statistics |
| printf( "The cover contains %d cubes (%d bits and %d words)\n", |
| pCover->lCubes.nItems, pCover->nBits, pCover->nWords ); |
| // iterate through the cubes |
| Mvc_CoverForEachCube( pCover, pCube ) |
| Mvc_CubePrintBinary( pCover, pCube ); |
| |
| if ( pCover->pLits ) |
| { |
| for ( i = 0; i < pCover->nBits; i++ ) |
| printf( " %d", pCover->pLits[i] ); |
| printf( "\n" ); |
| } |
| printf( "End of cover printout\n" ); |
| } |
| |
| |
| /**Function************************************************************* |
| |
| Synopsis [] |
| |
| Description [] |
| |
| SideEffects [] |
| |
| SeeAlso [] |
| |
| ***********************************************************************/ |
| void Mvc_CubePrintBinary( Mvc_Cover_t * pCover, Mvc_Cube_t * pCube ) |
| { |
| int iVar, Value; |
| // iterate through the literals |
| // printf( "Size = %2d ", Mvc_CubeReadSize(pCube) ); |
| Mvc_CubeForEachVarValue( pCover, pCube, iVar, Value ) |
| { |
| assert( Value != 0 ); |
| if ( Value == 3 ) |
| printf( "-" ); |
| else if ( Value == 1 ) |
| printf( "0" ); |
| else |
| printf( "1" ); |
| } |
| printf( "\n" ); |
| } |
| |
| #if 0 |
| |
| /**Function************************************************************* |
| |
| Synopsis [] |
| |
| Description [] |
| |
| SideEffects [] |
| |
| SeeAlso [] |
| |
| ***********************************************************************/ |
| void Mvc_CoverPrintMv( Mvc_Data_t * pData, Mvc_Cover_t * pCover ) |
| { |
| Mvc_Cube_t * pCube; |
| int i; |
| // print general statistics |
| printf( "The cover contains %d cubes (%d bits and %d words)\n", |
| pCover->lCubes.nItems, pCover->nBits, pCover->nWords ); |
| // iterate through the cubes |
| Mvc_CoverForEachCube( pCover, pCube ) |
| Mvc_CubePrintMv( pData, pCover, pCube ); |
| |
| if ( pCover->pLits ) |
| { |
| for ( i = 0; i < pCover->nBits; i++ ) |
| printf( " %d", pCover->pLits[i] ); |
| printf( "\n" ); |
| } |
| printf( "End of cover printout\n" ); |
| } |
| |
| |
| /**Function************************************************************* |
| |
| Synopsis [] |
| |
| Description [] |
| |
| SideEffects [] |
| |
| SeeAlso [] |
| |
| ***********************************************************************/ |
| void Mvc_CubePrintMv( Mvc_Data_t * pData, Mvc_Cover_t * pCover, Mvc_Cube_t * pCube ) |
| { |
| int iLit, iVar; |
| // iterate through the literals |
| printf( "Size = %2d ", Mvc_CubeReadSize(pCube) ); |
| iVar = 0; |
| for ( iLit = 0; iLit < pData->pVm->nValuesIn; iLit++ ) |
| { |
| if ( iLit == pData->pVm->pValuesFirst[iVar+1] ) |
| { |
| printf( " " ); |
| iVar++; |
| } |
| if ( Mvc_CubeBitValue( pCube, iLit ) ) |
| printf( "%c", '0' + iLit - pData->pVm->pValuesFirst[iVar] ); |
| else |
| printf( "-" ); |
| } |
| printf( "\n" ); |
| } |
| |
| #endif |
| |
| //////////////////////////////////////////////////////////////////////// |
| /// END OF FILE /// |
| //////////////////////////////////////////////////////////////////////// |
| |
| |
| ABC_NAMESPACE_IMPL_END |
| |