1 /**CFile****************************************************************
2 
3   FileName    [cbaTypes.h]
4 
5   SystemName  [ABC: Logic synthesis and verification system.]
6 
7   PackageName [Hierarchical word-level netlist.]
8 
9   Synopsis    [External declarations.]
10 
11   Author      [Alan Mishchenko]
12 
13   Affiliation [UC Berkeley]
14 
15   Date        [Ver. 1.0. Started - July 21, 2015.]
16 
17   Revision    [$Id: cbaTypes.h,v 1.00 2014/11/29 00:00:00 alanmi Exp $]
18 
19 ***********************************************************************/
20 
21 #ifndef ABC__base__cba__cba__types_h
22 #define ABC__base__cba__cba__types_h
23 
24 ////////////////////////////////////////////////////////////////////////
25 ///                          INCLUDES                                ///
26 ////////////////////////////////////////////////////////////////////////
27 
28 ////////////////////////////////////////////////////////////////////////
29 ///                         PARAMETERS                               ///
30 ////////////////////////////////////////////////////////////////////////
31 
32 ABC_NAMESPACE_HEADER_START
33 
34 ////////////////////////////////////////////////////////////////////////
35 ///                         BASIC TYPES                              ///
36 ////////////////////////////////////////////////////////////////////////
37 
38 // network objects
39 typedef enum {
40     CBA_OBJ_NONE = 0,  // 00:  unused
41     CBA_OBJ_PI,        // 01:  input
42     CBA_OBJ_PO,        // 02:  output
43     CBA_OBJ_BOX,       // 03:  box
44 
45     CBA_BOX_CF,        // 04:
46     CBA_BOX_CT,        // 05:
47     CBA_BOX_CX,        // 06:
48     CBA_BOX_CZ,        // 07:
49 
50     CBA_BOX_BUF,       // 08:
51     CBA_BOX_INV,       // 09:
52     CBA_BOX_AND,       // 10:
53     CBA_BOX_NAND,      // 11:
54     CBA_BOX_OR,        // 12:
55     CBA_BOX_NOR,       // 13:
56     CBA_BOX_XOR,       // 14:
57     CBA_BOX_XNOR,      // 15:
58     CBA_BOX_SHARP,     // 16:
59     CBA_BOX_SHARPL,    // 17:
60     CBA_BOX_MUX,       // 18:
61     CBA_BOX_MAJ,       // 19:
62 
63     CBA_BOX_ABC,       // 20:
64     CBA_BOX_BA,        // 21:
65     CBA_BOX_BO,        // 22:
66     CBA_BOX_BX,        // 23:
67     CBA_BOX_BN,        // 24:
68     CBA_BOX_BAO,       // 25:
69     CBA_BOX_BOA,       // 26:
70 
71     CBA_BOX_RAND,      // 27:
72     CBA_BOX_RNAND,     // 28:
73     CBA_BOX_ROR,       // 29:
74     CBA_BOX_RNOR,      // 30:
75     CBA_BOX_RXOR,      // 31:
76     CBA_BOX_RXNOR,     // 32:
77 
78     CBA_BOX_LNOT,      // 33
79     CBA_BOX_LAND,      // 34:
80     CBA_BOX_LNAND,     // 35:
81     CBA_BOX_LOR,       // 36:
82     CBA_BOX_LNOR,      // 37:
83     CBA_BOX_LXOR,      // 38:
84     CBA_BOX_LXNOR,     // 39:
85 
86     CBA_BOX_NMUX,      // 40:
87     CBA_BOX_SEL,       // 41:
88     CBA_BOX_PSEL,      // 42:
89     CBA_BOX_ENC,       // 43:
90     CBA_BOX_PENC,      // 44:
91     CBA_BOX_DEC,       // 45:
92     CBA_BOX_EDEC,      // 46:
93 
94     CBA_BOX_ADD,       // 47:
95     CBA_BOX_SUB,       // 48:
96     CBA_BOX_MUL,       // 49:
97     CBA_BOX_SMUL,      // 50:
98     CBA_BOX_DIV,       // 51:
99     CBA_BOX_MOD,       // 52:
100     CBA_BOX_REM,       // 53:
101     CBA_BOX_POW,       // 54:
102     CBA_BOX_MIN,       // 55:
103     CBA_BOX_SQRT,      // 56:
104     CBA_BOX_ABS,       // 57:
105 
106     CBA_BOX_SLTHAN,    // 58:
107     CBA_BOX_LTHAN,     // 59:
108     CBA_BOX_LETHAN,    // 60:
109     CBA_BOX_METHAN,    // 61:
110     CBA_BOX_MTHAN,     // 62:
111     CBA_BOX_EQU,       // 63:
112     CBA_BOX_NEQU,      // 64:
113 
114     CBA_BOX_SHIL,      // 65:
115     CBA_BOX_SHIR,      // 66:
116     CBA_BOX_SHILA,     // 67:
117     CBA_BOX_SHIRA,     // 68:
118     CBA_BOX_ROTL,      // 69:
119     CBA_BOX_ROTR,      // 70:
120 
121     CBA_BOX_NODE,      // 71:
122     CBA_BOX_LUT,       // 72:
123     CBA_BOX_GATE,      // 73:
124     CBA_BOX_TABLE,     // 74:
125 
126     CBA_BOX_TRI,       // 75:
127     CBA_BOX_RAM,       // 76:
128     CBA_BOX_RAMR,      // 77:
129     CBA_BOX_RAMW,      // 78:
130     CBA_BOX_RAMWC,     // 79:
131     CBA_BOX_RAML,      // 80:
132     CBA_BOX_RAMS,      // 81:
133     CBA_BOX_RAMBOX,    // 82:
134 
135     CBA_BOX_LATCH,     // 83:
136     CBA_BOX_LATCHRS,   // 84:
137     CBA_BOX_DFF,       // 85:
138     CBA_BOX_DFFCPL,    // 86:
139     CBA_BOX_DFFRS,     // 87:
140 
141     CBA_BOX_SLICE,     // 88:
142     CBA_BOX_CONCAT,    // 89:
143 
144     CBA_BOX_LAST       // 90
145 } Cba_ObjType_t;
146 
147 
148 ////////////////////////////////////////////////////////////////////////
149 ///                      MACRO DEFINITIONS                           ///
150 ////////////////////////////////////////////////////////////////////////
151 
152 ////////////////////////////////////////////////////////////////////////
153 ///                          ITERATORS                               ///
154 ////////////////////////////////////////////////////////////////////////
155 
156 ////////////////////////////////////////////////////////////////////////
157 ///                    FUNCTION DECLARATIONS                         ///
158 ////////////////////////////////////////////////////////////////////////
159 
160 
161 ABC_NAMESPACE_HEADER_END
162 
163 
164 #endif
165 
166 ////////////////////////////////////////////////////////////////////////
167 ///                       END OF FILE                                ///
168 ////////////////////////////////////////////////////////////////////////
169 
170