Limbo 3.5.4
Loading...
Searching...
No Matches
LefParser::LefDataBase Class Reference

Base class for lef database. Only pure virtual functions are defined.
User needs to inheritate this class and derive a custom database type with all callback functions defined. More...

#include <LefDataBase.h>

Inheritance diagram for LefParser::LefDataBase:
LefDataBase

Public Member Functions

 LefDataBase ()
 constructor
double current_version () const
void current_version (double cv)
 set current version
virtual void lef_version_cbk (string const &v)
 set LEF version
virtual void lef_version_cbk (double v)
 set LEF version
virtual void lef_dividerchar_cbk (string const &v)
 set divider characters
virtual void lef_casesensitive_cbk (int v)
 set case sensitive flag
virtual void lef_nowireextension_cbk (string const &v)
 set no wire extension flag
virtual void lef_manufacturing_cbk (double v)
 set manufacturing entry
virtual void lef_useminspacing_cbk (lefiUseMinSpacing const &v)
 set use min space
virtual void lef_clearancemeasure_cbk (string const &v)
 set clearance measure
virtual void lef_units_cbk (lefiUnits const &v)
 set unit
virtual void lef_busbitchars_cbk (string const &v)
 set bus bit characters
virtual void lef_layer_cbk (lefiLayer const &v)
 add layer
virtual void lef_maxstackvia_cbk (lefiMaxStackVia const &v)
 max stack via
virtual void lef_via_cbk (lefiVia const &v)
 add via
virtual void lef_viarule_cbk (lefiViaRule const &v)
 add via rule
virtual void lef_spacing_cbk (lefiSpacing const &v)
 spacing callback
virtual void lef_irdrop_cbk (lefiIRDrop const &v)
 IR drop callback.
virtual void lef_minfeature_cbk (lefiMinFeature const &v)
 min feature callback
virtual void lef_dielectric_cbk (double v)
 dielectric callback
virtual void lef_nondefault_cbk (lefiNonDefault const &v)
 non-default rule callback
virtual void lef_site_cbk (lefiSite const &v)
 site callback
virtual void lef_macrobegin_cbk (std::string const &v)
 macro begin callback, describe standard cell type
virtual void lef_macro_cbk (lefiMacro const &v)
 macro callback, describe standard cell type
virtual void lef_pin_cbk (lefiPin const &v)
 pin callback, describe pins in a standard cell
virtual void lef_obstruction_cbk (lefiObstruction const &v)
 obstruction callback, describe obstructions in a standard cell
virtual void lef_density_cbk (lefiDensity const &v)
 density callback
virtual void lef_timing_cbk (lefiTiming const &v)
 timing callback
virtual void lef_array_cbk (lefiArray const &v)
 array callback
virtual void lef_prop_cbk (lefiProp const &v)
 property callback
virtual void lef_noisemargin_cbk (lefiNoiseMargin const &v)
 noise margin callback
virtual void lef_edgeratethreshold1_cbk (double v)
 edge rate threshold 1
virtual void lef_edgeratethreshold2_cbk (double v)
 edge rate threshold 2
virtual void lef_edgeratescalefactor_cbk (double v)
 edge rate scale factor
virtual void lef_noisetable_cbk (lefiNoiseTable const &v)
 noise table callback
virtual void lef_correctiontable_cbk (lefiCorrectionTable const &v)
 correction table callback
virtual void lef_inputantenna_cbk (double v)
 input antenna callback
virtual void lef_outputantenna_cbk (double v)
 output antenna callback
virtual void lef_inoutantenna_cbk (double v)
 inout antenna callback
virtual void lef_antennainput_cbk (double v)
 antenna input callback
virtual void lef_antennaoutput_cbk (double v)
 antenna output callback
virtual void lef_antennainout_cbk (double v)
 antenna inout callback
virtual void lef_extension_cbk (string const &v)
 extension callback

Static Public Attributes

static int lefNamesCaseSensitive
static int lefrShiftCase

Protected Attributes

double m_current_version

Detailed Description

Base class for lef database. Only pure virtual functions are defined.
User needs to inheritate this class and derive a custom database type with all callback functions defined.

Although it is true that I can use pure virtual functions for all callbacks, run-time information is better than compile-time errors. Because most LEF files are so simple that we only need several callbacks.
Then user does not need to provide some callbacks.

I leave the callbacks with string parameters in the header for robustness with C++ ABI

Definition at line 125 of file LefDataBase.h.

Member Function Documentation

◆ current_version() [1/2]

double LefParser::LefDataBase::current_version ( ) const
Returns
current version

◆ current_version() [2/2]

void LefParser::LefDataBase::current_version ( double cv)

set current version

Parameters
cvcurrent version

