abc-master
|
Go to the source code of this file.
Data Structures | |
struct | MvcCubeStruct |
struct | MvcListStruct |
struct | MvcCoverStruct |
struct | MvcDataStruct |
struct | MvcManagerStruct |
Macros | |
#define | BITS_PER_WORD 32 |
INCLUDES ///. More... | |
#define | BITS_PER_WORD_MINUS 31 |
#define | BITS_PER_WORD_LOG 5 |
#define | BITS_DISJOINT ((Mvc_CubeWord_t)0x55555555) |
#define | BITS_FULL ((Mvc_CubeWord_t)0xffffffff) |
#define | Mvc_CubeReadNext(Cube) ((Cube)->pNext) |
MACRO DEFINITIONS ///. More... | |
#define | Mvc_CubeReadNextP(Cube) (&(Cube)->pNext) |
#define | Mvc_CubeReadLast(Cube) ((Cube)->iLast) |
#define | Mvc_CubeReadSize(Cube) ((Cube)->nOnes) |
#define | Mvc_CubeSetNext(Cube, Next) ((Cube)->pNext = (Next)) |
#define | Mvc_CubeSetLast(Cube, Last) ((Cube)->iLast = (Last)) |
#define | Mvc_CubeSetSize(Cube, Size) ((Cube)->nOnes = (Size)) |
#define | Mvc_Cube1Words(Cube) ((Cube)->iLast == 0) |
#define | Mvc_Cube2Words(Cube) ((Cube)->iLast == 1) |
#define | Mvc_CubeNWords(Cube) ((Cube)->iLast > 1) |
#define | Mvc_CubeWhichWord(Bit) ((Bit) >> BITS_PER_WORD_LOG) |
#define | Mvc_CubeWhichBit(Bit) ((Bit) & BITS_PER_WORD_MINUS) |
#define | Mvc_CubeBitValue(Cube, Bit) (((Cube)->pData[Mvc_CubeWhichWord(Bit)] & (((Mvc_CubeWord_t)1)<<(Mvc_CubeWhichBit(Bit)))) > 0) |
#define | Mvc_CubeBitInsert(Cube, Bit) ((Cube)->pData[Mvc_CubeWhichWord(Bit)] |= (((Mvc_CubeWord_t)1)<<(Mvc_CubeWhichBit(Bit)))) |
#define | Mvc_CubeBitRemove(Cube, Bit) ((Cube)->pData[Mvc_CubeWhichWord(Bit)] &= ~(((Mvc_CubeWord_t)1)<<(Mvc_CubeWhichBit(Bit)))) |
#define | Mvc_CubeVarValue(Cube, Var) (((Cube)->pData[Mvc_CubeWhichWord(2*(Var))] >> (Mvc_CubeWhichBit(2*(Var)))) & ((Mvc_CubeWord_t)3)) |
#define | Mvc_Cube1BitClean(Cube) ((Cube)->pData[0] = 0) |
#define | Mvc_Cube2BitClean(Cube) |
#define | Mvc_CubeNBitClean(Cube) |
#define | Mvc_CubeBitCleanUnused(Cube) ((Cube)->pData[(Cube)->iLast] &= (BITS_FULL >> (Cube)->nUnused)) |
#define | Mvc_Cube1BitFill(Cube) (Cube)->pData[0] = (BITS_FULL >> (Cube)->nUnused); |
#define | Mvc_Cube2BitFill(Cube) |
#define | Mvc_CubeNBitFill(Cube) |
#define | Mvc_Cube1BitNot(Cube) ((Cube)->pData[0] ^= (BITS_FULL >> (Cube)->nUnused)) |
#define | Mvc_Cube2BitNot(Cube) |
#define | Mvc_CubeNBitNot(Cube) |
#define | Mvc_Cube1BitCopy(Cube1, Cube2) (((Cube1)->pData[0]) = ((Cube2)->pData[0])) |
#define | Mvc_Cube2BitCopy(Cube1, Cube2) |
#define | Mvc_CubeNBitCopy(Cube1, Cube2) |
#define | Mvc_Cube1BitOr(CubeR, Cube1, Cube2) (((CubeR)->pData[0]) = ((Cube1)->pData[0] | (Cube2)->pData[0])) |
#define | Mvc_Cube2BitOr(CubeR, Cube1, Cube2) |
#define | Mvc_CubeNBitOr(CubeR, Cube1, Cube2) |
#define | Mvc_Cube1BitExor(CubeR, Cube1, Cube2) (((CubeR)->pData[0]) = ((Cube1)->pData[0] ^ (Cube2)->pData[0])) |
#define | Mvc_Cube2BitExor(CubeR, Cube1, Cube2) |
#define | Mvc_CubeNBitExor(CubeR, Cube1, Cube2) |
#define | Mvc_Cube1BitAnd(CubeR, Cube1, Cube2) (((CubeR)->pData[0]) = ((Cube1)->pData[0] & (Cube2)->pData[0])) |
#define | Mvc_Cube2BitAnd(CubeR, Cube1, Cube2) |
#define | Mvc_CubeNBitAnd(CubeR, Cube1, Cube2) |
#define | Mvc_Cube1BitSharp(CubeR, Cube1, Cube2) (((CubeR)->pData[0]) = ((Cube1)->pData[0] & ~((Cube2)->pData[0]))) |
#define | Mvc_Cube2BitSharp(CubeR, Cube1, Cube2) |
#define | Mvc_CubeNBitSharp(CubeR, Cube1, Cube2) |
#define | Mvc_Cube1BitEmpty(Res, Cube) (Res = ((Cube)->pData[0] == 0)) |
#define | Mvc_Cube2BitEmpty(Res, Cube) (Res = ((Cube)->pData[0] == 0 && (Cube)->pData[1] == 0)) |
#define | Mvc_CubeNBitEmpty(Res, Cube) |
#define | Mvc_Cube1BitEqual(Res, Cube1, Cube2) (Res = (((Cube1)->pData[0]) == ((Cube2)->pData[0]))) |
#define | Mvc_Cube2BitEqual(Res, Cube1, Cube2) |
#define | Mvc_CubeNBitEqual(Res, Cube1, Cube2) |
#define | Mvc_Cube1BitLess(Res, Cube1, Cube2) (Res = (((Cube1)->pData[0]) < ((Cube2)->pData[0]))) |
#define | Mvc_Cube2BitLess(Res, Cube1, Cube2) |
#define | Mvc_CubeNBitLess(Res, Cube1, Cube2) |
#define | Mvc_Cube1BitMore(Res, Cube1, Cube2) (Res = (((Cube1)->pData[0]) > ((Cube2)->pData[0]))) |
#define | Mvc_Cube2BitMore(Res, Cube1, Cube2) |
#define | Mvc_CubeNBitMore(Res, Cube1, Cube2) |
#define | Mvc_Cube1BitNotImpl(Res, Cube1, Cube2) (Res = (((Cube1)->pData[0]) & ~((Cube2)->pData[0]))) |
#define | Mvc_Cube2BitNotImpl(Res, Cube1, Cube2) |
#define | Mvc_CubeNBitNotImpl(Res, Cube1, Cube2) |
#define | Mvc_Cube1BitDisjoint(Res, Cube1, Cube2) (Res = ((((Cube1)->pData[0]) & ((Cube2)->pData[0])) == 0 )) |
#define | Mvc_Cube2BitDisjoint(Res, Cube1, Cube2) |
#define | Mvc_CubeNBitDisjoint(Res, Cube1, Cube2) |
#define | Mvc_Cube1BitEqualUnderMask(Res, Cube1, Cube2, Mask) (Res = ((((Cube1)->pData[0]) & ((Mask)->pData[0])) == (((Cube2)->pData[0]) & ((Mask)->pData[0])))) |
#define | Mvc_Cube2BitEqualUnderMask(Res, Cube1, Cube2, Mask) |
#define | Mvc_CubeNBitEqualUnderMask(Res, Cube1, Cube2, Mask) |
#define | Mvc_Cube1BitEqualOutsideMask(Res, Cube1, Cube2, Mask) (Res = ((((Cube1)->pData[0]) | ((Mask)->pData[0])) == (((Cube2)->pData[0]) | ((Mask)->pData[0])))) |
#define | Mvc_Cube2BitEqualOutsideMask(Res, Cube1, Cube2, Mask) |
#define | Mvc_CubeNBitEqualOutsideMask(Res, Cube1, Cube2, Mask) |
#define | Mvc_Cube1BitIntersectUnderMask(Res, Cube1, Cube2, Mask) (Res = ((((Cube1)->pData[0]) & ((Cube2)->pData[0]) & ((Mask)->pData[0])) > 0)) |
#define | Mvc_Cube2BitIntersectUnderMask(Res, Cube1, Cube2, Mask) |
#define | Mvc_CubeNBitIntersectUnderMask(Res, Cube1, Cube2, Mask) |
#define | Mvc_Cube1BitNotImplUnderMask(Res, Cube1, Cube2, Mask) (Res = (((Mask)->pData[0]) & ((Cube1)->pData[0]) & ~((Cube2)->pData[0]))) |
#define | Mvc_Cube2BitNotImplUnderMask(Res, Cube1, Cube2, Mask) |
#define | Mvc_CubeNBitNotImplUnderMask(Res, Cube1, Cube2, Mask) |
#define | Mvc_CubeBitClean(Cube) |
#define | Mvc_CubeBitFill(Cube) |
#define | Mvc_CubeBitNot(Cube) |
#define | Mvc_CubeBitCopy(Cube1, Cube2) |
#define | Mvc_CubeBitOr(CubeR, Cube1, Cube2) |
#define | Mvc_CubeBitExor(CubeR, Cube1, Cube2) |
#define | Mvc_CubeBitAnd(CubeR, Cube1, Cube2) |
#define | Mvc_CubeBitSharp(CubeR, Cube1, Cube2) |
#define | Mvc_CubeBitEmpty(Res, Cube) |
#define | Mvc_CubeBitEqual(Res, Cube1, Cube2) |
#define | Mvc_CubeBitLess(Res, Cube1, Cube2) |
#define | Mvc_CubeBitMore(Res, Cube1, Cube2) |
#define | Mvc_CubeBitNotImpl(Res, Cube1, Cube2) |
#define | Mvc_CubeBitDisjoint(Res, Cube1, Cube2) |
#define | Mvc_CubeBitEqualUnderMask(Res, Cube1, Cube2, Mask) |
#define | Mvc_CubeBitEqualOutsideMask(Res, Cube1, Cube2, Mask) |
#define | Mvc_CubeBitIntersectUnderMask(Res, Cube1, Cube2, Mask) |
#define | Mvc_CubeBitNotImplUnderMask(Res, Cube1, Cube2, Mask) |
#define | Mvc_ListAddCubeHead(pList, pCube) |
#define | Mvc_ListAddCubeTail(pList, pCube) |
#define | Mvc_ListDeleteCube(pList, pPrev, pCube) |
#define | Mvc_CoverAddCubeHead(pCover, pCube) |
#define | Mvc_CoverAddCubeTail(pCover, pCube) |
#define | Mvc_CoverDeleteCube(pCover, pPrev, pCube) |
#define | Mvc_ListForEachCube(List, Cube) |
#define | Mvc_ListForEachCubeSafe(List, Cube, Cube2) |
#define | Mvc_CoverForEachCube(Cover, Cube) |
#define | Mvc_CoverForEachCubeWithIndex(Cover, Cube, Index) |
#define | Mvc_CoverForEachCubeSafe(Cover, Cube, Cube2) |
#define | Mvc_CoverForEachCubeStart(Start, Cube) |
#define | Mvc_CoverForEachCubeStartSafe(Start, Cube, Cube2) |
#define | Mvc_CubeForEachBit(Cover, Cube, iBit, Value) |
#define | Mvc_CubeForEachVarValue(Cover, Cube, iVar, Value) |
#define | MEM_ALLOC(Manager, Type, Size) ((Type *)ABC_ALLOC( char, (Size) * sizeof(Type) )) |
#define | MEM_FREE(Manager, Type, Size, Pointer) if ( Pointer ) { ABC_FREE(Pointer); Pointer = NULL; } |
Typedefs | |
typedef unsigned int | Mvc_CubeWord_t |
STRUCTURE DEFINITIONS ///. More... | |
typedef struct MvcCubeStruct | Mvc_Cube_t |
typedef struct MvcListStruct | Mvc_List_t |
typedef struct MvcCoverStruct | Mvc_Cover_t |
typedef struct MvcDataStruct | Mvc_Data_t |
typedef struct MvcManagerStruct | Mvc_Manager_t |
#define BITS_DISJOINT ((Mvc_CubeWord_t)0x55555555) |
#define BITS_FULL ((Mvc_CubeWord_t)0xffffffff) |
#define BITS_PER_WORD 32 |
INCLUDES ///.
CFile****************************************************************
FileName [mvc.h]
PackageName [MVSIS 2.0: Multi-valued logic synthesis system.]
Synopsis [Data structure for MV cube/cover manipulation.]
Author [MVSIS Group]
Affiliation [UC Berkeley]
Date [Ver. 1.0. Started - February 1, 2003.]
Revision [
]PARAMETERS ///
#define MEM_ALLOC | ( | Manager, | |
Type, | |||
Size | |||
) | ((Type *)ABC_ALLOC( char, (Size) * sizeof(Type) )) |
#define Mvc_CoverAddCubeHead | ( | pCover, | |
pCube | |||
) |
#define Mvc_CoverAddCubeTail | ( | pCover, | |
pCube | |||
) |
#define Mvc_CoverDeleteCube | ( | pCover, | |
pPrev, | |||
pCube | |||
) |
#define Mvc_CoverForEachCube | ( | Cover, | |
Cube | |||
) |
#define Mvc_CoverForEachCubeSafe | ( | Cover, | |
Cube, | |||
Cube2 | |||
) |
#define Mvc_CoverForEachCubeStart | ( | Start, | |
Cube | |||
) |
#define Mvc_CoverForEachCubeStartSafe | ( | Start, | |
Cube, | |||
Cube2 | |||
) |
#define Mvc_CoverForEachCubeWithIndex | ( | Cover, | |
Cube, | |||
Index | |||
) |
#define Mvc_Cube1BitAnd | ( | CubeR, | |
Cube1, | |||
Cube2 | |||
) | (((CubeR)->pData[0]) = ((Cube1)->pData[0] & (Cube2)->pData[0])) |
#define Mvc_Cube1BitCopy | ( | Cube1, | |
Cube2 | |||
) | (((Cube1)->pData[0]) = ((Cube2)->pData[0])) |
#define Mvc_Cube1BitDisjoint | ( | Res, | |
Cube1, | |||
Cube2 | |||
) | (Res = ((((Cube1)->pData[0]) & ((Cube2)->pData[0])) == 0 )) |
#define Mvc_Cube1BitEmpty | ( | Res, | |
Cube | |||
) | (Res = ((Cube)->pData[0] == 0)) |
#define Mvc_Cube1BitEqual | ( | Res, | |
Cube1, | |||
Cube2 | |||
) | (Res = (((Cube1)->pData[0]) == ((Cube2)->pData[0]))) |
#define Mvc_Cube1BitEqualOutsideMask | ( | Res, | |
Cube1, | |||
Cube2, | |||
Mask | |||
) | (Res = ((((Cube1)->pData[0]) | ((Mask)->pData[0])) == (((Cube2)->pData[0]) | ((Mask)->pData[0])))) |
#define Mvc_Cube1BitEqualUnderMask | ( | Res, | |
Cube1, | |||
Cube2, | |||
Mask | |||
) | (Res = ((((Cube1)->pData[0]) & ((Mask)->pData[0])) == (((Cube2)->pData[0]) & ((Mask)->pData[0])))) |
#define Mvc_Cube1BitExor | ( | CubeR, | |
Cube1, | |||
Cube2 | |||
) | (((CubeR)->pData[0]) = ((Cube1)->pData[0] ^ (Cube2)->pData[0])) |
#define Mvc_Cube1BitFill | ( | Cube | ) | (Cube)->pData[0] = (BITS_FULL >> (Cube)->nUnused); |
#define Mvc_Cube1BitIntersectUnderMask | ( | Res, | |
Cube1, | |||
Cube2, | |||
Mask | |||
) | (Res = ((((Cube1)->pData[0]) & ((Cube2)->pData[0]) & ((Mask)->pData[0])) > 0)) |
#define Mvc_Cube1BitLess | ( | Res, | |
Cube1, | |||
Cube2 | |||
) | (Res = (((Cube1)->pData[0]) < ((Cube2)->pData[0]))) |
#define Mvc_Cube1BitMore | ( | Res, | |
Cube1, | |||
Cube2 | |||
) | (Res = (((Cube1)->pData[0]) > ((Cube2)->pData[0]))) |
#define Mvc_Cube1BitNot | ( | Cube | ) | ((Cube)->pData[0] ^= (BITS_FULL >> (Cube)->nUnused)) |
#define Mvc_Cube1BitNotImpl | ( | Res, | |
Cube1, | |||
Cube2 | |||
) | (Res = (((Cube1)->pData[0]) & ~((Cube2)->pData[0]))) |
#define Mvc_Cube1BitNotImplUnderMask | ( | Res, | |
Cube1, | |||
Cube2, | |||
Mask | |||
) | (Res = (((Mask)->pData[0]) & ((Cube1)->pData[0]) & ~((Cube2)->pData[0]))) |
#define Mvc_Cube1BitOr | ( | CubeR, | |
Cube1, | |||
Cube2 | |||
) | (((CubeR)->pData[0]) = ((Cube1)->pData[0] | (Cube2)->pData[0])) |
#define Mvc_Cube1BitSharp | ( | CubeR, | |
Cube1, | |||
Cube2 | |||
) | (((CubeR)->pData[0]) = ((Cube1)->pData[0] & ~((Cube2)->pData[0]))) |
#define Mvc_Cube2BitAnd | ( | CubeR, | |
Cube1, | |||
Cube2 | |||
) |
#define Mvc_Cube2BitClean | ( | Cube | ) |
#define Mvc_Cube2BitCopy | ( | Cube1, | |
Cube2 | |||
) |
#define Mvc_Cube2BitDisjoint | ( | Res, | |
Cube1, | |||
Cube2 | |||
) |
#define Mvc_Cube2BitEmpty | ( | Res, | |
Cube | |||
) | (Res = ((Cube)->pData[0] == 0 && (Cube)->pData[1] == 0)) |
#define Mvc_Cube2BitEqual | ( | Res, | |
Cube1, | |||
Cube2 | |||
) |
#define Mvc_Cube2BitEqualOutsideMask | ( | Res, | |
Cube1, | |||
Cube2, | |||
Mask | |||
) |
#define Mvc_Cube2BitEqualUnderMask | ( | Res, | |
Cube1, | |||
Cube2, | |||
Mask | |||
) |
#define Mvc_Cube2BitExor | ( | CubeR, | |
Cube1, | |||
Cube2 | |||
) |
#define Mvc_Cube2BitFill | ( | Cube | ) |
#define Mvc_Cube2BitIntersectUnderMask | ( | Res, | |
Cube1, | |||
Cube2, | |||
Mask | |||
) |
#define Mvc_Cube2BitLess | ( | Res, | |
Cube1, | |||
Cube2 | |||
) |
#define Mvc_Cube2BitMore | ( | Res, | |
Cube1, | |||
Cube2 | |||
) |
#define Mvc_Cube2BitNot | ( | Cube | ) |
#define Mvc_Cube2BitNotImpl | ( | Res, | |
Cube1, | |||
Cube2 | |||
) |
#define Mvc_Cube2BitNotImplUnderMask | ( | Res, | |
Cube1, | |||
Cube2, | |||
Mask | |||
) |
#define Mvc_Cube2BitOr | ( | CubeR, | |
Cube1, | |||
Cube2 | |||
) |
#define Mvc_Cube2BitSharp | ( | CubeR, | |
Cube1, | |||
Cube2 | |||
) |
#define Mvc_CubeBitAnd | ( | CubeR, | |
Cube1, | |||
Cube2 | |||
) |
#define Mvc_CubeBitClean | ( | Cube | ) |
#define Mvc_CubeBitCleanUnused | ( | Cube | ) | ((Cube)->pData[(Cube)->iLast] &= (BITS_FULL >> (Cube)->nUnused)) |
#define Mvc_CubeBitCopy | ( | Cube1, | |
Cube2 | |||
) |
#define Mvc_CubeBitDisjoint | ( | Res, | |
Cube1, | |||
Cube2 | |||
) |
#define Mvc_CubeBitEmpty | ( | Res, | |
Cube | |||
) |
#define Mvc_CubeBitEqual | ( | Res, | |
Cube1, | |||
Cube2 | |||
) |
#define Mvc_CubeBitEqualOutsideMask | ( | Res, | |
Cube1, | |||
Cube2, | |||
Mask | |||
) |
#define Mvc_CubeBitEqualUnderMask | ( | Res, | |
Cube1, | |||
Cube2, | |||
Mask | |||
) |
#define Mvc_CubeBitExor | ( | CubeR, | |
Cube1, | |||
Cube2 | |||
) |
#define Mvc_CubeBitFill | ( | Cube | ) |
#define Mvc_CubeBitInsert | ( | Cube, | |
Bit | |||
) | ((Cube)->pData[Mvc_CubeWhichWord(Bit)] |= (((Mvc_CubeWord_t)1)<<(Mvc_CubeWhichBit(Bit)))) |
#define Mvc_CubeBitIntersectUnderMask | ( | Res, | |
Cube1, | |||
Cube2, | |||
Mask | |||
) |
#define Mvc_CubeBitLess | ( | Res, | |
Cube1, | |||
Cube2 | |||
) |
#define Mvc_CubeBitMore | ( | Res, | |
Cube1, | |||
Cube2 | |||
) |
#define Mvc_CubeBitNot | ( | Cube | ) |
#define Mvc_CubeBitNotImpl | ( | Res, | |
Cube1, | |||
Cube2 | |||
) |
#define Mvc_CubeBitNotImplUnderMask | ( | Res, | |
Cube1, | |||
Cube2, | |||
Mask | |||
) |
#define Mvc_CubeBitOr | ( | CubeR, | |
Cube1, | |||
Cube2 | |||
) |
#define Mvc_CubeBitRemove | ( | Cube, | |
Bit | |||
) | ((Cube)->pData[Mvc_CubeWhichWord(Bit)] &= ~(((Mvc_CubeWord_t)1)<<(Mvc_CubeWhichBit(Bit)))) |
#define Mvc_CubeBitSharp | ( | CubeR, | |
Cube1, | |||
Cube2 | |||
) |
#define Mvc_CubeBitValue | ( | Cube, | |
Bit | |||
) | (((Cube)->pData[Mvc_CubeWhichWord(Bit)] & (((Mvc_CubeWord_t)1)<<(Mvc_CubeWhichBit(Bit)))) > 0) |
#define Mvc_CubeForEachBit | ( | Cover, | |
Cube, | |||
iBit, | |||
Value | |||
) |
#define Mvc_CubeForEachVarValue | ( | Cover, | |
Cube, | |||
iVar, | |||
Value | |||
) |
#define Mvc_CubeNBitAnd | ( | CubeR, | |
Cube1, | |||
Cube2 | |||
) |
#define Mvc_CubeNBitClean | ( | Cube | ) |
#define Mvc_CubeNBitCopy | ( | Cube1, | |
Cube2 | |||
) |
#define Mvc_CubeNBitDisjoint | ( | Res, | |
Cube1, | |||
Cube2 | |||
) |
#define Mvc_CubeNBitEmpty | ( | Res, | |
Cube | |||
) |
#define Mvc_CubeNBitEqual | ( | Res, | |
Cube1, | |||
Cube2 | |||
) |
#define Mvc_CubeNBitEqualOutsideMask | ( | Res, | |
Cube1, | |||
Cube2, | |||
Mask | |||
) |
#define Mvc_CubeNBitEqualUnderMask | ( | Res, | |
Cube1, | |||
Cube2, | |||
Mask | |||
) |
#define Mvc_CubeNBitExor | ( | CubeR, | |
Cube1, | |||
Cube2 | |||
) |
#define Mvc_CubeNBitFill | ( | Cube | ) |
#define Mvc_CubeNBitIntersectUnderMask | ( | Res, | |
Cube1, | |||
Cube2, | |||
Mask | |||
) |
#define Mvc_CubeNBitLess | ( | Res, | |
Cube1, | |||
Cube2 | |||
) |
#define Mvc_CubeNBitMore | ( | Res, | |
Cube1, | |||
Cube2 | |||
) |
#define Mvc_CubeNBitNot | ( | Cube | ) |
#define Mvc_CubeNBitNotImpl | ( | Res, | |
Cube1, | |||
Cube2 | |||
) |
#define Mvc_CubeNBitNotImplUnderMask | ( | Res, | |
Cube1, | |||
Cube2, | |||
Mask | |||
) |
#define Mvc_CubeNBitOr | ( | CubeR, | |
Cube1, | |||
Cube2 | |||
) |
#define Mvc_CubeNBitSharp | ( | CubeR, | |
Cube1, | |||
Cube2 | |||
) |
#define Mvc_CubeReadNext | ( | Cube | ) | ((Cube)->pNext) |
#define Mvc_CubeSetLast | ( | Cube, | |
Last | |||
) | ((Cube)->iLast = (Last)) |
#define Mvc_CubeSetNext | ( | Cube, | |
Next | |||
) | ((Cube)->pNext = (Next)) |
#define Mvc_CubeSetSize | ( | Cube, | |
Size | |||
) | ((Cube)->nOnes = (Size)) |
#define Mvc_CubeVarValue | ( | Cube, | |
Var | |||
) | (((Cube)->pData[Mvc_CubeWhichWord(2*(Var))] >> (Mvc_CubeWhichBit(2*(Var)))) & ((Mvc_CubeWord_t)3)) |
#define Mvc_CubeWhichBit | ( | Bit | ) | ((Bit) & BITS_PER_WORD_MINUS) |
#define Mvc_CubeWhichWord | ( | Bit | ) | ((Bit) >> BITS_PER_WORD_LOG) |
#define Mvc_ListAddCubeHead | ( | pList, | |
pCube | |||
) |
#define Mvc_ListAddCubeTail | ( | pList, | |
pCube | |||
) |
#define Mvc_ListDeleteCube | ( | pList, | |
pPrev, | |||
pCube | |||
) |
#define Mvc_ListForEachCube | ( | List, | |
Cube | |||
) |
#define Mvc_ListForEachCubeSafe | ( | List, | |
Cube, | |||
Cube2 | |||
) |
typedef struct MvcCoverStruct Mvc_Cover_t |
typedef struct MvcCubeStruct Mvc_Cube_t |
typedef unsigned int Mvc_CubeWord_t |
typedef struct MvcDataStruct Mvc_Data_t |
typedef struct MvcListStruct Mvc_List_t |
typedef struct MvcManagerStruct Mvc_Manager_t |
void Mvc_CoverAddCubeHead_ | ( | Mvc_Cover_t * | pCover, |
Mvc_Cube_t * | pCube | ||
) |
void Mvc_CoverAddCubeTail_ | ( | Mvc_Cover_t * | pCover, |
Mvc_Cube_t * | pCube | ||
) |
void Mvc_CoverAddDupCubeHead | ( | Mvc_Cover_t * | pCover, |
Mvc_Cube_t * | pCube | ||
) |
Function*************************************************************
Synopsis []
Description []
SideEffects []
SeeAlso []
Definition at line 202 of file mvcList.c.
void Mvc_CoverAddDupCubeTail | ( | Mvc_Cover_t * | pCover, |
Mvc_Cube_t * | pCube | ||
) |
Function*************************************************************
Synopsis []
Description []
SideEffects []
SeeAlso []
Definition at line 221 of file mvcList.c.
void Mvc_CoverAddLiteralsOfCube | ( | Mvc_Cover_t * | pCover, |
Mvc_Cube_t * | pCube | ||
) |
Function*************************************************************
Synopsis []
Description []
SideEffects []
SeeAlso []
int Mvc_CoverAlgebraicEqual | ( | Mvc_Cover_t * | pCover1, |
Mvc_Cover_t * | pCover2 | ||
) |
Function*************************************************************
Synopsis []
Description []
SideEffects []
SeeAlso []
Definition at line 134 of file mvcOpAlg.c.
Mvc_Cover_t* Mvc_CoverAlgebraicMultiply | ( | Mvc_Cover_t * | pCover1, |
Mvc_Cover_t * | pCover2 | ||
) |
DECLARATIONS ///.
CFile****************************************************************
FileName [mvcOperAlg.c]
PackageName [MVSIS 2.0: Multi-valued logic synthesis system.]
Synopsis [Miscellaneous operations on covers.]
Author [MVSIS Group]
Affiliation [UC Berkeley]
Date [Ver. 1.0. Started - February 1, 2003.]
Revision [
]FUNCTION DEFINITIONS /// Function*************************************************************
Synopsis [Multiplies two disjoint-support covers.]
Description []
SideEffects []
SeeAlso []
Definition at line 43 of file mvcOpAlg.c.
Mvc_Cover_t* Mvc_CoverAlgebraicSubtract | ( | Mvc_Cover_t * | pCover1, |
Mvc_Cover_t * | pCover2 | ||
) |
Function*************************************************************
Synopsis [Subtracts the second cover from the first.]
Description []
SideEffects []
SeeAlso []
Definition at line 88 of file mvcOpAlg.c.
Mvc_Cover_t* Mvc_CoverAlloc | ( | Mvc_Manager_t * | pMem, |
int | nBits | ||
) |
DECLARATIONS ///.
CFile****************************************************************
FileName [mvcCover.c]
PackageName [MVSIS 2.0: Multi-valued logic synthesis system.]
Synopsis [Basic procedures to manipulate unate cube covers.]
Author [MVSIS Group]
Affiliation [UC Berkeley]
Date [Ver. 1.0. Started - February 1, 2003.]
Revision [
]FUNCTION DEFINITIONS /// Function*************************************************************
Synopsis []
Description []
SideEffects []
SeeAlso []
Definition at line 43 of file mvcCover.c.
void Mvc_CoverAllocateArrayCubes | ( | Mvc_Cover_t * | pCover | ) |
Function*************************************************************
Synopsis []
Description []
SideEffects []
SeeAlso []
Definition at line 202 of file mvcCover.c.
void Mvc_CoverAllocateArrayLits | ( | Mvc_Cover_t * | pCover | ) |
Function*************************************************************
Synopsis []
Description []
SideEffects []
SeeAlso []
Definition at line 185 of file mvcCover.c.
void Mvc_CoverAllocateMask | ( | Mvc_Cover_t * | pCover | ) |
Function*************************************************************
Synopsis []
Description []
SideEffects []
SeeAlso []
Definition at line 168 of file mvcCover.c.
int Mvc_CoverAnyLiteral | ( | Mvc_Cover_t * | pCover, |
Mvc_Cube_t * | pMask | ||
) |
DECLARATIONS ///.
CFile****************************************************************
FileName [mvcLits.c]
PackageName [MVSIS 2.0: Multi-valued logic synthesis system.]
Synopsis [Literal counting/updating procedures.]
Author [MVSIS Group]
Affiliation [UC Berkeley]
Date [Ver. 1.0. Started - February 1, 2003.]
Revision [
]FUNCTION DEFINITIONS /// Function*************************************************************
Synopsis [Find the any literal that occurs more than once.]
Description []
SideEffects []
SeeAlso []
Definition at line 43 of file mvcLits.c.
void Mvc_CoverAppendCubes | ( | Mvc_Cover_t * | pC1, |
Mvc_Cover_t * | pC2 | ||
) |
void Mvc_CoverArray2List | ( | Mvc_Cover_t * | pCover | ) |
int Mvc_CoverBestLiteral | ( | Mvc_Cover_t * | pCover, |
Mvc_Cube_t * | pMask | ||
) |
Mvc_Cover_t* Mvc_CoverBestLiteralCover | ( | Mvc_Cover_t * | pCover, |
Mvc_Cover_t * | pSimple | ||
) |
Function*************************************************************
Synopsis []
Description []
SideEffects []
SeeAlso []
Definition at line 223 of file mvcLits.c.
Mvc_Cover_t* Mvc_CoverBooleanAnd | ( | Mvc_Data_t * | p, |
Mvc_Cover_t * | pCover1, | ||
Mvc_Cover_t * | pCover2 | ||
) |
int Mvc_CoverBooleanEqual | ( | Mvc_Data_t * | p, |
Mvc_Cover_t * | pCover1, | ||
Mvc_Cover_t * | pCover2 | ||
) |
Mvc_Cover_t* Mvc_CoverBooleanOr | ( | Mvc_Cover_t * | pCover1, |
Mvc_Cover_t * | pCover2 | ||
) |
DECLARATIONS ///.
CFile****************************************************************
FileName [mvcProc.c]
PackageName [MVSIS 2.0: Multi-valued logic synthesis system.]
Synopsis [Various boolean procedures working with covers.]
Author [MVSIS Group]
Affiliation [UC Berkeley]
Date [Ver. 1.0. Started - February 1, 2003.]
Revision [
]FUNCTION DEFINITIONS /// Function*************************************************************
Synopsis []
Description []
SideEffects []
SeeAlso []
Definition at line 43 of file mvcOpBool.c.
int Mvc_CoverCheckSuppContainment | ( | Mvc_Cover_t * | pCover1, |
Mvc_Cover_t * | pCover2 | ||
) |
Function*************************************************************
Synopsis [Returns 1 if the support of cover2 is contained in the support of cover1.]
Description []
SideEffects []
SeeAlso []
Definition at line 247 of file mvcUtils.c.
Mvc_Cover_t* Mvc_CoverClone | ( | Mvc_Cover_t * | p | ) |
Function*************************************************************
Synopsis []
Description []
SideEffects []
SeeAlso []
Definition at line 79 of file mvcCover.c.
Mvc_Cover_t* Mvc_CoverCofactor | ( | Mvc_Cover_t * | p, |
int | iValue, | ||
int | iValueOther | ||
) |
Function*************************************************************
Synopsis [Returns the cofactor w.r.t. to a binary var.]
Description []
SideEffects []
SeeAlso []
Definition at line 518 of file mvcUtils.c.
Mvc_Cover_t** Mvc_CoverCofactors | ( | Mvc_Data_t * | pData, |
Mvc_Cover_t * | pCover, | ||
int | iVar | ||
) |
void Mvc_CoverCommonCube | ( | Mvc_Cover_t * | pCover, |
Mvc_Cube_t * | pComCube | ||
) |
Function*************************************************************
Synopsis []
Description []
SideEffects []
SeeAlso []
Definition at line 155 of file mvcUtils.c.
Mvc_Cover_t* Mvc_CoverCommonCubeCover | ( | Mvc_Cover_t * | pCover | ) |
Function*************************************************************
Synopsis []
Description []
SideEffects []
SeeAlso []
Definition at line 220 of file mvcUtils.c.
Mvc_Cover_t* Mvc_CoverComplement | ( | Mvc_Data_t * | p, |
Mvc_Cover_t * | pCover | ||
) |
int Mvc_CoverContain | ( | Mvc_Cover_t * | pCover | ) |
FUNCTION DEFINITIONS ///.
Function*************************************************************
Synopsis [Removes the contained cubes.]
Description [Returns 1 if the cover has been changed.]
SideEffects []
SeeAlso []
Definition at line 47 of file mvcContain.c.
void Mvc_CoverCopyAndAppendCubes | ( | Mvc_Cover_t * | pC1, |
Mvc_Cover_t * | pC2 | ||
) |
int Mvc_CoverCountCubePairDiffs | ( | Mvc_Cover_t * | pCover, |
unsigned char | pDiffs[] | ||
) |
Function*************************************************************
Synopsis [Counts the differences in each cube pair in the cover.]
Description [Takes the cover (pCover) and the array where the diff counters go (pDiffs). The array pDiffs should have as many entries as there are different pairs of cubes in the cover: n(n-1)/2. Fills out the array pDiffs with the following info: For each cube pair, included in the array is the number of literals in both cubes after they are made cube ABC_FREE.]
SideEffects []
SeeAlso []
Definition at line 342 of file mvcUtils.c.
int Mvc_CoverCountLiterals | ( | Mvc_Cover_t * | pCover | ) |
Function*************************************************************
Synopsis [Returns the number of literals in the cover.]
Description [Allocates storage for literal counters and fills it up using the current information.]
SideEffects []
SeeAlso []
Definition at line 287 of file mvcLits.c.
Mvc_Cover_t* Mvc_CoverCreateConst | ( | Mvc_Manager_t * | pMem, |
int | nBits, | ||
int | Phase | ||
) |
Mvc_Cover_t* Mvc_CoverCreateEmpty | ( | Mvc_Cover_t * | pCover | ) |
Function*************************************************************
Synopsis []
Description []
SideEffects []
SeeAlso []
Definition at line 202 of file mvcApi.c.
Mvc_Cover_t* Mvc_CoverCreateTautology | ( | Mvc_Cover_t * | pCover | ) |
Function*************************************************************
Synopsis []
Description []
SideEffects []
SeeAlso []
Definition at line 220 of file mvcApi.c.
void Mvc_CoverDeallocateArrayLits | ( | Mvc_Cover_t * | pCover | ) |
Function*************************************************************
Synopsis []
Description []
SideEffects []
SeeAlso []
Definition at line 241 of file mvcCover.c.
void Mvc_CoverDeallocateMask | ( | Mvc_Cover_t * | pCover | ) |
Function*************************************************************
Synopsis []
Description []
SideEffects []
SeeAlso []
Definition at line 224 of file mvcCover.c.
void Mvc_CoverDeleteCube_ | ( | Mvc_Cover_t * | pCover, |
Mvc_Cube_t * | pPrev, | ||
Mvc_Cube_t * | pCube | ||
) |
void Mvc_CoverDeleteLiteralsOfCube | ( | Mvc_Cover_t * | pCover, |
Mvc_Cube_t * | pCube | ||
) |
Function*************************************************************
Synopsis []
Description []
SideEffects []
SeeAlso []
int Mvc_CoverDist0Cubes | ( | Mvc_Data_t * | pData, |
Mvc_Cube_t * | pA, | ||
Mvc_Cube_t * | pB | ||
) |
void Mvc_CoverDist1Merge | ( | Mvc_Data_t * | p, |
Mvc_Cover_t * | pCover | ||
) |
void Mvc_CoverDivide | ( | Mvc_Cover_t * | pCover, |
Mvc_Cover_t * | pDiv, | ||
Mvc_Cover_t ** | ppQuo, | ||
Mvc_Cover_t ** | ppRem | ||
) |
FUNCTION DEFINITIONS ///.
Function*************************************************************
Synopsis []
Description []
SideEffects []
SeeAlso []
Definition at line 47 of file mvcDivide.c.
void Mvc_CoverDivideByCube | ( | Mvc_Cover_t * | pCover, |
Mvc_Cover_t * | pDiv, | ||
Mvc_Cover_t ** | ppQuo, | ||
Mvc_Cover_t ** | ppRem | ||
) |
Function*************************************************************
Synopsis [Divides the cover by a cube.]
Description []
SideEffects []
SeeAlso []
Definition at line 269 of file mvcDivide.c.
void Mvc_CoverDivideByLiteral | ( | Mvc_Cover_t * | pCover, |
Mvc_Cover_t * | pDiv, | ||
Mvc_Cover_t ** | ppQuo, | ||
Mvc_Cover_t ** | ppRem | ||
) |
Function*************************************************************
Synopsis [Divides the cover by a literal.]
Description []
SideEffects []
SeeAlso []
Definition at line 323 of file mvcDivide.c.
void Mvc_CoverDivideByLiteralQuo | ( | Mvc_Cover_t * | pCover, |
int | iLit | ||
) |
Function*************************************************************
Synopsis [Derives the quotient of division by literal.]
Description [Reduces the cover to be the equal to the result of division of the given cover by the literal.]
SideEffects []
SeeAlso []
Definition at line 374 of file mvcDivide.c.
void Mvc_CoverDivideInternal | ( | Mvc_Cover_t * | pCover, |
Mvc_Cover_t * | pDiv, | ||
Mvc_Cover_t ** | ppQuo, | ||
Mvc_Cover_t ** | ppRem | ||
) |
Function*************************************************************
Synopsis [Merge the cubes inside the groups.]
Description []
SideEffects []
SeeAlso []
Definition at line 81 of file mvcDivide.c.
Mvc_Cover_t* Mvc_CoverDivisor | ( | Mvc_Cover_t * | pCover | ) |
FUNCTION DEFINITIONS ///.
Function*************************************************************
Synopsis [Returns the quick divisor of the cover.]
Description [Returns NULL, if there is not divisor other than trivial.]
SideEffects []
SeeAlso []
Definition at line 46 of file mvcDivisor.c.
Mvc_Cover_t* Mvc_CoverDup | ( | Mvc_Cover_t * | p | ) |
Function*************************************************************
Synopsis []
Description []
SideEffects []
SeeAlso []
Definition at line 112 of file mvcCover.c.
int Mvc_CoverFirstCubeFirstLit | ( | Mvc_Cover_t * | pCover | ) |
Mvc_Cover_t* Mvc_CoverFlipVar | ( | Mvc_Cover_t * | p, |
int | iValue0, | ||
int | iValue1 | ||
) |
Function*************************************************************
Synopsis [Returns the cover, in which the binary var is complemented.]
Description []
SideEffects []
SeeAlso []
Definition at line 546 of file mvcUtils.c.
void Mvc_CoverFree | ( | Mvc_Cover_t * | p | ) |
Function*************************************************************
Synopsis []
Description []
SideEffects []
SeeAlso []
Definition at line 138 of file mvcCover.c.
int Mvc_CoverGetCubeSize | ( | Mvc_Cube_t * | pCube | ) |
Function*************************************************************
Synopsis [Counts the cube sizes.]
Description []
SideEffects []
SeeAlso []
Definition at line 308 of file mvcUtils.c.
void Mvc_CoverIntersectCubes | ( | Mvc_Data_t * | pData, |
Mvc_Cover_t * | pC1, | ||
Mvc_Cover_t * | pC2 | ||
) |
void Mvc_CoverInverse | ( | Mvc_Cover_t * | pCover | ) |
Function*************************************************************
Synopsis []
Description []
SideEffects []
SeeAlso []
Definition at line 477 of file mvcUtils.c.
int Mvc_CoverIsBinaryBuffer | ( | Mvc_Cover_t * | pCover | ) |
int Mvc_CoverIsCubeFree | ( | Mvc_Cover_t * | pCover | ) |
Function*************************************************************
Synopsis []
Description []
SideEffects []
SeeAlso []
Definition at line 176 of file mvcUtils.c.
int Mvc_CoverIsEmpty | ( | Mvc_Cover_t * | pCover | ) |
int Mvc_CoverIsIntersecting | ( | Mvc_Data_t * | pData, |
Mvc_Cover_t * | pC1, | ||
Mvc_Cover_t * | pC2 | ||
) |
int Mvc_CoverIsOneLiteral | ( | Mvc_Cover_t * | pCover | ) |
int Mvc_CoverIsTautology | ( | Mvc_Cover_t * | pCover | ) |
void Mvc_CoverList2Array | ( | Mvc_Cover_t * | pCover | ) |
Function*************************************************************
Synopsis [Transfers the cubes from the list into the array.]
Description []
SideEffects []
SeeAlso []
Definition at line 286 of file mvcList.c.
void Mvc_CoverMakeCubeFree | ( | Mvc_Cover_t * | pCover | ) |
Function*************************************************************
Synopsis []
Description []
SideEffects []
SeeAlso []
Definition at line 198 of file mvcUtils.c.
void Mvc_CoverMakeEmpty | ( | Mvc_Cover_t * | pCover | ) |
void Mvc_CoverMakeTautology | ( | Mvc_Cover_t * | pCover | ) |
Function*************************************************************
Synopsis []
Description []
SideEffects []
SeeAlso []
Definition at line 181 of file mvcApi.c.
void Mvc_CoverMinimizeByReshape | ( | Mvc_Data_t * | pData, |
Mvc_Cover_t * | pCover | ||
) |
void Mvc_CoverPrint | ( | Mvc_Cover_t * | pCover | ) |
FUNCTION DEFINITIONS ///.
Function*************************************************************
Synopsis []
Description []
SideEffects []
SeeAlso []
Definition at line 47 of file mvcPrint.c.
void Mvc_CoverPrintMv | ( | Mvc_Data_t * | pData, |
Mvc_Cover_t * | pCover | ||
) |
int Mvc_CoverReadBitNum | ( | Mvc_Cover_t * | pCover | ) |
Mvc_Cube_t* Mvc_CoverReadCubeHead | ( | Mvc_Cover_t * | pCover | ) |
Mvc_List_t* Mvc_CoverReadCubeList | ( | Mvc_Cover_t * | pCover | ) |
int Mvc_CoverReadCubeNum | ( | Mvc_Cover_t * | pCover | ) |
Mvc_Cube_t* Mvc_CoverReadCubeTail | ( | Mvc_Cover_t * | pCover | ) |
int Mvc_CoverReadWordNum | ( | Mvc_Cover_t * | pCover | ) |
FUNCTION DEFINITIONS ///.
FUNCTION DEFINITIONS ///.
CFile****************************************************************
FileName [mvcApi.c]
PackageName [MVSIS 2.0: Multi-valued logic synthesis system.]
Synopsis []
Author [MVSIS Group]
Affiliation [UC Berkeley]
Date [Ver. 1.0. Started - February 1, 2003.]
Revision [
]FUNCTION DEFINITIONS /// Function*************************************************************
Synopsis []
Description []
SideEffects []
SeeAlso []
Definition at line 43 of file mvcApi.c.
Mvc_Cover_t* Mvc_CoverRemap | ( | Mvc_Cover_t * | p, |
int * | pVarsRem, | ||
int | nVarsRem | ||
) |
Function*************************************************************
Synopsis [Creates a new cover containing some literals of the old cover.]
Description [Creates the new cover containing the given number (nVarsRem) literals of the old cover. All the bits of the new cover are initialized to "1". The selected bits from the old cover are copied on top. The numbers of the selected bits to copy are given in the array pVarsRem. The i-set entry in this array is the index of the bit in the old cover which goes to the i-th place in the new cover. If the i-th entry in pVarsRem is -1, it means that the i-th bit does not change (remains composed of all 1's). This is a useful feature to speed up remapping covers, which are known to depend only on a subset of input variables.]
SideEffects []
SeeAlso []
Definition at line 400 of file mvcUtils.c.
void Mvc_CoverRemoveCubes | ( | Mvc_Cover_t * | pC | ) |
Mvc_Cover_t* Mvc_CoverRemoveDontCareLits | ( | Mvc_Cover_t * | pCover | ) |
Function*************************************************************
Synopsis [This function dups the cover and removes DC literals from cubes.]
Description []
SideEffects []
SeeAlso []
Definition at line 496 of file mvcUtils.c.
void Mvc_CoverSetCubeHead | ( | Mvc_Cover_t * | pCover, |
Mvc_Cube_t * | pCube | ||
) |
void Mvc_CoverSetCubeList | ( | Mvc_Cover_t * | pCover, |
Mvc_List_t * | pList | ||
) |
void Mvc_CoverSetCubeNum | ( | Mvc_Cover_t * | pCover, |
int | nItems | ||
) |
int Mvc_CoverSetCubeSizes | ( | Mvc_Cover_t * | pCover | ) |
Function*************************************************************
Synopsis [Counts the cube sizes.]
Description []
SideEffects []
SeeAlso []
Definition at line 272 of file mvcUtils.c.
void Mvc_CoverSetCubeTail | ( | Mvc_Cover_t * | pCover, |
Mvc_Cube_t * | pCube | ||
) |
Mvc_Cover_t* Mvc_CoverSharp | ( | Mvc_Data_t * | p, |
Mvc_Cover_t * | pA, | ||
Mvc_Cover_t * | pB | ||
) |
void Mvc_CoverSort | ( | Mvc_Cover_t * | pCover, |
Mvc_Cube_t * | pMask, | ||
int(*)(Mvc_Cube_t *, Mvc_Cube_t *, Mvc_Cube_t *) | pCompareFunc | ||
) |
FuNCTION DEFINITIONS ///.
Function*************************************************************
Synopsis [Sorts cubes using the given cost function.]
Description []
SideEffects []
SeeAlso []
Definition at line 47 of file mvcSort.c.
void Mvc_CoverSupport | ( | Mvc_Cover_t * | pCover, |
Mvc_Cube_t * | pSupp | ||
) |
FUNCTION DEFINITIONS ///.
Function*************************************************************
Synopsis []
Description []
SideEffects []
SeeAlso []
Definition at line 58 of file mvcUtils.c.
int Mvc_CoverSupportSizeBinary | ( | Mvc_Cover_t * | pCover | ) |
Function*************************************************************
Synopsis []
Description []
SideEffects []
SeeAlso []
Definition at line 100 of file mvcUtils.c.
int Mvc_CoverSupportVarBelongs | ( | Mvc_Cover_t * | pCover, |
int | iVar | ||
) |
Function*************************************************************
Synopsis []
Description []
SideEffects []
SeeAlso []
Definition at line 130 of file mvcUtils.c.
int Mvc_CoverTautology | ( | Mvc_Data_t * | p, |
Mvc_Cover_t * | pCover | ||
) |
Mvc_Cover_t* Mvc_CoverTranspose | ( | Mvc_Cover_t * | pCover | ) |
Function*************************************************************
Synopsis [Transposes the cube cover.]
Description [Returns the cube cover that looks like a transposed matrix, compared to the matrix derived from the original cover.]
SideEffects []
SeeAlso []
Definition at line 804 of file mvcUtils.c.
Mvc_Cover_t* Mvc_CoverUnivQuantify | ( | Mvc_Cover_t * | p, |
int | iValueA0, | ||
int | iValueA1, | ||
int | iValueB0, | ||
int | iValueB1 | ||
) |
Function*************************************************************
Synopsis [Returns the cover derived by universal quantification.]
Description [Returns the cover computed by universal quantification as follows: CoverNew = Univ(B) [Cover & (A==B)]. Removes the second binary var from the support (given by values iValueB0 and iValueB1). Leaves the first binary variable (given by values iValueA0 and iValueA1) in the support.]
SideEffects []
SeeAlso []
Definition at line 606 of file mvcUtils.c.
int Mvc_CoverWorstLiteral | ( | Mvc_Cover_t * | pCover, |
Mvc_Cube_t * | pMask | ||
) |
Mvc_Cube_t* Mvc_CubeAlloc | ( | Mvc_Cover_t * | pCover | ) |
DECLARATIONS ///.
CFile****************************************************************
FileName [mvcCube.c]
PackageName [MVSIS 2.0: Multi-valued logic synthesis system.]
Synopsis [Manipulating unate cubes.]
Author [MVSIS Group]
Affiliation [UC Berkeley]
Date [Ver. 1.0. Started - February 1, 2003.]
Revision [
]FUNCTION DEFINITIONS /// Function*************************************************************
Synopsis []
Description []
SideEffects []
SeeAlso []
Definition at line 43 of file mvcCube.c.
void Mvc_CubeBitRemoveDcs | ( | Mvc_Cube_t * | pCube | ) |
int Mvc_CubeCompareInt | ( | Mvc_Cube_t * | pC1, |
Mvc_Cube_t * | pC2, | ||
Mvc_Cube_t * | pMask | ||
) |
DECLARATIONS ///.
CFile****************************************************************
FileName [mvcCompare.c]
PackageName [MVSIS 2.0: Multi-valued logic synthesis system.]
Synopsis [Various cube comparison functions.]
Author [MVSIS Group]
Affiliation [UC Berkeley]
Date [Ver. 1.0. Started - February 1, 2003.]
Revision [
]FUNCTION DEFINITIONS /// Function*************************************************************
Synopsis [Compares two cubes according to their integer value.]
Description []
SideEffects []
SeeAlso []
Definition at line 43 of file mvcCompare.c.
int Mvc_CubeCompareIntOutsideAndUnderMask | ( | Mvc_Cube_t * | pC1, |
Mvc_Cube_t * | pC2, | ||
Mvc_Cube_t * | pMask | ||
) |
Function*************************************************************
Synopsis [Compares the cubes (1) outside the mask, (2) under the mask.]
Description []
SideEffects []
SeeAlso []
Definition at line 265 of file mvcCompare.c.
int Mvc_CubeCompareIntOutsideMask | ( | Mvc_Cube_t * | pC1, |
Mvc_Cube_t * | pC2, | ||
Mvc_Cube_t * | pMask | ||
) |
Function*************************************************************
Synopsis [Compares two cubes under the mask.]
Description []
SideEffects []
SeeAlso []
Definition at line 205 of file mvcCompare.c.
int Mvc_CubeCompareIntUnderMask | ( | Mvc_Cube_t * | pC1, |
Mvc_Cube_t * | pC2, | ||
Mvc_Cube_t * | pMask | ||
) |
Function*************************************************************
Synopsis [Compares two cubes under the mask.]
Description []
SideEffects []
SeeAlso []
Definition at line 146 of file mvcCompare.c.
int Mvc_CubeCompareSizeAndInt | ( | Mvc_Cube_t * | pC1, |
Mvc_Cube_t * | pC2, | ||
Mvc_Cube_t * | pMask | ||
) |
Function*************************************************************
Synopsis [Compares the cubes (1) by size, (2) by integer value.]
Description []
SideEffects []
SeeAlso []
Definition at line 91 of file mvcCompare.c.
Mvc_Cube_t* Mvc_CubeDup | ( | Mvc_Cover_t * | pCover, |
Mvc_Cube_t * | pCube | ||
) |
Function*************************************************************
Synopsis []
Description []
SideEffects []
SeeAlso []
Definition at line 94 of file mvcCube.c.
void Mvc_CubeFree | ( | Mvc_Cover_t * | pCover, |
Mvc_Cube_t * | pCube | ||
) |
Function*************************************************************
Synopsis []
Description []
SideEffects []
SeeAlso []
Definition at line 114 of file mvcCube.c.
void Mvc_CubePrint | ( | Mvc_Cover_t * | pCover, |
Mvc_Cube_t * | pCube | ||
) |
Function*************************************************************
Synopsis []
Description []
SideEffects []
SeeAlso []
Definition at line 79 of file mvcPrint.c.
void Mvc_CubePrintMv | ( | Mvc_Data_t * | pData, |
Mvc_Cover_t * | pCover, | ||
Mvc_Cube_t * | pCube | ||
) |
void Mvc_ListAddCubeHead_ | ( | Mvc_List_t * | pList, |
Mvc_Cube_t * | pCube | ||
) |
DECLARATIONS ///.
CFile****************************************************************
FileName [mvcList.c]
PackageName [MVSIS 2.0: Multi-valued logic synthesis system.]
Synopsis [Manipulating list of cubes in the cover.]
Author [MVSIS Group]
Affiliation [UC Berkeley]
Date [Ver. 1.0. Started - February 1, 2003.]
Revision [
]FUNCTION DEFINITIONS /// Function*************************************************************
Synopsis []
Description []
SideEffects []
SeeAlso []
Definition at line 43 of file mvcList.c.
void Mvc_ListAddCubeTail_ | ( | Mvc_List_t * | pList, |
Mvc_Cube_t * | pCube | ||
) |
void Mvc_ListDeleteCube_ | ( | Mvc_List_t * | pList, |
Mvc_Cube_t * | pPrev, | ||
Mvc_Cube_t * | pCube | ||
) |
Mvc_Cube_t* Mvc_ListGetTailFromHead | ( | Mvc_Cube_t * | pHead | ) |
Mvc_Cube_t* Mvc_ListReadCubeHead | ( | Mvc_List_t * | pList | ) |
int Mvc_ListReadCubeNum | ( | Mvc_List_t * | pList | ) |
Mvc_Cube_t* Mvc_ListReadCubeTail | ( | Mvc_List_t * | pList | ) |
Mvc_Manager_t* Mvc_ManagerAllocCover | ( | ) |
Mvc_Manager_t* Mvc_ManagerAllocCube | ( | int | nWords | ) |
void Mvc_ManagerFree | ( | Mvc_Manager_t * | p | ) |
Mvc_Manager_t* Mvc_ManagerFreeCover | ( | Mvc_Cover_t * | pCover | ) |
Mvc_Manager_t* Mvc_ManagerFreeCube | ( | Mvc_Cover_t * | pCube, |
int | nWords | ||
) |
Mvc_Manager_t* Mvc_ManagerStart | ( | ) |
DECLARATIONS ///.
CFile****************************************************************
FileName [mvcMan.c]
PackageName [MVSIS 2.0: Multi-valued logic synthesis system.]
Synopsis [Procedures working with the MVC memory manager.]
Author [MVSIS Group]
Affiliation [UC Berkeley]
Date [Ver. 1.0. Started - February 1, 2003.]
Revision [
]FUNCTION DEFINITIONS /// Function*************************************************************
Synopsis []
Description []
SideEffects []
SeeAlso []
Definition at line 44 of file mvcMan.c.
int Mvc_UtilsCheckUnusedZeros | ( | Mvc_Cover_t * | pCover | ) |
Function*************************************************************
Synopsis [Checks that the cubes of the cover have 0's in unused bits.]
Description []
SideEffects []
SeeAlso []
Definition at line 842 of file mvcUtils.c.
int Mvr_CoverCountLitsWithValue | ( | Mvc_Data_t * | pData, |
Mvc_Cover_t * | pCover, | ||
int | iVar, | ||
int | iValue | ||
) |