📄 sh.h
字号:
/**CFile**************************************************************** FileName [sh.h] PackageName [MVSIS 2.0: Multi-valued logic synthesis system.] Synopsis [External declarations of structural hashing package.] Author [MVSIS Group] Affiliation [UC Berkeley] Date [Ver. 1.0. Started - February 1, 2003.] Revision [$Id: sh.h,v 1.2 2003/05/27 23:14:49 alanmi Exp $]***********************************************************************/#ifndef __SH_H__#define __SH_H__/////////////////////////////////////////////////////////////////////////// STRUCTURE DEFINITIONS ///////////////////////////////////////////////////////////////////////////typedef struct ShManagerStruct Sh_Manager_t; typedef struct ShNetworkStruct Sh_Network_t; typedef struct ShNodeStruct Sh_Node_t; /////////////////////////////////////////////////////////////////////////// INCLUDES ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// PARAMETERS ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// GLOBAL VARIABLES ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// MACRO DEFITIONS ///////////////////////////////////////////////////////////////////////////#define Sh_IsComplement(p) (((int)((long) (p) & 01)))#define Sh_Regular(p) ((Sh_Node_t *)((unsigned)(p) & ~01)) #define Sh_Not(p) ((Sh_Node_t *)((long)(p) ^ 01)) #define Sh_NotCond(p,c) ((Sh_Node_t *)((long)(p) ^ (c)))/////////////////////////////////////////////////////////////////////////// FUNCTION DEFITIONS ////////////////////////////////////////////////////////////////////////////*=== shApi.c ===========================================================*/extern Sh_Node_t ** Sh_ManagerReadVars( Sh_Manager_t * p );extern Sh_Node_t * Sh_ManagerReadVar( Sh_Manager_t * p, int i );extern int Sh_ManagerReadVarsNum( Sh_Manager_t * p );extern Sh_Node_t * Sh_ManagerReadConst1( Sh_Manager_t * p );extern Sh_Manager_t * Sh_NetworkReadManager( Sh_Network_t * p );extern int Sh_NetworkReadInputNum( Sh_Network_t * p );extern int Sh_NetworkReadOutputNum( Sh_Network_t * p );extern Sh_Node_t ** Sh_NetworkReadOutputs( Sh_Network_t * p );extern Sh_Node_t * Sh_NetworkReadOutput( Sh_Network_t * p, int i );extern int Sh_NetworkReadNodeNum( Sh_Network_t * p );extern Vm_VarMap_t * Sh_NetworkReadVmL( Sh_Network_t * p );extern Vm_VarMap_t * Sh_NetworkReadVmR( Sh_Network_t * p );extern Vm_VarMap_t * Sh_NetworkReadVmS( Sh_Network_t * p );extern Vm_VarMap_t * Sh_NetworkReadVmLC( Sh_Network_t * p );extern Vm_VarMap_t * Sh_NetworkReadVmRC( Sh_Network_t * p );extern void Sh_NetworkSetVmL( Sh_Network_t * p, Vm_VarMap_t * pVm );extern void Sh_NetworkSetVmR( Sh_Network_t * p, Vm_VarMap_t * pVm );extern void Sh_NetworkSetVmS( Sh_Network_t * p, Vm_VarMap_t * pVm );extern void Sh_NetworkSetVmLC( Sh_Network_t * p, Vm_VarMap_t * pVm );extern void Sh_NetworkSetVmRC( Sh_Network_t * p, Vm_VarMap_t * pVm );extern Sh_Node_t ** Sh_NetworkAllocInputsCore( Sh_Network_t * p, int nInputsCore );extern Sh_Node_t ** Sh_NetworkAllocOutputsCore( Sh_Network_t * p, int nOutputsCore );extern Sh_Node_t ** Sh_NetworkAllocSpecials( Sh_Network_t * p, int nSpecials );extern Sh_Node_t * Sh_NodeReadOne( Sh_Node_t * p );extern Sh_Node_t * Sh_NodeReadTwo( Sh_Node_t * p );extern Sh_Node_t * Sh_NodeReadOrder( Sh_Node_t * p );extern unsigned Sh_NodeReadData( Sh_Node_t * p );extern void Sh_NodeSetData( Sh_Node_t * p, unsigned uData );extern Sh_Node_t * Sh_NodeAnd ( Sh_Manager_t * p, Sh_Node_t * pNode1, Sh_Node_t * pNode2 );extern Sh_Node_t * Sh_NodeOr ( Sh_Manager_t * p, Sh_Node_t * pNode1, Sh_Node_t * pNode2 );extern Sh_Node_t * Sh_NodeExor( Sh_Manager_t * p, Sh_Node_t * pNode1, Sh_Node_t * pNode2 );extern bool Sh_NodeIsAnd( Sh_Node_t * pNode );extern bool Sh_NodeIsVar( Sh_Node_t * pNode );extern bool Sh_NodeIsConst( Sh_Node_t * pNode );extern void Sh_NodeRef( Sh_Node_t * pNode );extern void Sh_NodeDeref( Sh_Node_t * pNode );extern void Sh_NodeRecursiveDeref( Sh_Node_t * pNode );/*=== shCreate.c ===========================================================*/extern Sh_Manager_t * Sh_ManagerCreate( int nVars );extern void Sh_ManagerResize( Sh_Manager_t * pMan, int nVarsNew );extern void Sh_ManagerFree( Sh_Manager_t * p );extern Sh_Network_t * Sh_NetworkCreate( Sh_Manager_t * p, int nInputs, int nOutputs );extern void Sh_NetworkFree( Sh_Network_t * p );/*=== shUtils.c ===========================================================*/extern void Sh_NetworkSimulate( Sh_Network_t * p, unsigned uSignIn[], unsigned uSignOut[] );extern void Sh_NetworkBuildGlobalBdds( Sh_Network_t * p, DdManager * dd, DdNode * bFuncsIn[], DdNode * bFuncsOut[] );extern void Sh_NetworkWriteBlif( Sh_Network_t * p, char * sNamesIn[], char * sNamesOut[], char * sNameFile );/*=== shNetwork.c =========================================================*/extern int Sh_NetworkDfs( Sh_Network_t * pNet );extern int Sh_NetworkInterleaveNodes( Sh_Network_t * pNet );extern void Sh_NetworkCleanData( Sh_Network_t * pNet );extern void Sh_NodePrintArray( Sh_Node_t * ppNodes[], int nNodes );extern void Sh_NodePrint( Sh_Node_t * pNode );extern void Sh_NodePrintOne( Sh_Node_t * pNode );extern void Sh_NodePrintTrees( Sh_Node_t * ppNodes[], int nNodes );/////////////////////////////////////////////////////////////////////////// END OF FILE ///////////////////////////////////////////////////////////////////////////#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -