75 for (
int i=1; i <
sz; i += 2) {
144 name = string_cache (nm);
162 listitem_t *
matList () {
if (
mats) {
return list_first (
mats); }
else {
return NULL; } }
193 name = string_cache (nm);
Used to hold rules for diffusion.
Definition: tech.h:595
int getWdiffToDiffSpacing()
Definition: tech.h:657
int diffspacing
Definition: tech.h:671
int * spacing
Definition: tech.h:672
Contact * getUpC()
Definition: tech.h:668
int getPolySpacing()
Definition: tech.h:631
int getViaFet()
Definition: tech.h:662
int getNotchSpacing()
Definition: tech.h:637
DiffMat(char *s)
Definition: tech.h:600
int getOppDiffSpacing(int flavor)
Definition: tech.h:644
int * oppspacing
Definition: tech.h:673
int via_edge
Definition: tech.h:677
int notchspacing
Definition: tech.h:675
int polyspacing
Definition: tech.h:674
int via_fet
Definition: tech.h:678
int getSpacing(int flavor)
Definition: tech.h:651
RangeTable * overhang
Definition: tech.h:676
int effOverhang(int w, int hasvia=0)
Used for transistors.
Definition: tech.h:513
int numDummyPoly()
Definition: tech.h:531
FetMat(char *s)
Definition: tech.h:518
int getSpacing(int w)
Definition: tech.h:524
int num_dummy
Definition: tech.h:534
Holds information about a GDS layer. Any Material will have a footprint on a single or multiple GDS l...
Definition: tech.h:125
int getMajor()
Definition: tech.h:167
int getMinor()
Definition: tech.h:172
const char * name
Definition: tech.h:127
int major
Definition: tech.h:129
list_t * mats
Definition: tech.h:132
int minor
Definition: tech.h:129
listitem_t * matList()
Definition: tech.h:162
GDSLayer(char *nm, int maj, int min)
Definition: tech.h:143
Used to hold information about a material. Materials correspond to abstract geometry,...
Definition: tech.h:184
const char * name
drawing name in magic
Definition: tech.h:252
list_t * gds
GDS layer list.
Definition: tech.h:266
Contact * viaup
contact/via to material that is above
Definition: tech.h:263
Contact * viadn
contact/via to material that is below
Definition: tech.h:264
virtual const char * getName()
Definition: tech.h:211
int minWidth()
Definition: tech.h:244
void addGDS(char **table, int sz)
void addGDSBloat(int *table, int sz)
Material(const char *nm=NULL)
Definition: tech.h:191
int minarea
Definition: tech.h:257
int minArea()
Definition: tech.h:239
RangeTable * width
min width range table (indexed by length)
Definition: tech.h:254
RangeTable * spacing_w
min spacing range table (indexed by width)
Definition: tech.h:255
int maxarea
Definition: tech.h:260
int minSpacing()
Definition: tech.h:249
int * gds_bloat
GDS bloat table.
Definition: tech.h:267
This is for polysilicon, which is a special routing material with more issues.
Definition: tech.h:456
RangeTable * notch_overhang
overhang for a notch
Definition: tech.h:501
int getViaNSpacing(int type)
Definition: tech.h:480
RangeTable * overhang
poly overhang beyond diffusion
Definition: tech.h:500
int * via_p
spacing of poly via to p-type diff
Definition: tech.h:503
Contact * getUpC()
Definition: tech.h:474
int * via_n
spacing of poly via to n-type diff
Definition: tech.h:502
int getViaPSpacing(int type)
Definition: tech.h:491
PolyMat(char *s)
Definition: tech.h:458
int getNotchOverhang(int w)
Definition: tech.h:469
int getOverhang(int w)
Definition: tech.h:464
A range table is a table of values that are indexed by ranges. It can be viewed as a map from contigu...
Definition: tech.h:53
int sz
Definition: tech.h:108
int minval
minimum value of range
Definition: tech.h:110
RangeTable(int _s, int *_tab)
Definition: tech.h:60
int min()
Definition: tech.h:69
int * table
range table contents
Definition: tech.h:109
int range_threshold(int idx)
Used to hold routing materials with extra routing design rules.
Definition: tech.h:323
int numInfluence()
Definition: tech.h:436
int getRunLength(int w)
Definition: tech.h:403
int getPitch()
Definition: tech.h:350
double getAntenna()
Definition: tech.h:426
int getEolWithin()
Definition: tech.h:421
int complexSpacingMode()
Definition: tech.h:393
void setLEFName(char *s)
Definition: tech.h:345
RangeTable * getRunTable(int w)
Definition: tech.h:408
RoutingMat(char *s)
Definition: tech.h:329
Contact * getUpC()
Definition: tech.h:370
double getAntennaDiff()
Definition: tech.h:431
int * getInfluence()
Definition: tech.h:441
int getEol()
Definition: tech.h:416
int getSpacing(int w)
Definition: tech.h:376
RoutingRules r
Definition: tech.h:444
const char * getLEFName()
Definition: tech.h:361
int numRunLength()
Definition: tech.h:398
int getLEFWidth()
Definition: tech.h:355
int isComplexSpacing()
Definition: tech.h:382
This holds all the technology design rules (or at least the approximate ones) used by the ACT library...
Definition: tech.h:820
int num_devs
Definition: tech.h:840
struct Hashtable * gdsH
Definition: tech.h:851
const char * name
Definition: tech.h:825
int dummy_poly
Definition: tech.h:833
int nmetals
Definition: tech.h:831
int welltap_adjust
Definition: tech.h:835
DiffMat ** welldiff[2]
Definition: tech.h:843
const char * date
Definition: tech.h:826
double scale
Definition: tech.h:828
DiffMat ** diff[2]
Definition: tech.h:841
int getMaxSameDiffSpacing()
FetMat ** fet[2]
Definition: tech.h:844
PolyMat * poly
Definition: tech.h:847
int getMaxWellDiffSpacing()
Material ** sel[2]
Definition: tech.h:845
RoutingMat ** metal
Definition: tech.h:849
GDSLayer * GDSlookup(const char *name)
static Technology * T
Definition: tech.h:822
WellMat ** well[2]
Definition: tech.h:842
static void Init()
make sure that layout.conf has been loaded!
Used for wells.
Definition: tech.h:545
int getOverhangWelldiff()
Definition: tech.h:560
int maxPlugDist()
Definition: tech.h:577
int getOverhang()
Definition: tech.h:555
int plug_dist
max distance to plug
Definition: tech.h:584
int * oppspacing
to other wells of a different type
Definition: tech.h:581
int minSpacing(int dev)
Definition: tech.h:566
int oppSpacing(int dev)
Definition: tech.h:572
int overhang
overhang from diffusion
Definition: tech.h:582
int * spacing
to other wells of the same type
Definition: tech.h:580
int overhang_welldiff
overhang from well diffusion
Definition: tech.h:583
WellMat(char *s)
Definition: tech.h:550
Holds design rules for all routing materials (metals, poly)
Definition: tech.h:278
int endofline_width
width for end of line extension
Definition: tech.h:280
int * parallelrunlength
parallel run length options
Definition: tech.h:307
RangeTable ** spacing_aux
Definition: tech.h:309
double antenna_ratio
antenna ratios for this layer
Definition: tech.h:283
int pitch
Definition: tech.h:286
int inf_sz
Definition: tech.h:313
int * influence
spacing influence table
Definition: tech.h:312
unsigned int routey
can be used for y routing
Definition: tech.h:300
const char * lef_name
lef/def name for this material
Definition: tech.h:297
unsigned int routex
can be used for x routing
Definition: tech.h:299
int endofline
end of line extension rule
Definition: tech.h:279
int runlength_mode
0 = parallelrunlength, 1 = twowidths
Definition: tech.h:302
int minjog
minumum turn distance on a jog
Definition: tech.h:281
double antenna_diff_ratio
antenna diffusion ratio
Definition: tech.h:284
int runlength
Definition: tech.h:304
int lef_width
Definition: tech.h:290