📄 shapi.c
字号:
/**CFile**************************************************************** FileName [shApi.c] PackageName [MVSIS 2.0: Multi-valued logic synthesis system.] Synopsis [Exported APIs of the structural hashing package.] Author [MVSIS Group] Affiliation [UC Berkeley] Date [Ver. 1.0. Started - February 1, 2003.] Revision [$Id: shApi.c,v 1.2 2003/05/27 23:14:50 alanmi Exp $]***********************************************************************/#include "shInt.h"/////////////////////////////////////////////////////////////////////////// DECLARATIONS ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// FUNCTION DEFITIONS ////////////////////////////////////////////////////////////////////////////**Function************************************************************* Synopsis [] Description [] SideEffects [] SeeAlso []***********************************************************************/Sh_Node_t ** Sh_ManagerReadVars( Sh_Manager_t * p ) { return p->pVars; }Sh_Node_t * Sh_ManagerReadVar( Sh_Manager_t * p, int i ) { return p->pVars[i]; }int Sh_ManagerReadVarsNum( Sh_Manager_t * p ) { return p->nVars; }Sh_Node_t * Sh_ManagerReadConst1( Sh_Manager_t * p ) { return p->pConst1; }Sh_Manager_t * Sh_NetworkReadManager( Sh_Network_t * p ) { return p->pMan; }int Sh_NetworkReadInputNum( Sh_Network_t * p ) { return p->nInputs; }int Sh_NetworkReadOutputNum( Sh_Network_t * p ) { return p->nOutputs; }Sh_Node_t ** Sh_NetworkReadOutputs( Sh_Network_t * p ) { return p->ppOutputs; }Sh_Node_t * Sh_NetworkReadOutput( Sh_Network_t * p, int i ) { return p->ppOutputs[i]; }int Sh_NetworkReadNodeNum( Sh_Network_t * p ) { return p->nNodes; }Vm_VarMap_t * Sh_NetworkReadVmL( Sh_Network_t * p ) { return p->pVmL; }Vm_VarMap_t * Sh_NetworkReadVmR( Sh_Network_t * p ) { return p->pVmR; }Vm_VarMap_t * Sh_NetworkReadVmS( Sh_Network_t * p ) { return p->pVmS; }Vm_VarMap_t * Sh_NetworkReadVmLC( Sh_Network_t * p ) { return p->pVmLC; }Vm_VarMap_t * Sh_NetworkReadVmRC( Sh_Network_t * p ) { return p->pVmRC; }void Sh_NetworkSetVmL( Sh_Network_t * p, Vm_VarMap_t * pVm ) { p->pVmL = pVm; }void Sh_NetworkSetVmR( Sh_Network_t * p, Vm_VarMap_t * pVm ) { p->pVmR = pVm; }void Sh_NetworkSetVmS( Sh_Network_t * p, Vm_VarMap_t * pVm ) { p->pVmS = pVm; }void Sh_NetworkSetVmLC( Sh_Network_t * p, Vm_VarMap_t * pVm ) { p->pVmLC = pVm; }void Sh_NetworkSetVmRC( Sh_Network_t * p, Vm_VarMap_t * pVm ) { p->pVmRC = pVm; }Sh_Node_t * Sh_NodeReadOne( Sh_Node_t * p ) { return p->pOne; }Sh_Node_t * Sh_NodeReadTwo( Sh_Node_t * p ) { return p->pTwo; }Sh_Node_t * Sh_NodeReadOrder( Sh_Node_t * p ) { return p->pOrder; }unsigned Sh_NodeReadData( Sh_Node_t * p ) { return p->pData; }void Sh_NodeSetData( Sh_Node_t * p, unsigned uData ) { p->pData = uData; }/**Function************************************************************* Synopsis [] Description [] SideEffects [] SeeAlso []***********************************************************************/Sh_Node_t ** Sh_NetworkAllocInputsCore( Sh_Network_t * p, int nInputsCore ){ assert( nInputsCore > 0 ); if ( p->nInputsCore > 0 ) FREE( p->ppInputsCore ); p->nInputsCore = nInputsCore; p->ppInputsCore = ALLOC( Sh_Node_t *, nInputsCore ); return p->ppInputsCore;}/**Function************************************************************* Synopsis [] Description [] SideEffects [] SeeAlso []***********************************************************************/Sh_Node_t ** Sh_NetworkAllocOutputsCore( Sh_Network_t * p, int nOutputsCore ){ assert( nOutputsCore > 0 ); if ( p->nOutputsCore > 0 ) FREE( p->ppOutputsCore ); p->nOutputsCore = nOutputsCore; p->ppOutputsCore = ALLOC( Sh_Node_t *, nOutputsCore ); return p->ppOutputsCore;}/**Function************************************************************* Synopsis [] Description [] SideEffects [] SeeAlso []***********************************************************************/Sh_Node_t ** Sh_NetworkAllocSpecials( Sh_Network_t * p, int nSpecials ){ assert( nSpecials > 0 ); if ( p->nSpecials > 0 ) FREE( p->ppSpecials ); p->nSpecials = nSpecials; p->ppSpecials = ALLOC( Sh_Node_t *, nSpecials ); return p->ppSpecials;}/**Function************************************************************* Synopsis [] Description [] SideEffects [] SeeAlso []***********************************************************************/Sh_Node_t * Sh_NodeAnd( Sh_Manager_t * p, Sh_Node_t * pNode1, Sh_Node_t * pNode2 ){ return Sh_CanonNodeAnd( p, pNode1, pNode2 );}/**Function************************************************************* Synopsis [] Description [] SideEffects [] SeeAlso []***********************************************************************/Sh_Node_t * Sh_NodeOr( Sh_Manager_t * p, Sh_Node_t * pNode1, Sh_Node_t * pNode2 ){ return Sh_Not( Sh_CanonNodeAnd( p, Sh_Not(pNode1), Sh_Not(pNode2) ) );}/**Function************************************************************* Synopsis [] Description [] SideEffects [] SeeAlso []***********************************************************************/Sh_Node_t * Sh_NodeExor( Sh_Manager_t * p, Sh_Node_t * pNode1, Sh_Node_t * pNode2 ){ Sh_Node_t * pAnd1, * pAnd2, * pRes; pAnd1 = Sh_CanonNodeAnd( p, pNode1, Sh_Not(pNode2) ); shNodeRef( pAnd1 ); pAnd2 = Sh_CanonNodeAnd( p, Sh_Not(pNode1), pNode2 ); shNodeRef( pAnd2 ); pRes = Sh_CanonNodeAnd( p, pAnd1, pAnd2 ); shNodeRef( pRes ); Sh_NodeRecursiveDeref( pAnd1 ); Sh_NodeRecursiveDeref( pAnd2 ); shNodeDeref( pRes ); return pRes;}/**Function************************************************************* Synopsis [] Description [] SideEffects [] SeeAlso []***********************************************************************/bool Sh_NodeIsAnd( Sh_Node_t * pNode ){ return shNodeIsAnd(pNode);}/**Function************************************************************* Synopsis [] Description [] SideEffects [] SeeAlso []***********************************************************************/bool Sh_NodeIsVar( Sh_Node_t * pNode ){ return shNodeIsVar(pNode);}/**Function************************************************************* Synopsis [] Description [] SideEffects [] SeeAlso []***********************************************************************/bool Sh_NodeIsConst( Sh_Node_t * pNode ){ return shNodeIsConst(pNode);}/**Function************************************************************* Synopsis [] Description [] SideEffects [] SeeAlso []***********************************************************************/void Sh_NodeRef( Sh_Node_t * pNode ) { shNodeRef(pNode);}/**Function************************************************************* Synopsis [] Description [] SideEffects [] SeeAlso []***********************************************************************/void Sh_NodeDeref( Sh_Node_t * pNode ) { shNodeDeref(pNode);}/**Function************************************************************* Synopsis [] Description [] SideEffects [] SeeAlso []***********************************************************************/void Sh_NodeRecursiveDeref( Sh_Node_t * pNode ){/* Sh_Node_t * pNodeR; pNodeR = Sh_Regular(pNode); assert( pNodeR->nRefs > 0 ); if ( --pNodeR->nRefs == 0 && pNodeR->pOne && pNodeR->pTwo ) { Sh_NodeRecursiveDeref( pNodeR->pOne ); Sh_NodeRecursiveDeref( pNodeR->pTwo ); }*/}////////////////////////////////////////////////////////////////////////// END OF FILE ///////////////////////////////////////////////////////////////////////////
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -