/**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