⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 mvcdata.c

📁 主要进行大规模的电路综合
💻 C
字号:
/**CFile****************************************************************  FileName    [mvcData.c]  PackageName [MVSIS 2.0: Multi-valued logic synthesis system.]  Synopsis    [Sets up additional data structures for MV cover processing.]  Author      [MVSIS Group]    Affiliation [UC Berkeley]  Date        [Ver. 1.0. Started - February 1, 2003.]  Revision    [$Id: mvcData.c,v 1.4 2003/05/27 23:15:12 alanmi Exp $]***********************************************************************/#include "mvc.h"#include "vm.h"#include "vmInt.h"///////////////////////////////////////////////////////////////////////////                        DECLARATIONS                              //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////                     FUNCTION DEFITIONS                           ////////////////////////////////////////////////////////////////////////////**Function*************************************************************  Synopsis    [Creates the structure for the given cover.]  Description []                 SideEffects []  SeeAlso     []***********************************************************************/Mvc_Data_t * Mvc_CoverDataAlloc( Vm_VarMap_t * pVm, Mvc_Cover_t * pCover ){    Mvc_Data_t * p;    int v, i;    p = ALLOC( Mvc_Data_t, 1 );    memset( p, 0, sizeof(Mvc_Data_t) );    p->pVm = pVm;    p->pMan = pCover->pMem;    if ( pVm->nVarsIn )    {        // allocate the binary mask        p->pMaskBin = Mvc_CubeAlloc( pCover );        Mvc_CubeBitClean( p->pMaskBin );        // allocate the storage for var masks        p->ppMasks  = ALLOC( Mvc_Cube_t *, pVm->nVarsIn );        for ( v = 0; v < pVm->nVarsIn; v++ )        {            // allocate the given var mask            p->ppMasks[v] = Mvc_CubeAlloc( pCover );            Mvc_CubeBitClean( p->ppMasks[v] );            // fill up the given var mask            for ( i = 0; i < pVm->pValues[v]; i++ )                Mvc_CubeBitInsert( p->ppMasks[v], pVm->pValuesFirst[v] + i );            // consider the case when this var is binary            if ( pVm->pValues[v] == 2 )            {                Mvc_CubeBitOr( p->pMaskBin, p->pMaskBin, p->ppMasks[v] );                p->nBinVars++;            }        }    }    // allocate the temporary cubes    for ( i = 0; i < 3; i++ )        p->ppTemp[i] = Mvc_CubeAlloc( pCover );    return p;} /**Function*************************************************************  Synopsis    [Deallocates the structure for the given cover.]  Description []                 SideEffects []  SeeAlso     []***********************************************************************/void Mvc_CoverDataFree( Mvc_Data_t * p, Mvc_Cover_t * pCover ){    int i;    if ( p->pVm->nVarsIn )    {        for ( i = 0; i < p->pVm->nVarsIn; i++ )            Mvc_CubeFree( pCover, p->ppMasks[i] );        Mvc_CubeFree( pCover, p->pMaskBin );        for ( i = 0; i < 3; i++ )            Mvc_CubeFree( pCover, p->ppTemp[i] );        FREE( p->ppMasks );    }    FREE( p );}///////////////////////////////////////////////////////////////////////////                       END OF FILE                                ///////////////////////////////////////////////////////////////////////////

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -