superWrite.c 2.92 KB
Newer Older
Alan Mishchenko committed
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
/**CFile****************************************************************

  FileName    [superWrite.c]

  PackageName [MVSIS 1.3: Multi-valued logic synthesis system.]

  Synopsis    [Pre-computation of supergates.]

  Author      [MVSIS Group]
  
  Affiliation [UC Berkeley]

  Date        [Ver. 1.0. Started - September 8, 2003.]

  Revision    [$Id: superWrite.c,v 1.1 2004/04/03 01:36:45 alanmi Exp $]

***********************************************************************/

#include "superInt.h"

21 22 23
ABC_NAMESPACE_IMPL_START


Alan Mishchenko committed
24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58
/*
    One record in the supergate library file consists of:

    <gate_number> <truth_table> <delay_max> <pin-to-pin-delays> <area> <gate_formula>

    <gate_number>       is a zero-based integer
    <truth_table>       is a string of 2^n bits representing the value of the function for each minterm
    <delay_max>         is the maximum delay of the gate
    <pin-to-pin-delays> is the array of n double values
    <area>              is a floating point value
    <gate_formula>      is the string representing the gate in the following format:
        GATENAME1( GATENAME2( a, c ), GATENAME3( a, d ), ... )
        The gate names (GATENAME1, etc) are the names as they appear in the .genlib library.
        The primary inputs of the gates are denoted by lowercase chars 'a', 'b', etc.
        The parantheses are mandatory for each gate, except for the wire. 
        The wire name can be omitted, so that "a" can be used instead of "**wire**( a )".
        The spaces are optional in any position of this string.


    The supergates are generated exhaustively from all gate combinations that
    have the max delay lower than the delay given by the user, or until the specified time
    limit is reached.

    The supergates are stored in supergate classes by their functionality. 
    Among the gates with the equivalent functionaly only those are dropped, which are
    dominated by at least one other gate in the class in terms of both delay and area.
    For the definition of gate dominance see pliGenCheckDominance().
*/


////////////////////////////////////////////////////////////////////////
///                        DECLARATIONS                              ///
////////////////////////////////////////////////////////////////////////

////////////////////////////////////////////////////////////////////////
Alan Mishchenko committed
59
///                     FUNCTION DEFINITIONS                         ///
Alan Mishchenko committed
60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79
////////////////////////////////////////////////////////////////////////

/**Function*************************************************************

  Synopsis    []

  Description []
               
  SideEffects []

  SeeAlso     []

***********************************************************************/


////////////////////////////////////////////////////////////////////////
///                       END OF FILE                                ///
////////////////////////////////////////////////////////////////////////


80 81
ABC_NAMESPACE_IMPL_END