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

📄 fnc.h

📁 主要进行大规模的电路综合
💻 H
字号:
/**CFile****************************************************************  FileName    [fnc.h]  PackageName [MVSIS 2.0: Multi-valued logic synthesis system.]  Synopsis    [Represetation of functionality in MVSIS.]  Author      [MVSIS Group]    Affiliation [UC Berkeley]  Date        [Ver. 1.0. Started - February 1, 2003.]  Revision    [$Id: fnc.h,v 1.16 2003/05/27 23:15:03 alanmi Exp $]***********************************************************************/#ifndef __FNC_H__#define __FNC_H__///////////////////////////////////////////////////////////////////////////                          INCLUDES                                //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////                         PARAMETERS                               //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////                    STRUCTURE DEFINITIONS                         ///////////////////////////////////////////////////////////////////////////typedef struct FncManagerStruct    Fnc_Manager_t;    // the functionality managertypedef struct FncFunctionStruct   Fnc_Function_t;   // the function structure ///////////////////////////////////////////////////////////////////////////                       MACRO DEFITIONS                            //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////                     FUNCTION DEFITIONS                           ////////////////////////////////////////////////////////////////////////////*=== fncApi.c ====================================================*/extern Fnc_Function_t *  Fnc_FunctionAlloc();extern void              Fnc_FunctionCopy( Fnc_Function_t * pNDest, Fnc_Function_t * pNSource );extern void              Fnc_FunctionClean( Fnc_Function_t * pF );extern void              Fnc_FunctionDelete( Fnc_Function_t * pF );extern void              Fnc_FunctionDup( Fnc_Manager_t * pManOld, Fnc_Manager_t * pManNew, Fnc_Function_t * pFOld, Fnc_Function_t * pFNew );/*=== fncMan.c ====================================================*/extern Fnc_Manager_t *   Fnc_ManagerAllocate();extern void              Fnc_ManagerDeallocate( Fnc_Manager_t * p );extern Fnc_Manager_t *   Fnc_ManagerRef( Fnc_Manager_t * p );extern void              Fnc_ManagerDeref( Fnc_Manager_t * p );extern DdManager *       Fnc_ManagerReadDdLoc( Fnc_Manager_t * p );extern DdManager *       Fnc_ManagerReadDdGlo( Fnc_Manager_t * p );extern Vm_Manager_t *    Fnc_ManagerReadManVm( Fnc_Manager_t * p );extern Vmx_Manager_t *   Fnc_ManagerReadManVmx( Fnc_Manager_t * p );extern Mvr_Manager_t *   Fnc_ManagerReadManMvr( Fnc_Manager_t * p );extern Vmx_VarMap_t *    Fnc_ManagerReadMapGlo( Fnc_Manager_t * p );extern Mvc_Manager_t *   Fnc_ManagerReadManMvc( Fnc_Manager_t * p );//extern Sh_Manager_t *    Fnc_ManagerReadManSh( Fnc_Manager_t * p );//extern Fm_Manager_t *    Fnc_ManagerReadManFm( Fnc_Manager_t * p );/*=== fncNode.c ====================================================*/// "Read" functions get the value of the corresponding pointer, even if it is NULL.extern Vm_VarMap_t *     Fnc_FunctionReadVm( Fnc_Function_t * pF );extern Cvr_Cover_t *     Fnc_FunctionReadCvr( Fnc_Function_t * pF );extern Mvr_Relation_t *  Fnc_FunctionReadMvr( Fnc_Function_t * pF );extern DdNode **         Fnc_FunctionReadGlo( Fnc_Function_t * pF );// "Get" functions retrieve the object by computing it if it is currently NULLextern Vm_VarMap_t *     Fnc_FunctionGetVm( Fnc_Function_t * pF );extern Cvr_Cover_t *     Fnc_FunctionGetCvr( Fnc_Manager_t * pMan, Fnc_Function_t * pF );extern Mvr_Relation_t *  Fnc_FunctionGetMvr( Fnc_Manager_t * pMan, Fnc_Function_t * pF );extern DdNode **         Fnc_FunctionGetGlo( Fnc_Manager_t * pMan, Fnc_Function_t * pF );// "Write" functions free the old pointer (if not NULL), set the new pointer, do not invalidate other pointersextern void              Fnc_FunctionWriteVm( Fnc_Function_t * pF, Vm_VarMap_t * pVm );extern void              Fnc_FunctionWriteCvr( Fnc_Function_t * pF, Cvr_Cover_t * pCvr );extern void              Fnc_FunctionWriteMvr( Fnc_Function_t * pF, Mvr_Relation_t * pMvr );extern void              Fnc_FunctionWriteGlo( Fnc_Function_t * pF, DdNode ** pGlo );// "Set" functions free the old pointer (if not NULL), set the new pointer, invalidate other pointersextern void              Fnc_FunctionSetVm( Fnc_Function_t * pF, Vm_VarMap_t * pVm ); extern void              Fnc_FunctionSetCvr( Fnc_Function_t * pF, Cvr_Cover_t * pCvr ); extern void              Fnc_FunctionSetMvr( Fnc_Function_t * pF, Mvr_Relation_t * pMvr ); extern void              Fnc_FunctionSetGlo( Fnc_Function_t * pF, DdNode ** pGlo );// freeingextern void              Fnc_FunctionFreeVm( Fnc_Function_t * pF );extern void              Fnc_FunctionFreeCvr( Fnc_Function_t * pF );extern void              Fnc_FunctionFreeMvr( Fnc_Function_t * pF );extern void              Fnc_FunctionFreeGlo( Fnc_Function_t * pF ); // other functions/*=== fncMvr.c ====================================================*/extern Mvr_Relation_t *  Fnc_FunctionDeriveMvrFromCvr( Mvr_Manager_t * pManMvr, Vmx_Manager_t * pManVmx, Cvr_Cover_t * pCvr );extern int               Fnc_FunctionDeriveMddFromCvr( DdManager * dd, Vm_VarMap_t * pVm, Cvr_Cover_t * pCvr, DdNode ** pbCodes, DdNode ** pbResults );extern DdNode *          Fnc_FunctionDeriveMddFromSop( DdManager * dd, Vm_VarMap_t * pVm, Mvc_Cover_t * Cover, DdNode ** pInputMdds );extern DdNode *          Fnc_FunctionDeriveMddFromZdd( DdManager * dd, Vm_VarMap_t * pVm, DdNode * zIsop, DdNode ** pInputMdds );/*=== fncCvr.c ====================================================*/extern Cvr_Cover_t *     Fnc_FunctionDeriveCvrFromMvr( Mvc_Manager_t * pManMvc, Mvr_Relation_t * pMvr, int fUseDefault );extern int               Fnc_FunctionDeriveZddFromMvr( DdManager * dd, DdNode * pbIsets[], DdNode * pzIsets[], int nIsets );extern Mvc_Cover_t *     Fnc_FunctionDeriveSopFromMdd( Mvc_Manager_t * pManMvc, Mvr_Relation_t * pMvr, DdNode * bMddOn, DdNode * bMddOnDc, int nVarsUsed );extern Mvc_Cover_t *     Fnc_FunctionDeriveSopFromMddLimited( Mvc_Manager_t * pManMvc, Mvr_Relation_t * pMvr, DdNode * bMddOn, DdNode * bMddOnDc, int nVarsUsed );extern Mvc_Cover_t *     Fnc_FunctionDeriveSopFromMddEspresso( Mvc_Manager_t * pManMvc, Mvr_Relation_t * pMvr, DdNode * bOn, DdNode * bOnDc, int nVarsUsed );extern Mvc_Cover_t *     Fnc_FunctionDeriveSopFromZdd( Mvc_Manager_t * pManMvc, Mvr_Relation_t * pMvr, DdNode * zIsopLog, int nVarsUsed );extern DdNode *          Fnc_FunctionDeriveZddFromMdd( Mvr_Relation_t * pMvr, DdNode * bMddOn, DdNode * bMddOnDc );/*=== fncSopMin.c ====================================================*/extern Cvr_Cover_t *     Fnc_FunctionMinimizeCvr( Mvc_Manager_t * pManMvc, Mvr_Relation_t * pMvr, bool fUseIsop );///////////////////////////////////////////////////////////////////////////                       END OF FILE                                ///////////////////////////////////////////////////////////////////////////#endif

⌨️ 快捷键说明

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