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

📄 ntkapi.c

📁 主要进行大规模的电路综合
💻 C
📖 第 1 页 / 共 2 页
字号:
/**CFile****************************************************************  FileName    [ntkApi.c]  PackageName [MVSIS 2.0: Multi-valued logic synthesis system.]  Synopsis    []  Author      [MVSIS Group]    Affiliation [UC Berkeley]  Date        [Ver. 1.0. Started - February 1, 2003.]  Revision    [$Id: ntkApi.c,v 1.33 2003/05/27 23:14:20 alanmi Exp $]***********************************************************************/#include "ntkInt.h"///////////////////////////////////////////////////////////////////////////                        DECLARATIONS                              //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////                     FUNCTION DEFITIONS                           ////////////////////////////////////////////////////////////////////////////**Function*************************************************************  Synopsis    [Basic pin APIs]  Description []                 SideEffects []  SeeAlso     []***********************************************************************/Ntk_Pin_t *  Ntk_PinReadNext( Ntk_Pin_t * pPin ) { return pPin->pNext; }Ntk_Pin_t *  Ntk_PinReadPrev( Ntk_Pin_t * pPin ) { return pPin->pPrev; }Ntk_Pin_t *  Ntk_PinReadLink( Ntk_Pin_t * pPin ) { return pPin->pLink; }Ntk_Node_t * Ntk_PinReadNode( Ntk_Pin_t * pPin ) { return pPin->pNode; }/**Function*************************************************************  Synopsis    [Basic latch APIs]  Description []                 SideEffects []  SeeAlso     []***********************************************************************/Ntk_Latch_t *   Ntk_LatchReadNext  ( Ntk_Latch_t * pLatch ) { return pLatch->pNext;  }Ntk_Latch_t *   Ntk_LatchReadPrev  ( Ntk_Latch_t * pLatch ) { return pLatch->pPrev;  }int             Ntk_LatchReadReset ( Ntk_Latch_t * pLatch ) { return pLatch->Reset;  }Ntk_Node_t *    Ntk_LatchReadInput ( Ntk_Latch_t * pLatch ) { return pLatch->pInput; }Ntk_Node_t *    Ntk_LatchReadOutput( Ntk_Latch_t * pLatch ) { return pLatch->pOutput;}Ntk_Node_t *    Ntk_LatchReadNode  ( Ntk_Latch_t * pLatch ) { return pLatch->pNode;  }Ntk_Network_t * Ntk_LatchReadNet   ( Ntk_Latch_t * pLatch ) { return pLatch->pNet;   }char *          Ntk_LatchReadData  ( Ntk_Latch_t * pLatch ) { return pLatch->pData;  }/**Function*************************************************************  Synopsis    [Basic node APIs]  Description []                 SideEffects []  SeeAlso     []***********************************************************************/Ntk_Node_t *      Ntk_NodeReadNext         ( Ntk_Node_t * pNode ) { return pNode->pNext;  }Ntk_Node_t *      Ntk_NodeReadPrev         ( Ntk_Node_t * pNode ) { return pNode->pPrev;  }Ntk_Node_t *      Ntk_NodeReadOrder        ( Ntk_Node_t * pNode ) { return pNode->pOrder; }int               Ntk_NodeReadId           ( Ntk_Node_t * pNode ) { return pNode->Id;     }char *            Ntk_NodeReadName         ( Ntk_Node_t * pNode ) { return pNode->pName;   }Ntk_NodeType_t    Ntk_NodeReadType         ( Ntk_Node_t * pNode ) { return pNode->Type;   }Ntk_NodeSubtype_t Ntk_NodeReadSubtype      ( Ntk_Node_t * pNode ) { return pNode->Subtype;}int               Ntk_NodeReadValueNum     ( Ntk_Node_t * pNode ) { return pNode->nValues;}Ntk_Pin_t *       Ntk_NodeReadFaninPinHead ( Ntk_Node_t * pNode ) { return pNode->lFanins.pHead;  }Ntk_Pin_t *       Ntk_NodeReadFaninPinTail ( Ntk_Node_t * pNode ) { return pNode->lFanins.pTail;  }int               Ntk_NodeReadFaninNum     ( Ntk_Node_t * pNode ) { return pNode->lFanins.nItems; }Ntk_Pin_t *       Ntk_NodeReadFanoutPinHead( Ntk_Node_t * pNode ) { return pNode->lFanouts.pHead; }Ntk_Pin_t *       Ntk_NodeReadFanoutPinTail( Ntk_Node_t * pNode ) { return pNode->lFanouts.pTail; }int               Ntk_NodeReadFanoutNum    ( Ntk_Node_t * pNode ) { return pNode->lFanouts.nItems;}char *            Ntk_NodeReadData         ( Ntk_Node_t * pNode ) { return pNode->pData;  }Ntk_Network_t *   Ntk_NodeReadNetwork      ( Ntk_Node_t * pNode ) { return pNode->pNet;   }Fnc_Function_t *  Ntk_NodeReadFunc         ( Ntk_Node_t * pNode ) { return pNode->pF;     }FILE *            Ntk_NodeReadMvsisErr     ( Ntk_Node_t * pNode ) { return Ntk_NetworkReadMvsisErr(pNode->pNet); }FILE *            Ntk_NodeReadMvsisOut     ( Ntk_Node_t * pNode ) { return Ntk_NetworkReadMvsisOut(pNode->pNet); }/**Function*************************************************************  Synopsis    [Node functionality APIs.]  Description []                 SideEffects []  SeeAlso     []***********************************************************************/Vm_VarMap_t *     Ntk_NodeReadFuncVm       ( Ntk_Node_t * pNode ) { return Fnc_FunctionReadVm( pNode->pF ); }Cvr_Cover_t *     Ntk_NodeReadFuncCvr      ( Ntk_Node_t * pNode ) { return Fnc_FunctionReadCvr( pNode->pF ); }Mvr_Relation_t *  Ntk_NodeReadFuncMvr      ( Ntk_Node_t * pNode ) { return Fnc_FunctionReadMvr( pNode->pF ); }DdNode **         Ntk_NodeReadFuncGlo      ( Ntk_Node_t * pNode ) { return Fnc_FunctionReadGlo( pNode->pF ); }Vm_VarMap_t *     Ntk_NodeGetFuncVm        ( Ntk_Node_t * pNode ) { return Fnc_FunctionGetVm( pNode->pF ); }Cvr_Cover_t *     Ntk_NodeGetFuncCvr       ( Ntk_Node_t * pNode ) { return Fnc_FunctionGetCvr( pNode->pNet->pMan, pNode->pF ); }Mvr_Relation_t *  Ntk_NodeGetFuncMvr       ( Ntk_Node_t * pNode ) { return Fnc_FunctionGetMvr( pNode->pNet->pMan, pNode->pF ); }DdNode **         Ntk_NodeGetFuncGlo       ( Ntk_Node_t * pNode ) { return Fnc_FunctionGetGlo( pNode->pNet->pMan, pNode->pF ); }void              Ntk_NodeWriteFuncVm      ( Ntk_Node_t * pNode, Vm_VarMap_t * pVm )     { Fnc_FunctionWriteVm( pNode->pF, pVm ); }void              Ntk_NodeWriteFuncCvr     ( Ntk_Node_t * pNode, Cvr_Cover_t * pCvr )    { Fnc_FunctionWriteCvr( pNode->pF, pCvr ); }void              Ntk_NodeWriteFuncMvr     ( Ntk_Node_t * pNode, Mvr_Relation_t * pMvr ) { Fnc_FunctionWriteMvr( pNode->pF, pMvr ); }void              Ntk_NodeWriteFuncGlo     ( Ntk_Node_t * pNode, DdNode ** pGlo )        { Fnc_FunctionWriteGlo( pNode->pF, pGlo ); }void              Ntk_NodeSetFuncVm        ( Ntk_Node_t * pNode, Vm_VarMap_t * pVm )     { Fnc_FunctionSetVm( pNode->pF, pVm ); }void              Ntk_NodeSetFuncCvr       ( Ntk_Node_t * pNode, Cvr_Cover_t * pCvr )    { Fnc_FunctionSetCvr( pNode->pF, pCvr ); }void              Ntk_NodeSetFuncMvr       ( Ntk_Node_t * pNode, Mvr_Relation_t * pMvr ) { Fnc_FunctionSetMvr( pNode->pF, pMvr ); }void              Ntk_NodeSetFuncGlo       ( Ntk_Node_t * pNode, DdNode ** pGlo )        { Fnc_FunctionSetGlo( pNode->pF, pGlo ); }void              Ntk_NodeFreeFuncVm ( Ntk_Node_t * pNode ) { Fnc_FunctionFreeVm( pNode->pF ); };void              Ntk_NodeFreeFuncCvr( Ntk_Node_t * pNode ) { Fnc_FunctionFreeCvr( pNode->pF ); };void              Ntk_NodeFreeFuncMvr( Ntk_Node_t * pNode ) { Fnc_FunctionFreeMvr( pNode->pF ); };void              Ntk_NodeFreeFuncGlo( Ntk_Node_t * pNode ) { Fnc_FunctionFreeGlo( pNode->pF ); };Fnc_Manager_t *   Ntk_NodeReadMan   ( Ntk_Node_t * pNode ) { return Ntk_NetworkReadMan   ( pNode->pNet ); };Mvr_Manager_t *   Ntk_NodeReadManMvr( Ntk_Node_t * pNode ) { return Ntk_NetworkReadManMvr( pNode->pNet ); };Vm_Manager_t *    Ntk_NodeReadManVm ( Ntk_Node_t * pNode ) { return Ntk_NetworkReadManVm ( pNode->pNet ); };Vmx_Manager_t *   Ntk_NodeReadManVmx( Ntk_Node_t * pNode ) { return Ntk_NetworkReadManVmx( pNode->pNet ); };Mvc_Manager_t *   Ntk_NodeReadManMvc( Ntk_Node_t * pNode ) { return Ntk_NetworkReadManMvc( pNode->pNet ); };/**Function*************************************************************  Synopsis    [Basic network APIs]  Description []                 SideEffects []  SeeAlso     []***********************************************************************/char *           Ntk_NetworkReadName     ( Ntk_Network_t * pNet ) { return pNet->pName;         }char *           Ntk_NetworkReadSpec     ( Ntk_Network_t * pNet ) { return pNet->pSpec;         }Mv_Frame_t *     Ntk_NetworkReadMvsis    ( Ntk_Network_t * pNet ) { return pNet->pMvsis;        }Ntk_Node_t *     Ntk_NetworkReadCiHead   ( Ntk_Network_t * pNet ) { return pNet->lCis.pHead;    }Ntk_Node_t *     Ntk_NetworkReadCiTail   ( Ntk_Network_t * pNet ) { return pNet->lCis.pTail;    }int              Ntk_NetworkReadCiNum    ( Ntk_Network_t * pNet ) { return pNet->lCis.nItems;   }Ntk_Node_t *     Ntk_NetworkReadCoHead   ( Ntk_Network_t * pNet ) { return pNet->lCos.pHead;    }Ntk_Node_t *     Ntk_NetworkReadCoTail   ( Ntk_Network_t * pNet ) { return pNet->lCos.pTail;    }int              Ntk_NetworkReadCoNum    ( Ntk_Network_t * pNet ) { return pNet->lCos.nItems;   }Ntk_Node_t *     Ntk_NetworkReadNodeHead ( Ntk_Network_t * pNet ) { return pNet->lNodes.pHead;  }Ntk_Node_t *     Ntk_NetworkReadNodeTail ( Ntk_Network_t * pNet ) { return pNet->lNodes.pTail;  }int              Ntk_NetworkReadNodeIntNum( Ntk_Network_t * pNet ) { return pNet->lNodes.nItems; }Ntk_Latch_t *    Ntk_NetworkReadLatchHead( Ntk_Network_t * pNet ) { return pNet->lLatches.pHead;}Ntk_Latch_t *    Ntk_NetworkReadLatchTail( Ntk_Network_t * pNet ) { return pNet->lLatches.pTail;}int              Ntk_NetworkReadLatchNum ( Ntk_Network_t * pNet ) { return pNet->lLatches.nItems;}Ntk_Node_t *     Ntk_NetworkReadOrder    ( Ntk_Network_t * pNet ) { return pNet->pOrder;        }Ntk_Node_t *     Ntk_NetworkReadOrderByLevel ( Ntk_Network_t * pNet, int Level ) { return pNet->ppLevels[Level]; }Fnc_Manager_t *  Ntk_NetworkReadMan      ( Ntk_Network_t * pNet ) { return pNet->pMan;          }Mvr_Manager_t *  Ntk_NetworkReadManMvr   ( Ntk_Network_t * pNet ) { return Fnc_ManagerReadManMvr(pNet->pMan); }Vm_Manager_t *   Ntk_NetworkReadManVm    ( Ntk_Network_t * pNet ) { return Fnc_ManagerReadManVm(pNet->pMan);  }Vmx_Manager_t *  Ntk_NetworkReadManVmx   ( Ntk_Network_t * pNet ) { return Fnc_ManagerReadManVmx(pNet->pMan); }Mvc_Manager_t *  Ntk_NetworkReadManMvc   ( Ntk_Network_t * pNet ) { return Fnc_ManagerReadManMvc(pNet->pMan); }DdManager *      Ntk_NetworkReadManDdLoc ( Ntk_Network_t * pNet ) { return Mvr_ManagerReadDdLoc( Fnc_ManagerReadManMvr(pNet->pMan) );  }DdManager *      Ntk_NetworkReadManDdGlo ( Ntk_Network_t * pNet ) { return Fnc_ManagerReadDdGlo(pNet->pMan);  }Ntk_Network_t *  Ntk_NetworkReadNetExdc  ( Ntk_Network_t * pNet ) { return pNet->pNetExdc; }FILE *           Ntk_NetworkReadMvsisErr ( Ntk_Network_t * pNet ) { return Mv_FrameReadErr( pNet->pMvsis); }FILE *           Ntk_NetworkReadMvsisOut ( Ntk_Network_t * pNet ) { return Mv_FrameReadOut( pNet->pMvsis); }Ntk_Network_t *  Ntk_NetworkReadBackup   ( Ntk_Network_t * pNet ) { return pNet->pNetBackup; }int              Ntk_NetworkReadStep     ( Ntk_Network_t * pNet ) { return pNet->iStep; }/**Function*************************************************************  Synopsis    [Returns the total number of nodes in the network.]  Description []                 SideEffects []  SeeAlso     []***********************************************************************/int Ntk_NetworkReadNodeTotalNum( Ntk_Network_t * pNet ){    return pNet->lNodes.nItems + pNet->lCis.nItems + pNet->lCos.nItems;}/**Function*************************************************************  Synopsis    [Returns the number of nodes that actually will be written into a file.]  Description []                 SideEffects []  SeeAlso     []***********************************************************************/int Ntk_NetworkReadNodeWritableNum( Ntk_Network_t * pNet ){    Ntk_Node_t * pNode;    int nNodes;    nNodes = Ntk_NetworkReadCiNum( pNet ) + Ntk_NetworkReadCoNum( pNet );    Ntk_NetworkForEachNode( pNet, pNode )        if ( !Ntk_NodeHasCoName(pNode) )            nNodes++;    return nNodes;}/**Function*************************************************************  Synopsis    []  Description []                 SideEffects []  SeeAlso     []***********************************************************************/void Ntk_NetworkSetNetExdc( Ntk_Network_t * pNet, Ntk_Network_t * pNetExdc ) {     assert( pNet->pNetExdc == NULL );    pNet->pNetExdc = pNetExdc;}/**Function*************************************************************  Synopsis    []  Description []                 SideEffects []  SeeAlso     []***********************************************************************/void Ntk_NetworkSetName( Ntk_Network_t * pNet, char * pName ){    assert( pNet->pName == NULL );    pNet->pName = pName;}/**Function*************************************************************  Synopsis    []  Description []                 SideEffects []  SeeAlso     []***********************************************************************/void Ntk_NetworkSetSpec( Ntk_Network_t * pNet, char * pSpec ){    assert( pNet->pSpec == NULL );    pNet->pSpec = pSpec;}/**Function*************************************************************  Synopsis    []  Description []                 SideEffects []  SeeAlso     []***********************************************************************/void Ntk_NetworkSetMvsis( Ntk_Network_t * pNet, Mv_Frame_t * pMvsis ){    assert( pNet->pMvsis == NULL );    pNet->pMvsis = pMvsis;}/**Function*************************************************************  Synopsis    []  Description []                 SideEffects []  SeeAlso     []***********************************************************************/void Ntk_NetworkSetBackup( Ntk_Network_t * pNet, Ntk_Network_t * pNetBackup ){

⌨️ 快捷键说明

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