◆ lef_antennainout_cbk()

virtual void LefParser::LefDataBase::lef_antennainout_cbk ( double v)
virtual

antenna inout callback

Parameters
vantenna inout

◆ lef_antennainput_cbk()

virtual void LefParser::LefDataBase::lef_antennainput_cbk ( double v)
virtual

antenna input callback

Parameters
vantenna input

◆ lef_antennaoutput_cbk()

virtual void LefParser::LefDataBase::lef_antennaoutput_cbk ( double v)
virtual

antenna output callback

Parameters
vantenna output

◆ lef_array_cbk()

virtual void LefParser::LefDataBase::lef_array_cbk ( lefiArray const & v)
virtual

array callback

Parameters
van object for array

◆ lef_busbitchars_cbk()

virtual void LefParser::LefDataBase::lef_busbitchars_cbk ( string const & v)
inlinevirtual

set bus bit characters

Parameters
vbut bit characters

Reimplemented in LefDataBase.

Definition at line 186 of file LefDataBase.h.

◆ lef_casesensitive_cbk()

virtual void LefParser::LefDataBase::lef_casesensitive_cbk ( int v)
virtual

set case sensitive flag

Parameters
vcase sensitive flag

◆ lef_clearancemeasure_cbk()

virtual void LefParser::LefDataBase::lef_clearancemeasure_cbk ( string const & v)
inlinevirtual

set clearance measure

Parameters
vclearance measure

Reimplemented in LefDataBase.

Definition at line 176 of file LefDataBase.h.

◆ lef_correctiontable_cbk()

virtual void LefParser::LefDataBase::lef_correctiontable_cbk ( lefiCorrectionTable const & v)
virtual

correction table callback

Parameters
van object for correction table

◆ lef_density_cbk()

virtual void LefParser::LefDataBase::lef_density_cbk ( lefiDensity const & v)
virtual

density callback

Parameters
van object for density

◆ lef_dielectric_cbk()

virtual void LefParser::LefDataBase::lef_dielectric_cbk ( double v)
virtual

dielectric callback

Parameters
van object for dielectric

◆ lef_dividerchar_cbk()

virtual void LefParser::LefDataBase::lef_dividerchar_cbk ( string const & v)
inlinevirtual

set divider characters

Parameters
vdivider characters

Reimplemented in LefDataBase.

Definition at line 153 of file LefDataBase.h.

◆ lef_edgeratescalefactor_cbk()

virtual void LefParser::LefDataBase::lef_edgeratescalefactor_cbk ( double v)
virtual

edge rate scale factor

Parameters
vedge rate scale factor

◆ lef_edgeratethreshold1_cbk()

virtual void LefParser::LefDataBase::lef_edgeratethreshold1_cbk ( double v)
virtual

edge rate threshold 1

Parameters
vedge rate threshold 1

◆ lef_edgeratethreshold2_cbk()

virtual void LefParser::LefDataBase::lef_edgeratethreshold2_cbk ( double v)
virtual

edge rate threshold 2

Parameters
vedge rate threshold 2

◆ lef_extension_cbk()

virtual void LefParser::LefDataBase::lef_extension_cbk ( string const & v)
inlinevirtual

extension callback

Parameters
vextension

Definition at line 287 of file LefDataBase.h.

◆ lef_inoutantenna_cbk()

virtual void LefParser::LefDataBase::lef_inoutantenna_cbk ( double v)
virtual

inout antenna callback

Parameters
vinout antenna

◆ lef_inputantenna_cbk()

virtual void LefParser::LefDataBase::lef_inputantenna_cbk ( double v)
virtual

input antenna callback

Parameters
vinput antenna

◆ lef_irdrop_cbk()

virtual void LefParser::LefDataBase::lef_irdrop_cbk ( lefiIRDrop const & v)
virtual

IR drop callback.

Parameters
van object for IR drop

◆ lef_layer_cbk()

virtual void LefParser::LefDataBase::lef_layer_cbk ( lefiLayer const & v)
virtual

add layer

Parameters
van object for layer

◆ lef_macro_cbk()

virtual void LefParser::LefDataBase::lef_macro_cbk ( lefiMacro const & v)
virtual

macro callback, describe standard cell type

Parameters
van object for macro

◆ lef_macrobegin_cbk()

virtual void LefParser::LefDataBase::lef_macrobegin_cbk ( std::string const & v)
inlinevirtual

macro begin callback, describe standard cell type

Parameters
vname of macro

Reimplemented in LefDataBase.

Definition at line 223 of file LefDataBase.h.

◆ lef_manufacturing_cbk()

virtual void LefParser::LefDataBase::lef_manufacturing_cbk ( double v)
virtual

set manufacturing entry

Parameters
vmanufacturing entry

Reimplemented in LefDataBase.

◆ lef_maxstackvia_cbk()

virtual void LefParser::LefDataBase::lef_maxstackvia_cbk ( lefiMaxStackVia const & v)
virtual

max stack via

Parameters
van object for max stack via

◆ lef_minfeature_cbk()

virtual void LefParser::LefDataBase::lef_minfeature_cbk ( lefiMinFeature const & v)
virtual

min feature callback

Parameters
van object for min feature

◆ lef_noisemargin_cbk()

virtual void LefParser::LefDataBase::lef_noisemargin_cbk ( lefiNoiseMargin const & v)
virtual

noise margin callback

Parameters
van object for noise margin

◆ lef_noisetable_cbk()

virtual void LefParser::LefDataBase::lef_noisetable_cbk ( lefiNoiseTable const & v)
virtual

noise table callback

Parameters
van object for noise table

◆ lef_nondefault_cbk()

virtual void LefParser::LefDataBase::lef_nondefault_cbk ( lefiNonDefault const & v)
virtual

non-default rule callback

Parameters
van object for non-default rule

◆ lef_nowireextension_cbk()

virtual void LefParser::LefDataBase::lef_nowireextension_cbk ( string const & v)
inlinevirtual

set no wire extension flag

Parameters
vno wire extension flag

Definition at line 163 of file LefDataBase.h.

◆ lef_obstruction_cbk()

virtual void LefParser::LefDataBase::lef_obstruction_cbk ( lefiObstruction const & v)
virtual

obstruction callback, describe obstructions in a standard cell

Parameters
van object for obstruction

◆ lef_outputantenna_cbk()

virtual void LefParser::LefDataBase::lef_outputantenna_cbk ( double v)
virtual

output antenna callback

Parameters
voutput antenna

◆ lef_pin_cbk()

virtual void LefParser::LefDataBase::lef_pin_cbk ( lefiPin const & v)
virtual

pin callback, describe pins in a standard cell

Parameters
van object for pin

Reimplemented in LefDataBase.

◆ lef_prop_cbk()

virtual void LefParser::LefDataBase::lef_prop_cbk ( lefiProp const & v)
virtual

property callback

Parameters
van object for property

◆ lef_site_cbk()

virtual void LefParser::LefDataBase::lef_site_cbk ( lefiSite const & v)
virtual

site callback

Parameters
van object for site

◆ lef_spacing_cbk()

virtual void LefParser::LefDataBase::lef_spacing_cbk ( lefiSpacing const & v)
virtual

spacing callback

Parameters
van object for spacing

◆ lef_timing_cbk()

virtual void LefParser::LefDataBase::lef_timing_cbk ( lefiTiming const & v)
virtual

timing callback

Parameters
van object for timing

◆ lef_units_cbk()

virtual void LefParser::LefDataBase::lef_units_cbk ( lefiUnits const & v)
virtual

set unit

Parameters
van object for unit

◆ lef_useminspacing_cbk()

virtual void LefParser::LefDataBase::lef_useminspacing_cbk ( lefiUseMinSpacing const & v)
virtual

set use min space

Parameters
van object for use min space

Reimplemented in LefDataBase.

◆ lef_version_cbk() [1/2]

virtual void LefParser::LefDataBase::lef_version_cbk ( double v)
virtual

set LEF version

Parameters
vfloating point number of LEF version

Reimplemented in LefDataBase.

◆ lef_version_cbk() [2/2]

virtual void LefParser::LefDataBase::lef_version_cbk ( string const & v)
inlinevirtual

set LEF version

Parameters
vstring of LEF version

Reimplemented in LefDataBase.

Definition at line 143 of file LefDataBase.h.

◆ lef_via_cbk()

virtual void LefParser::LefDataBase::lef_via_cbk ( lefiVia const & v)
virtual

add via

Parameters
van object for via

◆ lef_viarule_cbk()

virtual void LefParser::LefDataBase::lef_viarule_cbk ( lefiViaRule const & v)
virtual

add via rule

Parameters
van object for via rule

Member Data Documentation

◆ lefNamesCaseSensitive

int LefParser::LefDataBase::lefNamesCaseSensitive
static

case sensitive or not, mimic global variable lefNamesCaseSensitive

Definition at line 295 of file LefDataBase.h.

◆ lefrShiftCase

int LefParser::LefDataBase::lefrShiftCase
static

shift to upper case or not

Definition at line 296 of file LefDataBase.h.

◆ m_current_version

double LefParser::LefDataBase::m_current_version
protected

default current lef version, use static variable to mimic definitions

Definition at line 293 of file LefDataBase.h.


The documentation for this class was generated from the following file: