Define a rule for the technology (API). More...
Inherits Rule.
Public Member Functions | |
bool | isDouble () const |
bool | isDbU () const |
bool | isSymmetric () const |
bool | hasSteps () const |
void | setSymmetric (bool) |
double | getDoubleValue () const |
DbU::Unit | getValue (Hurricane::DbU::Unit length=0, bool hDir=true) const |
void | addValue (double) |
void | addValue (Hurricane::DbU::Unit value, Hurricane::DbU::Unit maxLength) |
void | addValue (Hurricane::DbU::Unit hValue, Hurricane::DbU::Unit vValue, Hurricane::DbU::Unit maxLength) |
Define a rule for the technology (API).
The constructor of Physical rule is not directly accessible, as thoses objects must be created only through the Technology class API
(to be stored in the relevant tables).
PhysicalRule is a "one size fit class". As there will be only a small number of objects created (compare to other kinds) we choose to implement all variant in one class instead of creating a flock of derived classes and all the assorted paraphernalia. As a consequence, not all fields will be used at the same time, they are mutually exclusive.
|
inline |
Tells if the rule describe non-length values (Volts, Ohms, Henry, Celsius, ...).
|
inline |
Tells if the rule uses physical lengths, with multiple steps or not.
|
inline |
Tells if the rule is symmetric.
|
inline |
Tells if the rule has more than one step, that is, is not uniform for all length.
|
inline |
Set the symmetric state of the rule. This used only for rules bound to two layers.
|
inline |
double
value of the rule.
|
inline |
length | The length for which we want the rule's value. |
hDir | In case of non-isotropic rule, which dimension do we want. |
|
inline |
Set the double
value of a rule.
|
inline |
value | The value of the step to add. |
maxLength | The length up to which the rule is valid. passing zero as this argument means always valid. |
Adds a new stepping value to the rule. If the rules never change, give a maxLength
of zero and only call this function once on the rule. The rule is isotropic in X and Y.
This function can be called multiple time on a rule, each call will add a new step. Steps are defined and ordered according to maxLength
.
|
inline |
hvalue | The horizontal value of the step to add. |
vvalue | The vertical value of the step to add. |
maxLength | The length up to which the rule is valid. passing zero as this argument means always valid. |
Adds a new stepping value to the rule. If the rules never change, give a maxLength
of zero and only call this function once on the rule. The rule is not isotropic, it defines a different value for X and Y.
This function can be called multiple time on a rule, each call will add a new step. Steps are defined and ordered according to maxLength
.
Generated by doxygen 1.9.1 on Thu Aug 11 2022 | Return to top of page |
Hurricane VLSI Database | Copyright © 2000-2020 Bull S.A. All rights reserved |