int defiFill::xl(int index) const { if (index < 0 || index >= numRectangles_) { defiError(1, 0, "bad index for Fill xl"); return 0; } return xl_[index]; }
double defiComponent::propNumber(int index) const { if (index < 0 || index >= this->numProps_) { defiError ("bad index for component property"); return 0; } return this->dvalues_[index]; }
int defiComponent::propIsString(int index) const { if (index < 0 || index >= this->numProps_) { defiError ("bad index for component property"); return 0; } return this->dvalues_[index] ? 0 : 1; }
char defiComponent::propType(int index) const { if (index < 0 || index >= this->numProps_) { defiError ("bad index for component property"); return 0; } return this->types_[index]; }
int defiFill::yh(int index) const { if (index < 0 || index >= numRectangles_) { defiError(1, 0, "bad index for Fill yh"); return 0; } return yh_[index]; }
int defiGroup::propIsString(int index) const { char msg[160]; if (index < 0 || index >= numProps_) { sprintf (msg, "ERROR (LEFPARS-6050): The index number %d given for the GROUP PROPERTY is invalid.\nValid index is from 0 to %d", index, numProps_); defiError (0, 6050, msg); return 0; } return propDValues_[index] ? 0 : 1; }
int defiRegion::propIsString(int index) const { char msg[160]; if (index < 0 || index >= numProps_) { sprintf (msg, "ERROR (DEFPARS-6130): The index number %d specified for the REGION PROPERTY is invalide.\nValid index number is from 0 to %d. Specify a valid index number and then try again.", index, numProps_); defiError (0, 6130, msg); return 0; } return propDValues_[index] ? 0 : 1; }
int defiRow::propIsString(int index) const { char msg[160]; if (index < 0 || index >= this->numProps_) { sprintf (msg, "ERROR (DEFPARS-6140): The index number %d given for the VIA LAYER RECTANGLE is invalid.\nValid index is from 0 to %d", index, this->numProps_); defiError (msg); return 0; } return this->propDValues_[index] ? 0 : 1; }
int defiRegion::yh(int index) const { char msg[160]; if (index < 0 || index >= this->numRectangles_) { sprintf (msg, "ERROR (DEFPARS-6131): The index number %d given for the REGION RECTANGLE is invalid.\nValid index is from 0 to %d", index, this->numRectangles_); defiError (msg); return 0; } return this->yh_[index]; }
int defiRegion::propIsString(int index) const { char msg[160]; if (index < 0 || index >= this->numProps_) { sprintf (msg, "ERROR (DEFPARS-6130): The index number %d given for the REGION PROPERTY is invalid.\nValid index is from 0 to %d", index, this->numProps_); defiError (msg); return 0; } return this->propDValues_[index] ? 0 : 1; }
int defiNonDefault::propIsString(int index) const { char msg[160]; if (index < 0 || index >= numProps_) { sprintf (msg, "ERROR (DEFPARS-6091): The index number %d specified for the NONDEFAULT PROPERTY is invalid.\nValid index is from 0 to %d. Specify a valid index number and then try again.", index, numProps_); defiError (0, 6091, msg); return 0; } return dvalues_[index] ? 0 : 1; }
int defiNonDefault::numCuts(int index) const { char msg[160]; if (index < 0 || index >= numMinCuts_) { sprintf (msg, "ERROR (DEFPARS-6090): The index number %d specified for the NONDEFAULT LAYER is invalid.\nValid index is from 0 to %d. Specify a valid index number and then try again.", index, numLayers_); defiError (0, 6090, msg); return 0; } return numCuts_[index]; }
int defiRegion::yh(int index) const { char msg[160]; if (index < 0 || index >= numRectangles_) { sprintf (msg, "ERROR (DEFPARS-6131): The index number %d specified for the REGION RECTANGLE is invalide.\nValid index number is from 0 to %d. Specify a valid index number and then try again.", index, numRectangles_); defiError (0, 6131, msg); return 0; } return yh_[index]; }
void defiComponent::setForeignName(const char* name) { int len; if (this->defiComponent::hasForeignName()) defiError( "Multiple define of '+ FOREIGN' in COMPONENT is not supported.\n"); if ((len = strlen(name)+1) > this->foreignNameSize_) this->defiComponent::bumpForeignName(len); strcpy(this->foreignName_, DEFCASE(name)); this->hasForeignName_ = 1; }
void defiPartition::addTurnOff(const char* setup, const char* hold) { if (*setup == ' ') { this->setup_ = *setup; } else if (*setup == 'R') { this->setup_ = *setup; } else if (*setup == 'F') { this->setup_ = *setup; } else { defiError("ERROR (DEFPARS-6100): Invalide PARTITION SETUP value given.\nValid value for SETUP is 'R' or 'F'."); } if (*hold == ' ') { this->hold_ = *hold; } else if (*hold == 'R') { this->hold_ = *hold; } else if (*hold == 'F') { this->hold_ = *hold; } else { defiError("ERROR (DEFPARS-6101): Invalide PARTITION HOLD value given.\nValid value for SETUP is 'R' or 'F'."); } }
void defiIOTiming::setSlewRate(const char* riseFall, double min, double max) { if (*riseFall == 'R') { hasSlewRise_ = 1; slewRiseMin_ = min; slewRiseMax_ = max; } else if (*riseFall == 'F') { hasSlewFall_ = 1; slewFallMin_ = min; slewFallMax_ = max; } else { defiError(0, 6060, "ERROR (DEFPARS-6060): Invalid value specified for IOTIMING rise/fall. The valid value for rise is 'R' and for fall is 'F'. Specify a valid value and then try again."); } }
void defiFPC::setName(const char* name, const char* direction) { int len = strlen(name) + 1; this->defiFPC::clear(); if (len > this->nameLength_) { if (this->name_) defFree(this->name_); this->nameLength_ = len; this->name_ = (char*)defMalloc(len); } strcpy(this->name_, DEFCASE(name)); if (*direction == 'H') this->direction_ = 'H'; else if (*direction == 'V') this->direction_ = 'V'; else defiError("ERROR (DEFPARS-6030): The direction given with FPC name is invalid.\nValid direction is either H or V"); }
void defiFPC::setName(const char* name, const char* direction) { int len = strlen(name) + 1; clear(); if (len > nameLength_) { if (name_) defFree(name_); nameLength_ = len; name_ = (char*)defMalloc(len); } strcpy(name_, DEFCASE(name)); if (*direction == 'H') direction_ = 'H'; else if (*direction == 'V') direction_ = 'V'; else defiError(0, 6030, "ERROR (DEFPARS-6030): Invalid direction specified with FPC name. The valid direction is either 'H' or 'V'. Specify a valid value and then try again."); }
void defiTimingDisable::print(FILE* f) const { if (this->defiTimingDisable::hasMacroFromTo()) { fprintf(f, "TimingDisable macro '%s' thru '%s'\n", this->fromInst_, this->fromPin_); } else if (this->defiTimingDisable::hasMacroThru()) { fprintf(f, "TimingDisable macro '%s' from '%s' to '%s'\n", this->fromInst_, this->fromPin_, this->toPin_); } else if (this->defiTimingDisable::hasFromTo()) { fprintf(f, "TimingDisable from '%s' '%s' to '%s' '%s'\n", this->fromInst_, this->fromPin_, this->toInst_, this->toPin_); } else if (this->defiTimingDisable::hasThru()) { fprintf(f, "TimingDisable thru '%s' '%s'\n", this->fromInst_, this->fromPin_); } else { defiError("ERROR (DEFPARS-6170): Invalid TimingDisable Type"); } }