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

📄 sh.h

📁 主要进行大规模的电路综合
💻 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 + -