📄 ntk.h
字号:
// data-test node APIsextern bool Ntk_NodeIsCi( Ntk_Node_t * pNode );extern bool Ntk_NodeIsCo( Ntk_Node_t * pNode );extern bool Ntk_NodeIsCoDriver( Ntk_Node_t * pNode );extern bool Ntk_NodeIsCoFanin( Ntk_Node_t * pNode );extern Ntk_Node_t * Ntk_NodeHasCoName( Ntk_Node_t * pNode );extern bool Ntk_NodeIsInternal( Ntk_Node_t * pNode );extern bool Ntk_NodeIsConstant( Ntk_Node_t * pNode );extern bool Ntk_NodeBelongsToLatch( Ntk_Node_t * pNode );// data-test network APIs/*=== ntkCheck.c ====================================================*/extern int Ntk_NetworkCheck( Ntk_Network_t * pNet );extern int Ntk_NetworkCheckNode( Ntk_Network_t * pNet, Ntk_Node_t * pNode );extern int Ntk_NetworkCheckLatch( Ntk_Network_t * pNet, Ntk_Latch_t * pLatch );/*=== ntkDfs.c =======================================================*/extern void Ntk_NetworkDfs( Ntk_Network_t * pNet, int fFromOutputs );extern void Ntk_NetworkDfsNodes( Ntk_Network_t * pNet, Ntk_Node_t * ppNodes[], int nNodes, int fFromOutputs );extern int Ntk_NetworkLevelize( Ntk_Network_t * pNet, int fFromOutputs );extern int Ntk_NetworkLevelizeNodes( Ntk_Node_t * ppNodes[], int nNodes, int fFromOutputs );extern int Ntk_NetworkGetNumLevels( Ntk_Network_t * pNet );extern bool Ntk_NetworkIsAcyclic( Ntk_Network_t * pNet );extern bool Ntk_NetworkIsAcyclic1( Ntk_Network_t * pNet );extern bool Ntk_NetworkIsAcyclic2( Ntk_Network_t * pNet );extern int Ntk_NetworkComputeNodeSupport( Ntk_Network_t * pNet, Ntk_Node_t * pNodes[], int nNodes );extern int Ntk_NetworkInterleaveNodes( Ntk_Network_t * pNet, Ntk_Node_t * pNodes[], int nNodes );extern int Ntk_NetworkComputeNodeTfi( Ntk_Network_t * pNet, Ntk_Node_t * pNodes[], int nNodes, int Depth, bool fIncludeCis, bool fExistPath );extern int Ntk_NetworkComputeNodeTfo( Ntk_Network_t * pNet, Ntk_Node_t * pNodes[], int nNodes, int Depth, bool fIncludeCos, bool fExistPath ); extern bool Ntk_NodeHasCoInTfo( Ntk_Node_t * pNode );/*=== ntkFanio.c ===================================================*/// node fanin/fanout APIsextern Ntk_Node_t * Ntk_NodeReadFaninNode( Ntk_Node_t * pNode, int i );extern Ntk_Node_t * Ntk_NodeReadFanoutNode( Ntk_Node_t * pNode, int i );extern int Ntk_NodeReadFaninIndex( Ntk_Node_t * pNode, Ntk_Node_t * pFanin );extern int Ntk_NodeReadFanoutIndex( Ntk_Node_t * pNode, Ntk_Node_t * pFanout );extern int Ntk_NodeReadFanins( Ntk_Node_t * pNode, Ntk_Node_t * pFanins[] );extern int Ntk_NodeReadFanouts( Ntk_Node_t * pNode, Ntk_Node_t * pFanouts[] );extern void Ntk_NodeReadFanioValues( Ntk_Node_t * pNode, int * pValues );extern void Ntk_NodeReduceFanins( Ntk_Node_t * pNode, int * pSupport );extern Ntk_Pin_t * Ntk_NodeAddFanin( Ntk_Node_t * pNode, Ntk_Node_t * pFanin );extern Ntk_Pin_t * Ntk_NodeAddFanout( Ntk_Node_t * pNode, Ntk_Node_t * pFanout );extern void Ntk_NodeAddFaninFanout( Ntk_Network_t * pNet, Ntk_Node_t * pNode );extern void Ntk_NodeDeleteFaninFanout( Ntk_Network_t * pNet, Ntk_Node_t * pNode );extern void Ntk_NodeTransferFanout( Ntk_Node_t * pNodeFrom, Ntk_Node_t * pNodeTo );extern void Ntk_NodePatchFanin( Ntk_Node_t * pNode, Ntk_Node_t * pFaninOld, Ntk_Node_t * pFaninNew );extern Vm_VarMap_t * Ntk_NodeAssignVm( Ntk_Node_t * pNode );extern bool Ntk_NodeSupportContain( Ntk_Node_t * pNode1, Ntk_Node_t * pNode2 );/*=== ntkLatch.c ====================================================*/extern Ntk_Latch_t * Ntk_LatchCreate( Ntk_Network_t * pNet, Ntk_Node_t * pNode, char * pNameInput, char * pNameOutput );extern Ntk_Latch_t * Ntk_LatchDup( Ntk_Network_t * pNet, Ntk_Latch_t * pLatch );extern void Ntk_LatchDelete( Ntk_Latch_t * pLatch );extern void Ntk_LatchAdjustInput( Ntk_Network_t * pNet, Ntk_Latch_t * pLatch );extern void Ntk_NetworkAddLatch( Ntk_Network_t * pNet, Ntk_Latch_t * pLatch );extern void Ntk_NetworkDeleteLatch( Ntk_Latch_t * pLatch );/*=== ntkNames.c ====================================================*/extern char * Ntk_NodeGetNamePrintable( Ntk_Node_t * pNode );extern char * Ntk_NodeGetNameLong( Ntk_Node_t * pNode );extern char * Ntk_NodeGetNameShort( Ntk_Node_t * pNode );extern char * Ntk_NodeGetNameUniqueLong( Ntk_Node_t * pNode );extern char * Ntk_NodeGetNameUniqueShort( Ntk_Node_t * pNode );extern char * Ntk_NodeAssignName( Ntk_Node_t * pNode, char * pName );extern char * Ntk_NodeRemoveName( Ntk_Node_t * pNode );extern int Ntk_NodeCompareByNameAndId( Ntk_Node_t ** ppN1, Ntk_Node_t ** ppN2 );extern int Ntk_NodeCompareByNameAndIdOrder( Ntk_Node_t ** ppN1, Ntk_Node_t ** ppN2 );extern int Ntk_NodeCompareByValueAndId( Ntk_Node_t ** ppN1, Ntk_Node_t ** ppN2 );extern int Ntk_NodeCompareByLevel( Ntk_Node_t ** ppN1, Ntk_Node_t ** ppN2 );extern bool Ntk_NetworkIsModeShort( Ntk_Network_t * pNet );extern Ntk_Node_t * Ntk_NetworkFindOrAddNodeByName( Ntk_Network_t * pNet, char * pName, Ntk_NodeType_t Type );extern Ntk_Node_t * Ntk_NetworkFindNodeByName( Ntk_Network_t * pNet, char * pName );extern Ntk_Node_t * Ntk_NetworkFindNodeByNameWithMode( Ntk_Network_t * pNet, char * pName );extern Ntk_Node_t * Ntk_NetworkFindNodeByNameLong( Ntk_Network_t * pNet, char * pName );extern Ntk_Node_t * Ntk_NetworkFindNodeByNameShort( Ntk_Network_t * pNet, char * pName );extern Ntk_Node_t * Ntk_NetworkFindNodeById( Ntk_Network_t * pNet, int Id );extern char * Ntk_NetworkRegisterNewName( Ntk_Network_t * pNet, char * pName );extern void Ntk_NetworkRenameNodes( Ntk_Network_t * pNet );extern Ntk_Node_t * Ntk_NetworkCollectNodeByName( Ntk_Network_t * pNet, char * pName, int fCollectCis );extern void Ntk_NetworkCollectIoNames( Ntk_Network_t * pNet, char *** ppsLeaves, char *** ppsRoots );/*=== ntkNode.c =====================================================*/extern Ntk_Node_t * Ntk_NodeCreate( Ntk_Network_t * pNet, char * pName, Ntk_NodeType_t Type, int nValues );extern Ntk_Node_t * Ntk_NodeCreateConstant( Ntk_Network_t * pNet, int nValues, unsigned Pol );extern Ntk_Node_t * Ntk_NodeCreateOneInputNode( Ntk_Network_t * pNet, Ntk_Node_t * pFanin, int nValuesIn, int nValuesOut, unsigned Pols[] );extern Ntk_Node_t * Ntk_NodeCreateTwoInputBinary( Ntk_Network_t * pNet, Ntk_Node_t * ppFanins[], unsigned TruthTable );extern Ntk_Node_t * Ntk_NodeCreateDecoder( Ntk_Network_t * pNet, Ntk_Node_t * pNode1, Ntk_Node_t * pNode2 );extern Ntk_Node_t * Ntk_NodeCreateDecoderGeneral( Ntk_Node_t ** ppNodes, int nNodes, int * pValueAssign, int nTotalValues, int nOutputValues);extern void Ntk_NodeCreateEncoded( Ntk_Node_t * pNode, Ntk_Node_t ** ppNodes, int nNodes, int * pValueAssign, int nTotalValues, int nOutputValues);extern void Ntk_NodeCreateEncoders( Ntk_Network_t * pNet, Ntk_Node_t * pNode, int nValues1, int nValues2, Ntk_Node_t ** ppNode1, Ntk_Node_t ** ppNode2 );extern Ntk_Node_t * Ntk_NodeCreateCollector( Ntk_Network_t * pNet, Ntk_Node_t * ppFanins[], int nValues, int DefValue );extern Ntk_Node_t * Ntk_NodeCreateFromNetwork( Ntk_Network_t * pNet, char ** psCiNames );extern Ntk_Node_t * Ntk_NodeDup( Ntk_Network_t * pNetNew, Ntk_Node_t * pNode );extern Ntk_Node_t * Ntk_NodeClone( Ntk_Network_t * pNetNew, Ntk_Node_t * pNode );extern void Ntk_NodeReplace( Ntk_Node_t * pNode, Ntk_Node_t * pNodeNew );extern void Ntk_NodeDelete( Ntk_Node_t * pNode );extern void Ntk_NodeRecycle( Ntk_Network_t * pNet, Ntk_Node_t * pNode );extern bool Ntk_NodeIsTooLarge( Ntk_Node_t * pNode );extern bool Ntk_NodeIsBinaryBuffer( Ntk_Node_t * pNode );extern bool Ntk_NodesCanBeMerged( Ntk_Node_t * pNode1, Ntk_Node_t * pNode2 );extern bool Ntk_NodeDeterminize( Ntk_Node_t * pNode );/*=== ntkNodeHeap.c =======================================================*/extern Ntk_NodeHeap_t * Ntk_NodeHeapStart();extern void Ntk_NodeHeapStop( Ntk_NodeHeap_t * p );extern void Ntk_NodeHeapPrint( FILE * pFile, Ntk_NodeHeap_t * p );extern void Ntk_NodeHeapCheck( Ntk_NodeHeap_t * p );extern void Ntk_NodeHeapCheckOne( Ntk_NodeHeap_t * p, Ntk_Node_t * pNode );extern void Ntk_NodeHeapInsert( Ntk_NodeHeap_t * p, Ntk_Node_t * pNode ); extern void Ntk_NodeHeapUpdate( Ntk_NodeHeap_t * p, Ntk_Node_t * pNode ); extern void Ntk_NodeHeapDelete( Ntk_NodeHeap_t * p, Ntk_Node_t * pNode ); extern int Ntk_NodeHeapReadMaxWeight( Ntk_NodeHeap_t * p );extern int Ntk_NodeHeapCountNodes( Ntk_NodeHeap_t * p, int WeightLimit ); extern Ntk_Node_t * Ntk_NodeHeapReadMax( Ntk_NodeHeap_t * p ); extern Ntk_Node_t * Ntk_NodeHeapGetMax( Ntk_NodeHeap_t * p ); /*=== ntkSort.c ====================================================*/extern int Ntk_NetworkCompactNodeIds( Ntk_Network_t * pNet );extern int Ntk_NetworkOrderFanins( Ntk_Network_t * pNet );extern int Ntk_NodeOrderFanins( Ntk_Node_t * pNode );extern int * Ntk_NodeRelinkFanins( Ntk_Node_t * pNode );extern void Ntk_NetworkReassignIds( Ntk_Network_t * pNet );extern void Ntk_NodeCompactFanins( Ntk_Node_t * pNode, Ntk_Node_t * pFaninDup );/*=== ntkSubnetwork.c ====================================================*/extern Ntk_Network_t * Ntk_SubnetworkExtract( Ntk_Network_t * pNet );extern void Ntk_SubnetworkInsert( Ntk_Network_t * pNet, Ntk_Network_t * pNetSub );extern void Ntk_SubnetworkWriteIntoFile( Ntk_Network_t * pNet, char * FileName, bool fBinary );/*=== ntkUtils.c ====================================================*/extern Ntk_Network_t * Ntk_NetworkAlloc( Mv_Frame_t * pMvsis );extern Ntk_Network_t * Ntk_NetworkDup( Ntk_Network_t * pNet, Fnc_Manager_t * pMan );extern void Ntk_NetworkDelete( Ntk_Network_t * pNet );extern void Ntk_NetworkAddNode( Ntk_Network_t * pNet, Ntk_Node_t * pNode, bool fConnect ); extern Ntk_Node_t * Ntk_NetworkAddNodeCo( Ntk_Network_t * pNet, Ntk_Node_t * pNode, bool fConnect );extern void Ntk_NetworkTransformNodeIntToCo( Ntk_Network_t * pNet, Ntk_Node_t * pNode );extern void Ntk_NetworkTransformCiToCo( Ntk_Network_t * pNet, Ntk_Node_t * pNode );extern void Ntk_NetworkTransformNodeIntToCi( Ntk_Network_t * pNet, Ntk_Node_t * pNode );extern void Ntk_NetworkDeleteNode( Ntk_Network_t * pNet, Ntk_Node_t * pNode, bool fConnect, bool fDeleteNode ); extern bool Ntk_NetworkIsBinary( Ntk_Network_t * pNet );extern bool Ntk_NetworkIsND( Ntk_Network_t * pNet );extern Ntk_Node_t * Ntk_NetworkReadCiNode( Ntk_Network_t * pNet, int i );extern Ntk_Node_t * Ntk_NetworkReadCoNode( Ntk_Network_t * pNet, int i );extern int Ntk_NetworkReadCiIndex( Ntk_Network_t * pNet, Ntk_Node_t * pNode );extern int Ntk_NetworkReadCoIndex( Ntk_Network_t * pNet, Ntk_Node_t * pNode );/*=== ntkTravId.c =========================================================*/extern int Ntk_NetworkReadTravId( Ntk_Network_t * pNet );extern void Ntk_NetworkIncrementTravId( Ntk_Network_t * pNet );extern int Ntk_NodeReadTravId( Ntk_Node_t * pNode );extern void Ntk_NodeSetTravId( Ntk_Node_t * pNode, int TravId );extern void Ntk_NodeSetTravIdCurrent( Ntk_Node_t * pNode );extern bool Ntk_NodeIsTravIdCurrent( Ntk_Node_t * pNode );extern bool Ntk_NodeIsTravIdPrevious( Ntk_Node_t * pNode );extern void Ntk_NetworkStartSpecial( Ntk_Network_t * pNet );extern void Ntk_NetworkStopSpecial( Ntk_Network_t * pNet );extern void Ntk_NetworkAddToSpecial( Ntk_Node_t * pNode );extern void Ntk_NetworkMoveSpecial( Ntk_Node_t * pNode );extern void Ntk_NetworkResetSpecial( Ntk_Network_t * pNet );extern int Ntk_NetworkCountSpecial( Ntk_Network_t * pNet );extern void Ntk_NetworkCreateSpecialFromArray( Ntk_Network_t * pNet, Ntk_Node_t * ppNodes[], int nNodes );extern int Ntk_NetworkCreateArrayFromSpecial( Ntk_Network_t * pNet, Ntk_Node_t * ppNodes[] );extern void Ntk_NetworkPrintSpecial( Ntk_Network_t * pNet );extern void Ntk_NetworkPrintArray( Ntk_Node_t ** ppNodes, int nNodes );/*=== ntkMinBase.c ====================================================*/extern bool Ntk_NodeMakeMinimumBase( Ntk_Node_t * pNode );/*=== ntkNodeCol.c ====================================================*/extern bool Ntk_NetworkCollapseNodes( Ntk_Node_t * pNode, Ntk_Node_t * pFanin );extern Ntk_Node_t * Ntk_NodeCollapse( Ntk_Node_t * pNode, Ntk_Node_t * pFanin );extern Ntk_Node_t * Ntk_NodeMakeCommonBase( Ntk_Node_t * pNode1, Ntk_Node_t * pNode2, int * pTransMapN1, int * pTransMapN2 );/////////////////////////////////////////////////////////////////////////// ITERATORS ///////////////////////////////////////////////////////////////////////////
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -