# VLSI SAPD Documentation

Presentation | AGDS | CIF | DTR | OPENCHAMS | SPICE | Links & Contact

Public Member Functions | Static Public Member Functions
Techno Class Reference

## Public Member Functions

ARule * | addARule (const char *name, double value, const char *ref, const char *layer1, const char *layer2)
| creates a new ARule and adds it to the Techno object. More...
Rule * | addRule (const char *name, double value, const char *ref, const char *layer1="", const char *layer2="")
| creates a new Rule and adds it the to Techno object. More...
const std::string & | getName () const
| returns the name of the technology.
Rule * | getRule (const char *name, const char *layer1="", const char *layer2="")
| returns the rule uniquely identified by its name and layers. More...
std::vector< Rule * > & | getRules ()
| returns a reference on the std::vector containing all technology's rules. More...
const std::string & | getUnit () const
| returns the unit.
double | getValue (const char *name, const char *layer1="", const char *layer2="")
| returns the value of a rule uniquely identified by its name and layers. More...
const std::string & | getValueAsString (const char *name, const char *layer1="", const char *layer2="")
| returns a string corresponding to the value of a rule uniquely identified by its name and layers. More...
| Techno (const char *name, const char *unit, const char *version)
| creates a new technology More...
bool | writeToFile (const char *filePath)
| writes the database to file. More...

## Static Public Member Functions

static Techno * | readFromFile (const char *filePath)
| creates and returns a Techno object based on a database source file. More...

## Detailed Description

This class contains generic informations such as the name of the technology and the unit used, and the list of all technologic rules.

## Constructor & Destructor Documentation

## ◆ Techno()

Techno | ( | const char * | name,
|  | const char * | unit,
|  | const char * | version
| ) |  |

creates a new technology

Parameters

  name | the name of the technology.
  unit | the unit used for all values.
  version | the technology version/revision.

## Member Function Documentation

## ◆ addARule()

ARule * addARule | ( | const char * | name,
|  | double | value,
|  | const char * | ref,
|  | const char * | layer1,
|  | const char * | layer2
| ) |  |

creates a new ARule and adds it to the Techno object.

Parameters

  name | the name of the rule.
  value | the value of the rule.
  ref | the reference of the rule (helpful to find the rule in design kit).
  layer1 | the first layer.
  layer2 | the second layer.

Returns
  the newly created ARule object.

## ◆ addRule()

Rule * addRule | ( | const char * | name,
|  | double | value,
|  | const char * | ref,
|  | const char * | layer1 = `""`,
|  | const char * | layer2 = `""`
| ) |  |

creates a new Rule and adds it the to Techno object.

Parameters

  name | the name of the rule.
  value | the value of the rule.
  ref | the reference of the rule (helpful to find the rule in design kit).
  layer1 | the first layer. This is an optionnal argument, default value is "".
  layer2 | the second layer. This is an optionnal argument, default value is "".

Returns
  the newly created Rule object.

## ◆ getRule()

Rule * getRule | ( | const char * | name,
|  | const char * | layer1 = `""`,
|  | const char * | layer2 = `""`
| ) |  |

returns the rule uniquely identified by its name and layers.

Parameters

  name | the name of the rule.
  layer1 | the first layer. This is an optionnal argument, default value is "".
  layer2 | the second layer. This is an optionnal argument, default value is "".

Returns
  the rule.

## ◆ getRules()

std::vector< Rule * > & getRules | ( |  | ) |

inline

returns a reference on the std::vector containing all technology's rules.

Note
  this method is not yet available in python

## ◆ getValue()

double getValue | ( | const char * | name,
|  | const char * | layer1 = `""`,
|  | const char * | layer2 = `""`
| ) |  |

returns the value of a rule uniquely identified by its name and layers.

Parameters

  name | the name of the rule.
  layer1 | the first layer. This is an optionnal argument, default value is "".
  layer2 | the second layer. This is an optionnal argument, default value is "".

Returns
  the value of the rule.

## ◆ getValueAsString()

const string & getValueAsString | ( | const char * | name,
|  | const char * | layer1 = `""`,
|  | const char * | layer2 = `""`
| ) |  |

returns a string corresponding to the value of a rule uniquely identified by its name and layers.

Parameters

  name | the name of the rule.
  layer1 | the first layer. This is an optionnal argument, default value is "".
  layer2 | the second layer. This is an optionnal argument, default value is "".

Returns
  the string corresponding to the value of the rule.

Note
  this method is important for python module since to avoid rounding problems it is necessary to use Decimal object which is build based on a string.

## ◆ readFromFile()

Techno * readFromFile | ( | const char * | filename | ) |

static

creates and returns a Techno object based on a database source file.

Parameters

  filename | the source file name.

Returns
  the newly created Techno.

## ◆ writeToFile()

bool writeToFile | ( | const char * | filename | ) |

writes the database to file.

Parameters

  filename | the destination file name.