ABC: A System for Sequential Synthesis and Verification
 
Loading...
Searching...
No Matches
ndr.h File Reference
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <assert.h>
#include "abcOper.h"
Include dependency graph for ndr.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  Ndr_Data_t_
 

Macros

#define NDR_ALLOC(type, num)
 
#define Ndr_DesForEachMod(p, Mod)
 ITERATORS ///.
 
#define Ndr_ModForEachObj(p, Mod, Obj)
 
#define Ndr_ObjForEachEntry(p, Obj, Ent)
 
#define Ndr_ModForEachPi(p, Mod, Obj)
 
#define Ndr_ModForEachPo(p, Mod, Obj)
 
#define Ndr_ModForEachNode(p, Mod, Obj)
 
#define Ndr_ModForEachTarget(p, Mod, Obj)
 

Typedefs

typedef struct Ndr_Data_t_ Ndr_Data_t
 BASIC TYPES ///.
 

Enumerations

enum  Ndr_RecordType_t {
  NDR_NONE = 0 , NDR_DESIGN , NDR_MODULE , NDR_OBJECT ,
  NDR_INPUT , NDR_OUTPUT , NDR_OPERTYPE , NDR_NAME ,
  NDR_RANGE , NDR_FUNCTION , NDR_TARGET , NDR_UNKNOWN
}
 INCLUDES ///. More...
 

Macro Definition Documentation

◆ NDR_ALLOC

#define NDR_ALLOC ( type,
num )
Value:
((type *) malloc(sizeof(type) * (size_t)(num)))
type
CUBE COVER and CUBE typedefs ///.
Definition exor.h:90
char * malloc()

Definition at line 136 of file ndr.h.

◆ Ndr_DesForEachMod

#define Ndr_DesForEachMod ( p,
Mod )
Value:
for ( Mod = 1; Mod < Ndr_DataEntry(p, 0); Mod += Ndr_DataSize(p, Mod) ) if (Ndr_DataType(p, Mod) != NDR_MODULE) {} else
Cube * p
Definition exorList.c:222
@ NDR_MODULE
Definition ndr.h:101

ITERATORS ///.

Definition at line 143 of file ndr.h.

143#define Ndr_DesForEachMod( p, Mod ) \
144 for ( Mod = 1; Mod < Ndr_DataEntry(p, 0); Mod += Ndr_DataSize(p, Mod) ) if (Ndr_DataType(p, Mod) != NDR_MODULE) {} else

◆ Ndr_ModForEachNode

#define Ndr_ModForEachNode ( p,
Mod,
Obj )
Value:
Ndr_ModForEachObj( p, Mod, Obj ) if ( Ndr_ObjIsType(p, Obj, ABC_OPER_CI) || Ndr_ObjIsType(p, Obj, ABC_OPER_CO) ) {} else
@ ABC_OPER_CI
Definition abcOper.h:45
@ ABC_OPER_CO
Definition abcOper.h:46
#define Ndr_ModForEachObj(p, Mod, Obj)
Definition ndr.h:147

Definition at line 163 of file ndr.h.

163#define Ndr_ModForEachNode( p, Mod, Obj ) \
164 Ndr_ModForEachObj( p, Mod, Obj ) if ( Ndr_ObjIsType(p, Obj, ABC_OPER_CI) || Ndr_ObjIsType(p, Obj, ABC_OPER_CO) ) {} else

◆ Ndr_ModForEachObj

#define Ndr_ModForEachObj ( p,
Mod,
Obj )
Value:
for ( Obj = Mod + 1; Obj < Ndr_DataEnd(p, Mod); Obj += Ndr_DataSize(p, Obj) ) if (Ndr_DataType(p, Obj) != NDR_OBJECT) {} else
@ NDR_OBJECT
Definition ndr.h:102

Definition at line 147 of file ndr.h.

147#define Ndr_ModForEachObj( p, Mod, Obj ) \
148 for ( Obj = Mod + 1; Obj < Ndr_DataEnd(p, Mod); Obj += Ndr_DataSize(p, Obj) ) if (Ndr_DataType(p, Obj) != NDR_OBJECT) {} else

◆ Ndr_ModForEachPi

#define Ndr_ModForEachPi ( p,
Mod,
Obj )
Value:
Ndr_ModForEachObj( p, Mod, Obj ) if ( !Ndr_ObjIsType(p, Obj, ABC_OPER_CI) ) {} else

Definition at line 155 of file ndr.h.

