+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
22 #include "hurricane/Name.h"
+
23 #include "hurricane/Property.h"
+
24 #include "hurricane/Slot.h"
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
39 using Hurricane::_TName;
+
+
41 using Hurricane::Record;
+
+
+
+
+
+
+
+
49 extern const char* MissingStateProperty;
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
68 void saveToFile (
const string& path,
Library* library );
+
+
70 string _getPrint ()
const;
+
71 inline string _getTypeName ()
const;
+
72 string _getString ()
const;
+
73 Record* _getRecord ()
const;
+
+
+
+
+
+
+
80 enum Flags { TerminalNetlist = 1 << 0
+
+
+
+
+
+
+
+
+
89 , VstUseConcat = 1 << 9
+
+
+
+
+
+
+
96 inline bool isTerminalNetlist ()
const;
+
97 inline bool isFeed ()
const;
+
98 inline bool isPad ()
const;
+
99 inline bool isGds ()
const;
+
+
+
+
103 inline bool isInMemory ()
const;
+
+
105 inline unsigned int getFlags (
unsigned int mask=(
unsigned int)-1 )
const;
+
106 inline bool setFlags (
unsigned int mask,
bool value );
+
107 inline bool setTerminalNetlist (
bool value );
+
108 inline bool setFeed (
bool value );
+
109 inline bool setPad (
bool value );
+
110 inline bool setGds (
bool value );
+
+
+
+
114 inline bool setInMemory (
bool value );
+
+
+
+
118 inline unsigned int getDepth ()
const;
+
+
+
+
+
123 inline void setDepth (
unsigned int depth );
+
+
125 void toJson ( JsonWriter* w )
const;
+
126 inline string _getTypeName ()
const;
+
127 string _getString ()
const;
+
128 Record* _getRecord ()
const;
+
+
+
+
+
+
+
+
+
+
+
+
+
141 static void initialize ();
+
142 JsonState (
unsigned long flags );
+
143 virtual string getTypeName ()
const;
+
144 virtual JsonState* clone (
unsigned long )
const;
+
+
+
+
+
+
+
151 map<Name,State*> _states;
+
+
+
+
155 static bool readLine (
const string& s,
string& name, State* state );
+
+
+
+
+
+
+
+
163 class CatalogProperty :
public PrivateProperty {
+
+
+
+
+
168 static CatalogProperty* create ( Catalog::State* state );
+
169 static Name getPropertyName ();
+
170 virtual Name getName ()
const;
+
171 inline Catalog::State* getState ()
const;
+
172 inline void setState ( Catalog::State* state );
+
173 virtual void onReleasedBy ( DBo* owner );
+
174 virtual bool hasJson ()
const;
+
175 virtual void toJson ( JsonWriter* w,
const DBo* )
const;
+
176 virtual string _getTypeName ()
const;
+
177 virtual string _getString ()
const;
+
178 virtual Record* _getRecord ()
const;
+
+
+
+
182 Catalog::State* _state;
+
+
+
+
186 inline CatalogProperty ( Catalog::State* state );
+
+
+
+
+
+
+
193 class JsonCatalogProperty :
public JsonObject {
+
+
195 static void initialize ();
+
196 JsonCatalogProperty (
unsigned long );
+
197 virtual string getTypeName ()
const;
+
198 virtual JsonCatalogProperty* clone (
unsigned long )
const;
+
199 virtual void toData ( JsonStack& );
+
+
+
+
+
+
+
+
207 inline bool Catalog::State::isTerminalNetlist ()
const {
return (_flags&TerminalNetlist)?1:0; }
+
+
+
+
+
+
+
214 inline bool Catalog::State::isInMemory ()
const {
return (_flags&InMemory )?1:0; }
+
+
+
217 if (value) { _flags |= mask; }
+
218 else { _flags &= ~mask; }
+
219 return ((_flags&mask) ?
true :
false);
+
+
221 inline bool Catalog::State::setTerminalNetlist (
bool value ) {
return setFlags(TerminalNetlist,value); }
+
+
+
+
+
+
+
228 inline bool Catalog::State::setInMemory (
bool value ) {
return setFlags(InMemory ,value); }
+
+
230 inline void Catalog::State::setDepth (
unsigned int depth ) { _depth = depth; }
+
+
+
+
234 inline string Catalog::State::_getTypeName ()
const {
return _TName(
"Catalog::State"); }
+
+
+
237 inline map<Name,Catalog::State*>*
+
+
239 inline string Catalog::_getTypeName ()
const {
return _TName(
"Catalog"); }
+
+
241 inline CatalogProperty::CatalogProperty ( Catalog::State* state ) : PrivateProperty(), _state(state) {}
+
242 inline Catalog::State* CatalogProperty::getState ()
const {
return _state; }
+
243 inline void CatalogProperty::setState ( Catalog::State* state ) { _state = state; }
+
+
+
+
+
+
+
+
+
+
+
254 static inline bool isTerminalNetlist (
const Cell* );
+
+
256 static inline bool isPad (
const Cell* );
+
257 static inline bool isGds (
const Cell* );
+
+
+
+
+
262 static inline unsigned int getFlags (
const Cell*,
unsigned int mask=(
unsigned int)-1 );
+
263 static inline bool setFlags (
const Cell*,
unsigned int mask,
bool value );
+
264 static inline bool setTerminalNetlist (
const Cell*,
bool value );
+
265 static inline bool setFeed (
const Cell*,
bool value );
+
266 static inline bool setPad (
const Cell*,
bool value );
+
267 static inline bool setGds (
const Cell*,
bool value );
+
+
+
+
+
+
+
+
+
276 static inline void setDepth (
const Cell*,
unsigned int depth );
+
+
278 static const Cell* _owner;
+
+
+
+
+
283 inline bool CatalogExtension::isTerminalNetlist (
const Cell* cell )
+
+
+
286 return (state == NULL) ?
false : state->isTerminalNetlist();
+
+
+
+
+
+
+
293 return (state == NULL) ?
false : state->
isFeed();
+
+
+
+
+
+
+
300 return (state == NULL) ?
false : state->
isGds();
+
+
+
+
+
+
+
307 return (state == NULL) ?
false : state->
isPad();
+
+
+
+
+
+
+
314 return (state == NULL) ?
false : state->
isDelete();
+
+
+
+
+
+
+
321 return (state == NULL) ?
false : state->
isPhysical();
+
+
+
+
+
+
+
328 return (state == NULL) ?
false : state->
isLogical();
+
+
+
+
+
+
+
335 return (state == NULL) ? 0 : state->
getFlags();
+
+
+
+
+
+
+
342 return (state == NULL) ?
false : state->
setFlags(mask,value);
+
+
+
+
346 inline bool CatalogExtension::setTerminalNetlist (
const Cell* cell,
bool value )
+
+
+
349 return (state == NULL) ?
false : state->setTerminalNetlist(value);
+
+
+
+
+
+
+
356 return (state == NULL) ?
false : state->
setFeed(value);
+
+
+
+
+
+
+
363 return (state == NULL) ?
false : state->
setPad(value);
+
+
+
+
+
+
+
370 return (state == NULL) ?
false : state->
setGds(value);
+
+
+
+
+
+
+
377 return (state == NULL) ?
false : state->
setDelete(value);
+
+
+
+
+
+
+
384 return (state == NULL) ?
false : state->
setPhysical(value);
+
+
+
+
+
+
+
391 return (state == NULL) ?
false : state->
setLogical(value);
+
+
+
+
+
+
+
398 return (state == NULL) ? NULL : state->
getLibrary();
+
+
+
+
+
+
+
405 return (state == NULL) ? 0 : state->
getDepth();
+
+
+
+
+
+
+
412 return (state == NULL) ? NULL : state->
setLibrary(library);
+
+
+
+
416 inline void CatalogExtension::setDepth (
const Cell* cell,
unsigned int depth )
+
+
+
419 if ( state == NULL ) state->setDepth(depth);
+
+
+
+
+
+
+
+
+
+
+
+
+
+
433 inline std::string getPrint (
const CRL::Catalog &CATAL ) {
return CATAL._getPrint(); }
+
+
+
+
+
+
439 #endif // CRL_CATALOG_H
-
static bool setPad(const Cell *, bool value)
Definition: Catalog.h:359
+
static bool setPad(const Cell *, bool value)
Definition: Catalog.h:360
-
An entry to store the Cell State in the Catalog.
Definition: Catalog.h:76
-
-
static bool setLogical(const Cell *, bool value)
Definition: Catalog.h:387
-
+
An entry to store the Cell State in the Catalog.
Definition: Catalog.h:77
+
+
static bool setLogical(const Cell *, bool value)
Definition: Catalog.h:388
-
bool setPad(bool value)
Definition: Catalog.h:222
-
static bool isGds(const Cell *)
Definition: Catalog.h:296
-
bool setGds(bool value)
Definition: Catalog.h:223
+
bool setPad(bool value)
Definition: Catalog.h:223
+
Cell * getCell() const
Definition: Catalog.h:231
+
static bool isGds(const Cell *)
Definition: Catalog.h:297
+
bool setGds(bool value)
Definition: Catalog.h:224
Cell * setCell(Cell *cell)
-
Catalog()
Definition: Catalog.h:235
-
static bool isDelete(const Cell *)
Definition: Catalog.h:310
-
static bool isLogical(const Cell *)
Definition: Catalog.h:324
-
static bool setFeed(const Cell *, bool value)
Definition: Catalog.h:352
-
static bool setFlattenLeaf(const Cell *, bool value)
Definition: Catalog.h:345
+
Catalog()
Definition: Catalog.h:236
+
static bool isDelete(const Cell *)
Definition: Catalog.h:311
+
bool isFeed() const
Definition: Catalog.h:208
+
static bool isLogical(const Cell *)
Definition: Catalog.h:325
+
static bool setFeed(const Cell *, bool value)
Definition: Catalog.h:353
-
bool isLogical() const
Definition: Catalog.h:212
void merge(const State &other)
+
bool isPad() const
Definition: Catalog.h:209
+
unsigned int getDepth() const
Definition: Catalog.h:233
+
bool isDelete() const
Definition: Catalog.h:211
+
bool isLogical() const
Definition: Catalog.h:213
-
bool isPhysical() const
Definition: Catalog.h:211
-
bool isDelete() const
Definition: Catalog.h:210
-
static unsigned int getFlags(const Cell *, unsigned int mask=(unsigned int) -1)
Definition: Catalog.h:331
-
Library * setLibrary(Library *library)
Definition: Catalog.h:228
-
-
-
bool setLogical(bool value)
Definition: Catalog.h:226
-
static bool setGds(const Cell *, bool value)
Definition: Catalog.h:366
-
+
Library * setLibrary(Library *library)
Definition: Catalog.h:229
+
+
+
bool setLogical(bool value)
Definition: Catalog.h:227
+
static bool setGds(const Cell *, bool value)
Definition: Catalog.h:367
+
bool deleteState(const Name &name)
void mergeState(const Name &name, const State &other)
-
bool setFeed(bool value)
Definition: Catalog.h:221
-
Library * getLibrary() const
Definition: Catalog.h:231
+
bool setFeed(bool value)
Definition: Catalog.h:222
-
-
Cell * getCell() const
Definition: Catalog.h:230
-
bool setFlags(unsigned int mask, bool value)
Definition: Catalog.h:215
+
+
bool setFlags(unsigned int mask, bool value)
Definition: Catalog.h:216
-
map< Name, State * > * getStates()
Definition: Catalog.h:237
-
static bool isFeed(const Cell *)
Definition: Catalog.h:289
-
-
static Library * getLibrary(const Cell *)
Definition: Catalog.h:394
+
map< Name, State * > * getStates()
Definition: Catalog.h:238
+
static bool isFeed(const Cell *)
Definition: Catalog.h:290
+
+
bool isGds() const
Definition: Catalog.h:210
+
static Library * getLibrary(const Cell *)
Definition: Catalog.h:395
+
static unsigned int getFlags(const Cell *, unsigned int mask=(unsigned int)-1)
Definition: Catalog.h:332
State * getState(const Name &name, bool add=false)
-
State()
Definition: Catalog.h:205
-
bool setFlattenLeaf(bool value)
Definition: Catalog.h:220
-
static bool isPad(const Cell *)
Definition: Catalog.h:303
+
State()
Definition: Catalog.h:206
+
Library * getLibrary() const
Definition: Catalog.h:232
+
static bool isPad(const Cell *)
Definition: Catalog.h:304
bool loadFromFile(const string &path, Library *library)
-
bool isFeed() const
Definition: Catalog.h:207
-
bool setDelete(bool value)
Definition: Catalog.h:224
-
static Library * setLibrary(const Cell *, Library *library)
Definition: Catalog.h:408
-
static bool setPhysical(const Cell *, bool value)
Definition: Catalog.h:380
-
-
-
bool isPad() const
Definition: Catalog.h:208
-
bool isFlattenLeaf() const
Definition: Catalog.h:206
+
bool setDelete(bool value)
Definition: Catalog.h:225
+
static Library * setLibrary(const Cell *, Library *library)
Definition: Catalog.h:409
+
static bool setPhysical(const Cell *, bool value)
Definition: Catalog.h:381
+
+
unsigned int getFlags(unsigned int mask=(unsigned int)-1) const
Definition: Catalog.h:215
A Registry to store Alliance Cell metadatas.
Definition: Catalog.h:56
-
-
static bool setDelete(const Cell *, bool value)
Definition: Catalog.h:373
-
Wrapper to access a Hurricane::Cell Catalog::State.
Definition: Catalog.h:249
-
bool setPhysical(bool value)
Definition: Catalog.h:225
-
bool isGds() const
Definition: Catalog.h:209
-
static bool isPhysical(const Cell *)
Definition: Catalog.h:317
-
static unsigned int getDepth(const Cell *)
Definition: Catalog.h:401
-
Flags
Definition: Catalog.h:79
-
static bool isFlattenLeaf(const Cell *)
Definition: Catalog.h:282
-
The namespace of Coriolis Core.
Definition: Environment.h:26
-
unsigned int getDepth() const
Definition: Catalog.h:232
-
static bool setFlags(const Cell *, unsigned int mask, bool value)
Definition: Catalog.h:338
+
bool isPhysical() const
Definition: Catalog.h:212
+
+
static bool setDelete(const Cell *, bool value)
Definition: Catalog.h:374
+
Wrapper to access a Hurricane::Cell Catalog::State.
Definition: Catalog.h:250
+
bool setPhysical(bool value)
Definition: Catalog.h:226
+
static bool isPhysical(const Cell *)
Definition: Catalog.h:318
+
static unsigned int getDepth(const Cell *)
Definition: Catalog.h:402
+
Flags
Definition: Catalog.h:80
+
static bool setFlags(const Cell *, unsigned int mask, bool value)
Definition: Catalog.h:339