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

📄 cbprint.c

📁 主要进行大规模的电路综合
💻 C
字号:
/**CFile****************************************************************  FileName    [cbPrint.c]  PackageName [MVSIS 2.0: Multi-valued logic synthesis system.]  Synopsis    [print utilities]  Author      [MVSIS Group]    Affiliation [UC Berkeley]  Date        [Ver. 1.0. Started - February 1, 2003.]  Revision    [$Id: cbPrint.c,v 1.2 2003/05/27 23:14:46 alanmi Exp $]***********************************************************************/#include "mv.h"#include "cb.h"///////////////////////////////////////////////////////////////////////////                        DECLARATIONS                              //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////                     FUNCTION DEFITIONS                           ////////////////////////////////////////////////////////////////////////////**Function*************************************************************  Synopsis    []  Description []  SideEffects []  SeeAlso     []***********************************************************************/voidCb_NetworkPrintDominators( FILE *pOut, Ntk_Network_t *pNet, int nNodes ) {    Cb_Graph_t  * pG;    Cb_Vertex_t * pV;    Ntk_Node_t  * pNode, * pNodeDomi ;    int LengthMax, LenghtCur;    int nColumns, iNode;        /* compute dominators for all nodes */    pG = Cb_GraphCreateFromNetwork( pNet );    Cb_GraphDominators( pG );        if ( nNodes == 1 )    {        pNode = Ntk_NetworkReadOrder( pNet );        pV = (Cb_Vertex_t *)Ntk_NodeReadData( pNode );        pNodeDomi = (Ntk_Node_t *)((pV->pDomin)?(pV->pDomin->pData1):NULL);                fprintf( pOut, "%s : %s\n",                 Ntk_NodeGetNamePrintable(pNode),                 (pNodeDomi) ?                 Ntk_NodeGetNamePrintable(pNodeDomi) : "ROOT");                Cb_GraphFreeVertices( pG );        Cb_GraphFree( pG );        return;    }        // get the longest name    LengthMax = 4;  /* ROOT */    Ntk_NetworkForEachNodeSpecial( pNet, pNode )    {        LenghtCur = strlen( Ntk_NodeGetNamePrintable(pNode) );        if ( LengthMax < LenghtCur )            LengthMax = LenghtCur;    }        // decide how many columns to print    nColumns = 80 / (LengthMax + LengthMax + 4);        // print the node names    iNode = 0;    Ntk_NetworkForEachNodeSpecial( pNet, pNode )    {        pV = (Cb_Vertex_t *) Ntk_NodeReadData( pNode );        pNodeDomi = (Ntk_Node_t *)((pV->pDomin)?(pV->pDomin->pData1):NULL);                fprintf( pOut, "%*s : %-*s", LengthMax,                 Ntk_NodeGetNamePrintable(pNode), LengthMax,                 (pNodeDomi) ?                 Ntk_NodeGetNamePrintable(pNodeDomi) : "ROOT");                if ( ++iNode % nColumns == 0 )            fprintf( pOut, "\n" );         else            fprintf( pOut, "  " );     }    if ( iNode % nColumns )        fprintf( pOut, "\n" );         /* deallocate memory */    Cb_GraphFreeVertices( pG );    Cb_GraphFree( pG );        return;}/**Function*************************************************************  Synopsis    []  Description []  SideEffects []  SeeAlso     []***********************************************************************/voidCb_NetworkPrintDot( FILE *pOut, Ntk_Network_t *pNet ){    Cb_Graph_t *pG;        /* derive graph */    pG = Cb_GraphCreateFromNetwork( pNet );        /* print dot file */    Cb_GraphPrintDot( pOut, pG );        /* deallocate memory */    Cb_GraphFreeVertices( pG );    Cb_GraphFree( pG );    return;}///////////////////////////////////////////////////////////////////////////                       END OF FILE                                ///////////////////////////////////////////////////////////////////////////

⌨️ 快捷键说明

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