155#define Ndr_ModForEachPi( p, Mod, Obj ) \
156 Ndr_ModForEachObj( p, Mod, Obj ) if ( !Ndr_ObjIsType(p, Obj, ABC_OPER_CI) ) {} else

◆ Ndr_ModForEachPo

#define Ndr_ModForEachPo ( p,
Mod,
Obj )
Value:
Ndr_ModForEachObj( p, Mod, Obj ) if ( !Ndr_ObjIsType(p, Obj, ABC_OPER_CO) ) {} else

Definition at line 159 of file ndr.h.

159#define Ndr_ModForEachPo( p, Mod, Obj ) \
160 Ndr_ModForEachObj( p, Mod, Obj ) if ( !Ndr_ObjIsType(p, Obj, ABC_OPER_CO) ) {} else

◆ Ndr_ModForEachTarget

#define Ndr_ModForEachTarget ( p,
Mod,
Obj )
Value:
for ( Obj = Mod + 1; Obj < Ndr_DataEnd(p, Mod); Obj += Ndr_DataSize(p, Obj) ) if (Ndr_DataType(p, Obj) != NDR_TARGET) {} else
@ NDR_TARGET
Definition ndr.h:109

Definition at line 167 of file ndr.h.

167#define Ndr_ModForEachTarget( p, Mod, Obj ) \
168 for ( Obj = Mod + 1; Obj < Ndr_DataEnd(p, Mod); Obj += Ndr_DataSize(p, Obj) ) if (Ndr_DataType(p, Obj) != NDR_TARGET) {} else

◆ Ndr_ObjForEachEntry

#define Ndr_ObjForEachEntry ( p,
Obj,
Ent )
Value:
for ( Ent = Obj + 1; Ent < Ndr_DataEnd(p, Obj); Ent += Ndr_DataSize(p, Ent) )

Definition at line 151 of file ndr.h.

151#define Ndr_ObjForEachEntry( p, Obj, Ent ) \
152 for ( Ent = Obj + 1; Ent < Ndr_DataEnd(p, Obj); Ent += Ndr_DataSize(p, Ent) )

Typedef Documentation

◆ Ndr_Data_t

typedef struct Ndr_Data_t_ Ndr_Data_t

BASIC TYPES ///.

Definition at line 119 of file ndr.h.

Enumeration Type Documentation

◆ Ndr_RecordType_t

INCLUDES ///.

CFile****************************************************************

FileName [ndr.h]

SystemName [ABC: Logic synthesis and verification system.]

PackageName [Format for word-level design representation.]

Synopsis [External declarations.]

Author [Alan Mishchenko]

Affiliation [UC Berkeley]

Date [Ver. 1.0. Started - August 22, 2014.]

Revision [

Id
ndr.h,v 1.00 2014/09/12 00:00:00 alanmi Exp

] PARAMETERS ///

Enumerator
NDR_NONE 
NDR_DESIGN 
NDR_MODULE 
NDR_OBJECT 
NDR_INPUT 
NDR_OUTPUT 
NDR_OPERTYPE 
NDR_NAME 
NDR_RANGE 
NDR_FUNCTION 
NDR_TARGET 
NDR_UNKNOWN 

Definition at line 98 of file ndr.h.

98 {
99 NDR_NONE = 0, // 0: unused
100 NDR_DESIGN, // 1: design (or library of modules)
101 NDR_MODULE, // 2: one module
102 NDR_OBJECT, // 3: object
103 NDR_INPUT, // 4: input
104 NDR_OUTPUT, // 5: output
105 NDR_OPERTYPE, // 6: operator type (buffer, shifter, adder, etc)
106 NDR_NAME, // 7: name
107 NDR_RANGE, // 8: bit range
108 NDR_FUNCTION, // 9: specified for some operators (PLAs, etc)
109 NDR_TARGET, // 10: target
110 NDR_UNKNOWN // 11: unknown
Ndr_RecordType_t
INCLUDES ///.
Definition ndr.h:98
@ NDR_RANGE
Definition ndr.h:107
@ NDR_NONE
Definition ndr.h:99
@ NDR_INPUT
Definition ndr.h:103
@ NDR_FUNCTION
Definition ndr.h:108
@ NDR_DESIGN
Definition ndr.h:100
@ NDR_NAME
Definition ndr.h:106
@ NDR_OPERTYPE
Definition ndr.h:105
@ NDR_OUTPUT
Definition ndr.h:104
@ NDR_UNKNOWN
Definition ndr.h:110