📄 ntkapi.c
字号:
// assert( pNetBackup == NULL || pNet->pNetBackup == NULL ); pNet->pNetBackup = pNetBackup;}/**Function************************************************************* Synopsis [] Description [] SideEffects [] SeeAlso []***********************************************************************/void Ntk_NetworkSetStep( Ntk_Network_t * pNet, int iStep ){// assert( pNet->iStep == 0 ); pNet->iStep = iStep;}/**Function************************************************************* Synopsis [] Description [] SideEffects [] SeeAlso []***********************************************************************/void Ntk_NodeSetName( Ntk_Node_t * pNode, char * pName ){ assert( pName == NULL || pNode->pName == NULL ); pNode->pName = pName;}/**Function************************************************************* Synopsis [] Description [] SideEffects [] SeeAlso []***********************************************************************/void Ntk_NodeSetSubtype( Ntk_Node_t * pNode, int Subtype ){ assert( pNode->Subtype == 0 ); pNode->Subtype = Subtype;}/**Function************************************************************* Synopsis [] Description [] SideEffects [] SeeAlso []***********************************************************************/void Ntk_NodeSetValueNum( Ntk_Node_t * pNode, int nValues ){// assert( pNode->nValues == -1 ); pNode->nValues = nValues;}/**Function************************************************************* Synopsis [] Description [] SideEffects [] SeeAlso []***********************************************************************/void Ntk_NodeSetData( Ntk_Node_t * pNode, char * pData ){ pNode->pData = pData;}/**Function************************************************************* Synopsis [] Description [] SideEffects [] SeeAlso []***********************************************************************/void Ntk_NodeSetNetwork( Ntk_Node_t * pNode, Ntk_Network_t * pNet ){ assert( pNode->pNet == NULL ); pNode->pNet = pNet;}/**Function************************************************************* Synopsis [] Description [] SideEffects [] SeeAlso []***********************************************************************/bool Ntk_NodeIsCi( Ntk_Node_t * pNode ){ return (bool)(pNode->Type == MV_NODE_CI);}/**Function************************************************************* Synopsis [] Description [] SideEffects [] SeeAlso []***********************************************************************/bool Ntk_NodeIsCo( Ntk_Node_t * pNode ){ return (bool)(pNode->Type == MV_NODE_CO);}/**Function************************************************************* Synopsis [Returns 1 if the node is a "CO driver".] Description [A CO driver is an internal node, whose only fanout is a CO.] SideEffects [] SeeAlso []***********************************************************************/bool Ntk_NodeIsCoDriver( Ntk_Node_t * pNode ){ Ntk_Node_t * pFanout; if ( Ntk_NodeReadFanoutNum(pNode) == 1 ) { pFanout = Ntk_NodeReadFanoutNode( pNode, 0 ); if ( pFanout->Type == MV_NODE_CO ) return 1; } return 0;}/**Function************************************************************* Synopsis [Returns 1 if the has one or more CO fanouts.] Description [] SideEffects [] SeeAlso []***********************************************************************/bool Ntk_NodeIsCoFanin( Ntk_Node_t * pNode ){ Ntk_Node_t * pFanout; Ntk_Pin_t * pPin; Ntk_NodeForEachFanout( pNode, pPin, pFanout ) { if ( Ntk_NodeIsCo(pFanout) ) return 1; } return 0;}/**Function************************************************************* Synopsis [If the intenal node has exactly one CO fanout, returns this CO.] Description [] SideEffects [] SeeAlso []***********************************************************************/Ntk_Node_t * Ntk_NodeHasCoName( Ntk_Node_t * pNode ){ Ntk_Node_t * pFanout, * pFanoutCo; Ntk_Pin_t * pPin; int Counter; // the node cannot have CO name if it is CI if ( pNode->Type != MV_NODE_INT ) return NULL; // the node ahs a CO name if it is an internal node, // whose set of fanouts contains exactly one CO Counter = 0; Ntk_NodeForEachFanout( pNode, pPin, pFanout ) if ( pFanout->Type == MV_NODE_CO ) { pFanoutCo = pFanout; Counter++; } if ( Counter == 1 ) return pFanoutCo; return NULL;}/**Function************************************************************* Synopsis [] Description [] SideEffects [] SeeAlso []***********************************************************************/bool Ntk_NodeIsInternal( Ntk_Node_t * pNode ){ return (bool)(pNode->Type == MV_NODE_INT);}/**Function************************************************************* Synopsis [] Description [] SideEffects [] SeeAlso []***********************************************************************/bool Ntk_NodeIsConstant( Ntk_Node_t * pNode ){ Fnc_Function_t * pF; pF = Ntk_NodeReadFunc( pNode ); return (bool)(Vm_VarMapReadVarsInNum( Fnc_FunctionReadVm(pF) ) == 0);}/**Function************************************************************* Synopsis [] Description [] SideEffects [] SeeAlso []***********************************************************************/bool Ntk_NodeBelongsToLatch( Ntk_Node_t * pNode ){ return (bool)(pNode->Subtype == MV_BELONGS_TO_LATCH);}/**Function************************************************************* Synopsis [] Description [] SideEffects [] SeeAlso []***********************************************************************/int Ntk_NodeReadDefault( Ntk_Node_t * pNode ){ Cvr_Cover_t * pCvr; assert( pNode->Type == MV_NODE_INT ); pCvr = Ntk_NodeReadFuncCvr( pNode ); if ( pCvr == NULL ) return -1; return Cvr_CoverReadDefault(pCvr);}/////////////////////////////////////////////////////////////////////////// END OF FILE ///////////////////////////////////////////////////////////////////////////
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -