Technology#
The ihp.tech module defines the IHP SG13G2 130nm BiCMOS process technology
for use with GDSFactory. It is exposed at the top level as ihp.tech and
its key objects are re-exported by the PDK:
from ihp import LAYER, LAYER_STACK, LAYER_VIEWS, cross_sections
# or equivalently:
from ihp.tech import LAYER, LAYER_STACK, TECH
Layer Map#
LAYER is an instance of LayerMapIHP, a Pydantic model mapping every
IHP SG13G2 GDS layer to its (layer, datatype) tuple. Access layers as
attributes:
from ihp.tech import LAYER
LAYER.Metal1drawing # (8, 0)
LAYER.TopMetal2drawing # (134, 0)
LAYER.Activdrawing # (1, 0)
- class ihp.tech.LayerMapIHP(value=<no_arg>, names=None, module=None, qualname=None, type=None, start=1, boundary=None)[source]
Bases:
LayerMapAn enumeration.
- ActivOPC: tuple[int, int] = 47
- Activboundary: tuple[int, int] = 48
- Activdrawing: tuple[int, int] = 1
- Activfiller: tuple[int, int] = 49
- ActiviOPC: tuple[int, int] = 50
- Activlabel: tuple[int, int] = 51
- Activlvs: tuple[int, int] = 52
- Activmask: tuple[int, int] = 53
- Activnet: tuple[int, int] = 54
- Activnofill: tuple[int, int] = 55
- Activnoqrc: tuple[int, int] = 56
- Activpin: tuple[int, int] = 57
- AlCuStopdrawing: tuple[int, int] = 58
- AntMetal1drawing: tuple[int, int] = 59
- AntMetal2drawing: tuple[int, int] = 60
- AntVia1drawing: tuple[int, int] = 61
- BackMetal1OPC: tuple[int, int] = 62
- BackMetal1boundary: tuple[int, int] = 63
- BackMetal1diffprb: tuple[int, int] = 64
- BackMetal1drawing: tuple[int, int] = 13
- BackMetal1filler: tuple[int, int] = 65
- BackMetal1iprobe: tuple[int, int] = 66
- BackMetal1label: tuple[int, int] = 67
- BackMetal1mask: tuple[int, int] = 68
- BackMetal1net: tuple[int, int] = 69
- BackMetal1nofill: tuple[int, int] = 70
- BackMetal1noqrc: tuple[int, int] = 71
- BackMetal1pin: tuple[int, int] = 72
- BackMetal1res: tuple[int, int] = 73
- BackMetal1slit: tuple[int, int] = 74
- BackMetal1text: tuple[int, int] = 75
- BackPassivdrawing: tuple[int, int] = 17
- BasPolyboundary: tuple[int, int] = 76
- BasPolydrawing: tuple[int, int] = 77
- BasPolylabel: tuple[int, int] = 78
- BasPolynet: tuple[int, int] = 79
- BasPolypin: tuple[int, int] = 80
- BiWindOPC: tuple[int, int] = 81
- BiWinddrawing: tuple[int, int] = 5
- ColOpendrawing: tuple[int, int] = 46
- ColWinddrawing: tuple[int, int] = 82
- ContOPC: tuple[int, int] = 83
- Contboundary: tuple[int, int] = 84
- Contdrawing: tuple[int, int] = 9
- Contnet: tuple[int, int] = 85
- CtrGatdrawing: tuple[int, int] = 86
- DeepCodrawing: tuple[int, int] = 87
- DeepViadrawing: tuple[int, int] = 88
- DevBondMetdrawing: tuple[int, int] = 89
- DevBondViadrawing: tuple[int, int] = 90
- DevTrenchdrawing: tuple[int, int] = 91
- DigiBnddrawing: tuple[int, int] = 92
- DigiBnddrawing0: tuple[int, int] = 93
- DigiSubdrawing: tuple[int, int] = 94
- EXTBlockdrawing: tuple[int, int] = 2
- EdgeSealboundary: tuple[int, int] = 95
- EdgeSealdrawing: tuple[int, int] = 96
- EmPolydrawing: tuple[int, int] = 97
- EmWiHV3drawing: tuple[int, int] = 98
- EmWiHVdrawing: tuple[int, int] = 99
- EmWind3drawing: tuple[int, int] = 100
- EmWindOPC: tuple[int, int] = 101
- EmWinddrawing: tuple[int, int] = 102
- Exchange0drawing: tuple[int, int] = 103
- Exchange0label: tuple[int, int] = 104
- Exchange0pin: tuple[int, int] = 105
- Exchange0text: tuple[int, int] = 106
- Exchange1drawing: tuple[int, int] = 107
- Exchange1label: tuple[int, int] = 108
- Exchange1pin: tuple[int, int] = 109
- Exchange1text: tuple[int, int] = 110
- Exchange2drawing: tuple[int, int] = 111
- Exchange2label: tuple[int, int] = 112
- Exchange2pin: tuple[int, int] = 113
- Exchange2text: tuple[int, int] = 114
- Exchange3drawing: tuple[int, int] = 115
- Exchange3label: tuple[int, int] = 116
- Exchange3pin: tuple[int, int] = 117
- Exchange3text: tuple[int, int] = 118
- Exchange4drawing: tuple[int, int] = 119
- Exchange4label: tuple[int, int] = 120
- Exchange4pin: tuple[int, int] = 121
- Exchange4text: tuple[int, int] = 122
- FBEdrawing: tuple[int, int] = 123
- FGEtchdrawing: tuple[int, int] = 124
- FGImpdrawing: tuple[int, int] = 125
- FLMdrawing: tuple[int, int] = 126
- GatPolyOPC: tuple[int, int] = 127
- GatPolyboundary: tuple[int, int] = 128
- GatPolydrawing: tuple[int, int] = 8
- GatPolyfiller: tuple[int, int] = 129
- GatPolyiOPC: tuple[int, int] = 130
- GatPolylabel: tuple[int, int] = 131
- GatPolynet: tuple[int, int] = 132
- GatPolynofill: tuple[int, int] = 133
- GatPolynoqrc: tuple[int, int] = 134
- GatPolypin: tuple[int, int] = 135
- GraphBotdrawing: tuple[int, int] = 136
- GraphContdrawing: tuple[int, int] = 137
- GraphGatedrawing: tuple[int, int] = 138
- GraphMet1LOPC: tuple[int, int] = 139
- GraphMet1Ldrawing: tuple[int, int] = 45
- GraphMet1Lfiller: tuple[int, int] = 140
- GraphMet1Lnofill: tuple[int, int] = 141
- GraphMet1Lslit: tuple[int, int] = 142
- GraphMetal1OPC: tuple[int, int] = 143
- GraphMetal1drawing: tuple[int, int] = 144
- GraphMetal1filler: tuple[int, int] = 145
- GraphMetal1nofill: tuple[int, int] = 146
- GraphMetal1slit: tuple[int, int] = 147
- GraphPaddrawing: tuple[int, int] = 148
- GraphPasdrawing: tuple[int, int] = 149
- GraphTopdrawing: tuple[int, int] = 150
- HafniumOxdrawing: tuple[int, int] = 151
- HeatResdrawing: tuple[int, int] = 152
- HeatTransdrawing: tuple[int, int] = 153
- ICdrawing: tuple[int, int] = 154
- INDboundary: tuple[int, int] = 155
- INDdrawing: tuple[int, int] = 20
- INDpin: tuple[int, int] = 156
- INDtext: tuple[int, int] = 157
- INLDPWLdrawing: tuple[int, int] = 158
- IntBondMetdrawing: tuple[int, int] = 159
- IntBondViadrawing: tuple[int, int] = 160
- LBEdrawing: tuple[int, int] = 161
- MEMPADdrawing: tuple[int, int] = 162
- MEMViadrawing: tuple[int, int] = 163
- MIMboundary: tuple[int, int] = 164
- MIMdrawing: tuple[int, int] = 11
- MIMnet: tuple[int, int] = 165
- MemCapdrawing: tuple[int, int] = 166
- Metal1OPC: tuple[int, int] = 167
- Metal1boundary: tuple[int, int] = 168
- Metal1diffprb: tuple[int, int] = 169
- Metal1drawing: tuple[int, int] = 170
- Metal1filler: tuple[int, int] = 171
- Metal1iprobe: tuple[int, int] = 172
- Metal1label: tuple[int, int] = 173
- Metal1mask: tuple[int, int] = 174
- Metal1net: tuple[int, int] = 175
- Metal1nofill: tuple[int, int] = 176
- Metal1noqrc: tuple[int, int] = 177
- Metal1pin: tuple[int, int] = 178
- Metal1res: tuple[int, int] = 179
- Metal1slit: tuple[int, int] = 180
- Metal1text: tuple[int, int] = 181
- Metal2OPC: tuple[int, int] = 182
- Metal2boundary: tuple[int, int] = 183
- Metal2diffprb: tuple[int, int] = 184
- Metal2drawing: tuple[int, int] = 185
- Metal2filler: tuple[int, int] = 186
- Metal2iprobe: tuple[int, int] = 187
- Metal2label: tuple[int, int] = 188
- Metal2mask: tuple[int, int] = 189
- Metal2net: tuple[int, int] = 190
- Metal2nofill: tuple[int, int] = 191
- Metal2noqrc: tuple[int, int] = 192
- Metal2pin: tuple[int, int] = 193
- Metal2res: tuple[int, int] = 194
- Metal2slit: tuple[int, int] = 195
- Metal2text: tuple[int, int] = 196
- Metal3OPC: tuple[int, int] = 197
- Metal3boundary: tuple[int, int] = 198
- Metal3diffprb: tuple[int, int] = 199
- Metal3drawing: tuple[int, int] = 200
- Metal3filler: tuple[int, int] = 201
- Metal3iprobe: tuple[int, int] = 202
- Metal3label: tuple[int, int] = 203
- Metal3mask: tuple[int, int] = 204
- Metal3net: tuple[int, int] = 205
- Metal3nofill: tuple[int, int] = 206
- Metal3noqrc: tuple[int, int] = 207
- Metal3pin: tuple[int, int] = 208
- Metal3res: tuple[int, int] = 209
- Metal3slit: tuple[int, int] = 210
- Metal3text: tuple[int, int] = 211
- Metal4OPC: tuple[int, int] = 212
- Metal4boundary: tuple[int, int] = 213
- Metal4diffprb: tuple[int, int] = 214
- Metal4drawing: tuple[int, int] = 215
- Metal4filler: tuple[int, int] = 216
- Metal4iprobe: tuple[int, int] = 217
- Metal4label: tuple[int, int] = 218
- Metal4mask: tuple[int, int] = 219
- Metal4net: tuple[int, int] = 220
- Metal4nofill: tuple[int, int] = 221
- Metal4noqrc: tuple[int, int] = 222
- Metal4pin: tuple[int, int] = 223
- Metal4res: tuple[int, int] = 224
- Metal4slit: tuple[int, int] = 225
- Metal4text: tuple[int, int] = 226
- Metal5OPC: tuple[int, int] = 227
- Metal5boundary: tuple[int, int] = 228
- Metal5diffprb: tuple[int, int] = 229
- Metal5drawing: tuple[int, int] = 32
- Metal5filler: tuple[int, int] = 230
- Metal5iprobe: tuple[int, int] = 231
- Metal5label: tuple[int, int] = 232
- Metal5mask: tuple[int, int] = 233
- Metal5net: tuple[int, int] = 234
- Metal5nofill: tuple[int, int] = 235
- Metal5noqrc: tuple[int, int] = 236
- Metal5pin: tuple[int, int] = 237
- Metal5res: tuple[int, int] = 238
- Metal5slit: tuple[int, int] = 239
- Metal5text: tuple[int, int] = 240
- NExtHVdrawing: tuple[int, int] = 241
- NExtdrawing: tuple[int, int] = 242
- NLDBdrawing: tuple[int, int] = 243
- NLDDdrawing: tuple[int, int] = 244
- NWellboundary: tuple[int, int] = 245
- NWelldrawing: tuple[int, int] = 246
- NWelllabel: tuple[int, int] = 247
- NWellnet: tuple[int, int] = 248
- NWellpin: tuple[int, int] = 249
- NoDRCdrawing: tuple[int, int] = 250
- NoMetFillerdrawing: tuple[int, int] = 251
- NoRCXdrawing: tuple[int, int] = 252
- NoRCXm1sub: tuple[int, int] = 253
- NoRCXm2m3: tuple[int, int] = 254
- NoRCXm2m4: tuple[int, int] = 255
- NoRCXm2m5: tuple[int, int] = 256
- NoRCXm2sub: tuple[int, int] = 257
- NoRCXm2tm1: tuple[int, int] = 258
- NoRCXm2tm2: tuple[int, int] = 259
- NoRCXm3m4: tuple[int, int] = 260
- NoRCXm3m5: tuple[int, int] = 261
- NoRCXm3sub: tuple[int, int] = 262
- NoRCXm3tm1: tuple[int, int] = 263
- NoRCXm3tm2: tuple[int, int] = 264
- NoRCXm4m5: tuple[int, int] = 265
- NoRCXm4sub: tuple[int, int] = 266
- NoRCXm4tm1: tuple[int, int] = 267
- NoRCXm4tm2: tuple[int, int] = 268
- NoRCXm5sub: tuple[int, int] = 269
- NoRCXm5tm1: tuple[int, int] = 270
- NoRCXm5tm2: tuple[int, int] = 271
- NoRCXtm1sub: tuple[int, int] = 272
- NoRCXtm1tm2: tuple[int, int] = 273
- NoRCXtm2sub: tuple[int, int] = 274
- PExtHVdrawing: tuple[int, int] = 275
- PExtdrawing: tuple[int, int] = 276
- PLDBdrawing: tuple[int, int] = 23
- PLDDdrawing: tuple[int, int] = 277
- PWellblock: tuple[int, int] = 278
- PWellboundary: tuple[int, int] = 279
- PWelldrawing: tuple[int, int] = 29
- PWelllabel: tuple[int, int] = 280
- PWellnet: tuple[int, int] = 281
- PWellpin: tuple[int, int] = 282
- Passivboundary: tuple[int, int] = 283
- Passivdrawing: tuple[int, int] = 284
- Passivlabel: tuple[int, int] = 285
- Passivnet: tuple[int, int] = 286
- Passivpdl: tuple[int, int] = 287
- Passivpillar: tuple[int, int] = 288
- Passivpin: tuple[int, int] = 289
- Passivsbump: tuple[int, int] = 290
- Polimidedrawing: tuple[int, int] = 291
- Polimidelabel: tuple[int, int] = 292
- Polimidenet: tuple[int, int] = 293
- Polimidepin: tuple[int, int] = 294
- PolyResboundary: tuple[int, int] = 295
- PolyResdrawing: tuple[int, int] = 296
- PolyReslabel: tuple[int, int] = 297
- PolyResnet: tuple[int, int] = 298
- PolyRespin: tuple[int, int] = 299
- RESdrawing: tuple[int, int] = 15
- RESlabel: tuple[int, int] = 300
- RFMEMdrawing: tuple[int, int] = 301
- RadHarddrawing: tuple[int, int] = 33
- Recogdiffprb: tuple[int, int] = 302
- Recogdiode: tuple[int, int] = 303
- Recogdrawing: tuple[int, int] = 304
- Recogesd: tuple[int, int] = 305
- Recogiprobe: tuple[int, int] = 306
- Recogmom: tuple[int, int] = 307
- Recogotp: tuple[int, int] = 308
- Recogpcm: tuple[int, int] = 309
- Recogpdiode: tuple[int, int] = 310
- Recogpillar: tuple[int, int] = 311
- Recogpin: tuple[int, int] = 312
- Recogsbump: tuple[int, int] = 313
- Recogtsv: tuple[int, int] = 314
- RedBuLaydrawing: tuple[int, int] = 315
- Redistdrawing: tuple[int, int] = 316
- SMOSdrawing: tuple[int, int] = 317
- SNSArmsdrawing: tuple[int, int] = 318
- SNSBotViadrawing: tuple[int, int] = 319
- SNSCMOSViadrawing: tuple[int, int] = 320
- SNSRingdrawing: tuple[int, int] = 321
- SNSTopViadrawing: tuple[int, int] = 322
- SRAMboundary: tuple[int, int] = 323
- SRAMdrawing: tuple[int, int] = 18
- SRAMlabel: tuple[int, int] = 324
- SalBlockdrawing: tuple[int, int] = 325
- Sensordrawing: tuple[int, int] = 326
- SiGratingdrawing: tuple[int, int] = 327
- SiNGratingdrawing: tuple[int, int] = 328
- SiNWGdrawing: tuple[int, int] = 329
- SiNWGfiller: tuple[int, int] = 330
- SiNWGnofill: tuple[int, int] = 331
- SiWGdrawing: tuple[int, int] = 332
- SiWGfiller: tuple[int, int] = 333
- SiWGnofill: tuple[int, int] = 334
- Substratedrawing: tuple[int, int] = 26
- Substratetext: tuple[int, int] = 335
- TEXTdrawing: tuple[int, int] = 336
- TRANSdrawing: tuple[int, int] = 19
- ThickGateOxdrawing: tuple[int, int] = 27
- ThinFilmResdrawing: tuple[int, int] = 337
- TopMetal1boundary: tuple[int, int] = 338
- TopMetal1diffprb: tuple[int, int] = 339
- TopMetal1drawing: tuple[int, int] = 340
- TopMetal1filler: tuple[int, int] = 341
- TopMetal1iprobe: tuple[int, int] = 342
- TopMetal1label: tuple[int, int] = 343
- TopMetal1mask: tuple[int, int] = 344
- TopMetal1net: tuple[int, int] = 345
- TopMetal1nofill: tuple[int, int] = 346
- TopMetal1noqrc: tuple[int, int] = 347
- TopMetal1pin: tuple[int, int] = 348
- TopMetal1res: tuple[int, int] = 349
- TopMetal1slit: tuple[int, int] = 350
- TopMetal1text: tuple[int, int] = 351
- TopMetal2boundary: tuple[int, int] = 352
- TopMetal2diffprb: tuple[int, int] = 353
- TopMetal2drawing: tuple[int, int] = 354
- TopMetal2filler: tuple[int, int] = 355
- TopMetal2iprobe: tuple[int, int] = 356
- TopMetal2label: tuple[int, int] = 357
- TopMetal2mask: tuple[int, int] = 358
- TopMetal2net: tuple[int, int] = 359
- TopMetal2nofill: tuple[int, int] = 360
- TopMetal2noqrc: tuple[int, int] = 361
- TopMetal2pin: tuple[int, int] = 362
- TopMetal2res: tuple[int, int] = 363
- TopMetal2slit: tuple[int, int] = 364
- TopMetal2text: tuple[int, int] = 365
- TopVia1boundary: tuple[int, int] = 366
- TopVia1drawing: tuple[int, int] = 367
- TopVia1net: tuple[int, int] = 368
- TopVia2boundary: tuple[int, int] = 369
- TopVia2drawing: tuple[int, int] = 370
- TopVia2net: tuple[int, int] = 371
- Varicapdrawing: tuple[int, int] = 38
- Via1boundary: tuple[int, int] = 372
- Via1drawing: tuple[int, int] = 373
- Via1net: tuple[int, int] = 374
- Via2boundary: tuple[int, int] = 375
- Via2drawing: tuple[int, int] = 376
- Via2net: tuple[int, int] = 377
- Via3boundary: tuple[int, int] = 378
- Via3drawing: tuple[int, int] = 24
- Via3net: tuple[int, int] = 379
- Via4boundary: tuple[int, int] = 380
- Via4drawing: tuple[int, int] = 35
- Via4net: tuple[int, int] = 381
- Vmimdrawing: tuple[int, int] = 382
- dfpaddrawing: tuple[int, int] = 22
- dfpadpillar: tuple[int, int] = 383
- dfpadsbump: tuple[int, int] = 384
- isoNWelldrawing: tuple[int, int] = 385
- nBuLayCutdrawing: tuple[int, int] = 386
- nBuLayblock: tuple[int, int] = 387
- nBuLayboundary: tuple[int, int] = 388
- nBuLaydrawing: tuple[int, int] = 389
- nBuLaylabel: tuple[int, int] = 390
- nBuLaynet: tuple[int, int] = 391
- nBuLaypin: tuple[int, int] = 392
- nSDblock: tuple[int, int] = 393
- nSDdrawing: tuple[int, int] = 394
- pSDdrawing: tuple[int, int] = 395
- prBoundaryboundary: tuple[int, int] = 396
- prBoundarydrawing: tuple[int, int] = 397
- prBoundarylabel: tuple[int, int] = 398
Layer Stack#
LAYER_STACK provides a 3D representation of the metal/via stack for
cross-sectional visualization and electromagnetic simulation (e.g. with Palace
or MEEP). Thicknesses follow the IHP SG13 process specifications.
The stack includes: substrate, active silicon, poly gate, Metal1–Metal5, Via1–Via4, TopVia1, TopMetal1, TopVia2, and TopMetal2.
- ihp.tech.get_layer_stack(thickness_gatpoly=0.16, thickness_cont=0.64, thickness_metal1=0.42, thickness_metal=0.49, thickness_via=0.54, thickness_topvia1=0.85, thickness_topmetal1=2.0, thickness_topvia2=2.8, thickness_topmetal2=3.0)[source]
Returns IHP PDK LayerStack for 3D visualization and simulation.
Layer thicknesses are based on the IHP SG13 process specifications. Reference: https://ihp-open-pdk-docs.readthedocs.io/en/latest/process_specs/01_01_main_process_cross_sec.html
- Parameters:
thickness_gatepoly – Gate Oxide thickness in um (default: 0.16)
thickness_cont (float) – Activ-Metal1 Cont thickness in um (default: 0.64)
thickness_metal1 (float) – Metal1 layer thickness in um (default: 0.42).
thickness_metal (float) – Metal2-5 layer thickness in um (default: 0.49).
thickness_via (float) – Via1-4 layer thickness in um (default: 0.54).
thickness_topvia1 (float) – TopVia1 layer thickness in um (default: 0.85).
thickness_topmetal1 (float) – TopMetal1 layer thickness in um (default: 2.0).
thickness_topvia2 (float) – TopVia2 layer thickness in um (default: 2.8).
thickness_topmetal2 (float) – TopMetal2 layer thickness in um (default: 3.0).
thickness_gatpoly (float)
- Returns:
LayerStack for IHP PDK with properly connected metal and via layers.
- Return type:
LayerStack
import warnings
warnings.filterwarnings("ignore", category=DeprecationWarning)
from ihp import PDK
PDK.activate()
fig = PDK.layer_stack.plot()
Technology Parameters#
TECH is an instance of TechIHP containing process design rules:
grid size, minimum transistor dimensions, metal widths/spacings, resistor
and capacitor parameters, and RF layout rules.
- pydantic model ihp.tech.TechIHP[source]
Bases:
BaseModelIHP PDK Technology parameters.
Show JSON schema
{ "title": "TechIHP", "description": "IHP PDK Technology parameters.", "type": "object", "properties": { "grid": { "default": 0.005, "title": "Grid", "type": "number" }, "precision": { "default": 1e-09, "title": "Precision", "type": "number" }, "nmos_min_width": { "default": 0.15, "title": "Nmos Min Width", "type": "number" }, "nmos_min_length": { "default": 0.13, "title": "Nmos Min Length", "type": "number" }, "pmos_min_width": { "default": 0.15, "title": "Pmos Min Width", "type": "number" }, "pmos_min_length": { "default": 0.13, "title": "Pmos Min Length", "type": "number" }, "cont_size": { "default": 0.16, "title": "Cont Size", "type": "number" }, "cont_spacing": { "default": 0.18, "title": "Cont Spacing", "type": "number" }, "cont_enc_active": { "default": 0.07, "title": "Cont Enc Active", "type": "number" }, "cont_enc_poly": { "default": 0.07, "title": "Cont Enc Poly", "type": "number" }, "cont_enc_metal": { "default": 0.06, "title": "Cont Enc Metal", "type": "number" }, "cont_b1": { "default": 0.2, "title": "Cont B1", "type": "number" }, "cont_b1_nr": { "default": 4.0, "title": "Cont B1 Nr", "type": "number" }, "via1_size": { "default": 0.26, "title": "Via1 Size", "type": "number" }, "via1_spacing": { "default": 0.36, "title": "Via1 Spacing", "type": "number" }, "via1_enc_metal": { "default": 0.06, "title": "Via1 Enc Metal", "type": "number" }, "metal1_width": { "default": 0.14, "title": "Metal1 Width", "type": "number" }, "metal1_spacing": { "default": 0.14, "title": "Metal1 Spacing", "type": "number" }, "metal2_width": { "default": 0.16, "title": "Metal2 Width", "type": "number" }, "metal2_spacing": { "default": 0.16, "title": "Metal2 Spacing", "type": "number" }, "metal3_width": { "default": 0.2, "title": "Metal3 Width", "type": "number" }, "metal3_spacing": { "default": 0.2, "title": "Metal3 Spacing", "type": "number" }, "metal4_width": { "default": 0.2, "title": "Metal4 Width", "type": "number" }, "metal4_spacing": { "default": 0.2, "title": "Metal4 Spacing", "type": "number" }, "metal5_width": { "default": 0.2, "title": "Metal5 Width", "type": "number" }, "metal5_spacing": { "default": 0.2, "title": "Metal5 Spacing", "type": "number" }, "topmetal1_width": { "default": 1.0, "title": "Topmetal1 Width", "type": "number" }, "topmetal1_spacing": { "default": 1.0, "title": "Topmetal1 Spacing", "type": "number" }, "topmetal2_width": { "default": 2.0, "title": "Topmetal2 Width", "type": "number" }, "topmetal2_spacing": { "default": 2.0, "title": "Topmetal2 Spacing", "type": "number" }, "rsil_sheet_res": { "default": 7.0, "title": "Rsil Sheet Res", "type": "number" }, "rppd_sheet_res": { "default": 300.0, "title": "Rppd Sheet Res", "type": "number" }, "rhigh_sheet_res": { "default": 1350.0, "title": "Rhigh Sheet Res", "type": "number" }, "mim_min_size": { "default": 0.5, "title": "Mim Min Size", "type": "number" }, "mim_cap_density": { "default": 1.5, "title": "Mim Cap Density", "type": "number" }, "inductor_min_width": { "default": 2.0, "title": "Inductor Min Width", "type": "number" }, "inductor_min_spacing": { "default": 2.1, "title": "Inductor Min Spacing", "type": "number" }, "inductor_min_diameter": { "default": 15.0, "title": "Inductor Min Diameter", "type": "number" }, "epsilon": { "default": 0.001, "title": "Epsilon", "type": "number" }, "cont_gate_dist": { "default": 0.11, "title": "Cont Gate Dist", "type": "number" }, "gatpoly_activ_over": { "default": 0.18, "title": "Gatpoly Activ Over", "type": "number" }, "gat_d": { "default": 0.07, "title": "Gat D", "type": "number" }, "psd_activ_over": { "default": 0.18, "title": "Psd Activ Over", "type": "number" }, "psd_gate_over_lv": { "default": 0.3, "title": "Psd Gate Over Lv", "type": "number" }, "pSD_a": { "default": 0.31, "title": "Psd A", "type": "number" }, "psd_gate_over_hv": { "default": 0.4, "title": "Psd Gate Over Hv", "type": "number" }, "nw_activ_over_lv": { "default": 0.31, "title": "Nw Activ Over Lv", "type": "number" }, "nw_activ_over_hv": { "default": 0.62, "title": "Nw Activ Over Hv", "type": "number" }, "tgo_activ": { "default": 0.27, "title": "Tgo Activ", "type": "number" }, "tgo_gatpoly": { "default": 0.34, "title": "Tgo Gatpoly", "type": "number" }, "m1_over": { "default": 0.0, "title": "M1 Over", "type": "number" }, "m1_endcap": { "default": 0.05, "title": "M1 Endcap", "type": "number" }, "via1_size_rf": { "default": 0.19, "title": "Via1 Size Rf", "type": "number" }, "via1_spacing_narrow": { "default": 0.22, "title": "Via1 Spacing Narrow", "type": "number" }, "via1_spacing_wide": { "default": 0.29, "title": "Via1 Spacing Wide", "type": "number" }, "via1_width_threshold": { "default": 1.52, "title": "Via1 Width Threshold", "type": "number" }, "via1_enc": { "default": 0.01, "title": "Via1 Enc", "type": "number" }, "via1_endcap": { "default": 0.05, "title": "Via1 Endcap", "type": "number" }, "rf_gate_ring_width": { "default": 0.3, "title": "Rf Gate Ring Width", "type": "number" }, "rf_guard_ring_width": { "default": 0.32, "title": "Rf Guard Ring Width", "type": "number" }, "rf_guard_ring_m1_width": { "default": 0.32, "title": "Rf Guard Ring M1 Width", "type": "number" }, "rf_psd_ring_width": { "default": 0.38, "title": "Rf Psd Ring Width", "type": "number" }, "rf_sd_metal_width_over": { "default": 0.14, "title": "Rf Sd Metal Width Over", "type": "number" }, "rf_active_gate_dist_x": { "default": 0.13, "title": "Rf Active Gate Dist X", "type": "number" }, "rf_active_gate_dist_x_wide": { "default": 0.17, "title": "Rf Active Gate Dist X Wide", "type": "number" }, "rf_active_gate_dist_y": { "default": 0.235, "title": "Rf Active Gate Dist Y", "type": "number" }, "rf_gate_guard_dist": { "default": 0.36, "title": "Rf Gate Guard Dist", "type": "number" }, "rf_channel_dist_base": { "default": 0.38, "title": "Rf Channel Dist Base", "type": "number" }, "rf_channel_dist_step": { "default": 0.03, "title": "Rf Channel Dist Step", "type": "number" }, "rf_endpiece_base": { "default": 0.345, "title": "Rf Endpiece Base", "type": "number" }, "rf_endpiece_step": { "default": 0.065, "title": "Rf Endpiece Step", "type": "number" }, "rf_short_wide_adjust": { "default": 0.005, "title": "Rf Short Wide Adjust", "type": "number" }, "rf_short_wide_l_threshold": { "default": 0.14, "title": "Rf Short Wide L Threshold", "type": "number" }, "rf_short_wide_w_threshold": { "default": 1.0, "title": "Rf Short Wide W Threshold", "type": "number" }, "rf_sd_margin_x": { "default": 0.05, "title": "Rf Sd Margin X", "type": "number" }, "rf_sd_margin_y": { "default": 0.015, "title": "Rf Sd Margin Y", "type": "number" }, "rf_sd_metal_adjust": { "default": 0.02, "title": "Rf Sd Metal Adjust", "type": "number" }, "rf_sd_row_spacing": { "default": 0.13, "title": "Rf Sd Row Spacing", "type": "number" }, "rf_gate_cont_offset": { "default": 0.02, "title": "Rf Gate Cont Offset", "type": "number" }, "rf_gate_cont_margin_single": { "default": 0.075, "title": "Rf Gate Cont Margin Single", "type": "number" }, "rf_gate_cont_margin_multi": { "default": 0.36, "title": "Rf Gate Cont Margin Multi", "type": "number" }, "rf_guard_cont_offset_h": { "default": 0.08, "title": "Rf Guard Cont Offset H", "type": "number" }, "rf_guard_cont_offset_v": { "default": 0.11, "title": "Rf Guard Cont Offset V", "type": "number" }, "rf_psd_pmos_inset_x": { "default": 0.5, "title": "Rf Psd Pmos Inset X", "type": "number" }, "rf_psd_pmos_inset_y": { "default": 0.6, "title": "Rf Psd Pmos Inset Y", "type": "number" }, "rf_tgo_nmos": { "default": 0.35, "title": "Rf Tgo Nmos", "type": "number" }, "rf_tgo_pmos": { "default": 0.31, "title": "Rf Tgo Pmos", "type": "number" }, "rf_nw_pmos_hv": { "default": 0.35, "title": "Rf Nw Pmos Hv", "type": "number" }, "rf_nw_pmos_lv": { "default": 0.31, "title": "Rf Nw Pmos Lv", "type": "number" }, "rf_gate_pin_half_width": { "default": 0.1, "title": "Rf Gate Pin Half Width", "type": "number" }, "nmos_max_width": { "default": 10.0, "title": "Nmos Max Width", "type": "number" }, "nmos_max_length": { "default": 10.0, "title": "Nmos Max Length", "type": "number" }, "nmos_max_nf": { "default": 100, "title": "Nmos Max Nf", "type": "integer" }, "pmos_max_width": { "default": 10.0, "title": "Pmos Max Width", "type": "number" }, "pmos_max_length": { "default": 10.0, "title": "Pmos Max Length", "type": "number" }, "pmos_max_nf": { "default": 100, "title": "Pmos Max Nf", "type": "integer" }, "nmos_hv_min_width": { "default": 0.3, "title": "Nmos Hv Min Width", "type": "number" }, "nmos_hv_max_width": { "default": 10.0, "title": "Nmos Hv Max Width", "type": "number" }, "nmos_hv_min_length": { "default": 0.45, "title": "Nmos Hv Min Length", "type": "number" }, "nmos_hv_max_length": { "default": 10.0, "title": "Nmos Hv Max Length", "type": "number" }, "nmos_hv_max_nf": { "default": 100, "title": "Nmos Hv Max Nf", "type": "integer" }, "pmos_hv_min_width": { "default": 0.3, "title": "Pmos Hv Min Width", "type": "number" }, "pmos_hv_max_width": { "default": 10.0, "title": "Pmos Hv Max Width", "type": "number" }, "pmos_hv_min_length": { "default": 0.4, "title": "Pmos Hv Min Length", "type": "number" }, "pmos_hv_max_length": { "default": 10.0, "title": "Pmos Hv Max Length", "type": "number" }, "pmos_hv_max_nf": { "default": 100, "title": "Pmos Hv Max Nf", "type": "integer" }, "rfnmos_min_width": { "default": 0.15, "title": "Rfnmos Min Width", "type": "number" }, "rfnmos_max_width": { "default": 10.0, "title": "Rfnmos Max Width", "type": "number" }, "rfnmos_min_length": { "default": 0.13, "title": "Rfnmos Min Length", "type": "number" }, "rfnmos_max_length": { "default": 10.0, "title": "Rfnmos Max Length", "type": "number" }, "rfnmos_max_nf": { "default": 40, "title": "Rfnmos Max Nf", "type": "integer" }, "rfpmos_min_width": { "default": 0.15, "title": "Rfpmos Min Width", "type": "number" }, "rfpmos_max_width": { "default": 10.0, "title": "Rfpmos Max Width", "type": "number" }, "rfpmos_min_length": { "default": 0.13, "title": "Rfpmos Min Length", "type": "number" }, "rfpmos_max_length": { "default": 10.0, "title": "Rfpmos Max Length", "type": "number" }, "rfpmos_max_nf": { "default": 40, "title": "Rfpmos Max Nf", "type": "integer" }, "rfnmos_hv_min_width": { "default": 0.33, "title": "Rfnmos Hv Min Width", "type": "number" }, "rfnmos_hv_max_width": { "default": 10.0, "title": "Rfnmos Hv Max Width", "type": "number" }, "rfnmos_hv_min_length": { "default": 0.45, "title": "Rfnmos Hv Min Length", "type": "number" }, "rfnmos_hv_max_length": { "default": 10.0, "title": "Rfnmos Hv Max Length", "type": "number" }, "rfnmos_hv_max_nf": { "default": 40, "title": "Rfnmos Hv Max Nf", "type": "integer" }, "rfpmos_hv_min_width": { "default": 0.39, "title": "Rfpmos Hv Min Width", "type": "number" }, "rfpmos_hv_max_width": { "default": 10.0, "title": "Rfpmos Hv Max Width", "type": "number" }, "rfpmos_hv_min_length": { "default": 0.4, "title": "Rfpmos Hv Min Length", "type": "number" }, "rfpmos_hv_max_length": { "default": 10.0, "title": "Rfpmos Hv Max Length", "type": "number" }, "rfpmos_hv_max_nf": { "default": 40, "title": "Rfpmos Hv Max Nf", "type": "integer" }, "npn_min_nx": { "default": 1, "title": "Npn Min Nx", "type": "integer" }, "npn_max_nx": { "default": 10, "title": "Npn Max Nx", "type": "integer" }, "pnp_min_length": { "default": 0.68, "title": "Pnp Min Length", "type": "number" }, "pnp_max_length": { "default": 1000.0, "title": "Pnp Max Length", "type": "number" }, "pnp_min_width": { "default": 0.3, "title": "Pnp Min Width", "type": "number" }, "pnp_max_width": { "default": 2.0, "title": "Pnp Max Width", "type": "number" }, "rsil_min_width": { "default": 0.5, "title": "Rsil Min Width", "type": "number" }, "rsil_max_width": { "default": 1000.0, "title": "Rsil Max Width", "type": "number" }, "rsil_min_length": { "default": 0.5, "title": "Rsil Min Length", "type": "number" }, "rsil_max_length": { "default": 1000.0, "title": "Rsil Max Length", "type": "number" }, "rppd_min_width": { "default": 0.5, "title": "Rppd Min Width", "type": "number" }, "rppd_max_width": { "default": 1000.0, "title": "Rppd Max Width", "type": "number" }, "rppd_min_length": { "default": 0.5, "title": "Rppd Min Length", "type": "number" }, "rppd_max_length": { "default": 1000.0, "title": "Rppd Max Length", "type": "number" }, "rhigh_min_width": { "default": 0.5, "title": "Rhigh Min Width", "type": "number" }, "rhigh_max_width": { "default": 1000.0, "title": "Rhigh Max Width", "type": "number" }, "rhigh_min_length": { "default": 0.96, "title": "Rhigh Min Length", "type": "number" }, "rhigh_max_length": { "default": 1000.0, "title": "Rhigh Max Length", "type": "number" }, "cmim_min_size": { "default": 1.14, "title": "Cmim Min Size", "type": "number" }, "cmim_max_size": { "default": 1000.0, "title": "Cmim Max Size", "type": "number" }, "rfcmim_min_size": { "default": 7.0, "title": "Rfcmim Min Size", "type": "number" }, "rfcmim_max_size": { "default": 1000.0, "title": "Rfcmim Max Size", "type": "number" }, "cmim_caspec": { "default": 1.5, "title": "Cmim Caspec", "type": "number" }, "cmim_cpspec": { "default": 0.04, "title": "Cmim Cpspec", "type": "number" }, "cmim_lwd": { "default": 0.01, "title": "Cmim Lwd", "type": "number" }, "rfcmim_caspec": { "default": 1.5, "title": "Rfcmim Caspec", "type": "number" }, "rfcmim_cpspec": { "default": 0.04, "title": "Rfcmim Cpspec", "type": "number" }, "rfcmim_lwd": { "default": 0.01, "title": "Rfcmim Lwd", "type": "number" }, "ptap1_min_size": { "default": 0.78, "title": "Ptap1 Min Size", "type": "number" }, "ptap1_max_size": { "default": 10000000.0, "title": "Ptap1 Max Size", "type": "number" }, "ntap1_min_size": { "default": 0.78, "title": "Ntap1 Min Size", "type": "number" }, "ntap1_max_size": { "default": 10000.0, "title": "Ntap1 Max Size", "type": "number" }, "dantenna_min_width": { "default": 0.48, "title": "Dantenna Min Width", "type": "number" }, "dantenna_max_width": { "default": 1000.0, "title": "Dantenna Max Width", "type": "number" }, "dantenna_min_length": { "default": 0.48, "title": "Dantenna Min Length", "type": "number" }, "dantenna_max_length": { "default": 1000.0, "title": "Dantenna Max Length", "type": "number" }, "dantenna_dov": { "default": 0.02, "title": "Dantenna Dov", "type": "number" }, "dpantenna_min_width": { "default": 0.48, "title": "Dpantenna Min Width", "type": "number" }, "dpantenna_max_width": { "default": 1000.0, "title": "Dpantenna Max Width", "type": "number" }, "dpantenna_min_length": { "default": 0.48, "title": "Dpantenna Min Length", "type": "number" }, "dpantenna_max_length": { "default": 1000.0, "title": "Dpantenna Max Length", "type": "number" }, "dpantenna_dov": { "default": 0.02, "title": "Dpantenna Dov", "type": "number" }, "sealring_min_width": { "default": 150.0, "title": "Sealring Min Width", "type": "number" }, "sealring_max_width": { "default": 32000.0, "title": "Sealring Max Width", "type": "number" }, "sealring_min_height": { "default": 150.0, "title": "Sealring Min Height", "type": "number" }, "sealring_max_height": { "default": 25000.0, "title": "Sealring Max Height", "type": "number" } } }
- Fields:
cmim_caspec (float)cmim_cpspec (float)cmim_lwd (float)cmim_max_size (float)cmim_min_size (float)cont_b1 (float)cont_b1_nr (float)cont_enc_active (float)cont_enc_metal (float)cont_enc_poly (float)cont_gate_dist (float)cont_size (float)cont_spacing (float)dantenna_dov (float)dantenna_max_length (float)dantenna_max_width (float)dantenna_min_length (float)dantenna_min_width (float)dpantenna_dov (float)dpantenna_max_length (float)dpantenna_max_width (float)dpantenna_min_length (float)dpantenna_min_width (float)epsilon (float)gat_d (float)gatpoly_activ_over (float)grid (float)inductor_min_diameter (float)inductor_min_spacing (float)inductor_min_width (float)m1_endcap (float)m1_over (float)metal1_spacing (float)metal1_width (float)metal2_spacing (float)metal2_width (float)metal3_spacing (float)metal3_width (float)metal4_spacing (float)metal4_width (float)metal5_spacing (float)metal5_width (float)mim_cap_density (float)mim_min_size (float)nmos_hv_max_length (float)nmos_hv_max_nf (int)nmos_hv_max_width (float)nmos_hv_min_length (float)nmos_hv_min_width (float)nmos_max_length (float)nmos_max_nf (int)nmos_max_width (float)nmos_min_length (float)nmos_min_width (float)npn_max_nx (int)npn_min_nx (int)ntap1_max_size (float)ntap1_min_size (float)nw_activ_over_hv (float)nw_activ_over_lv (float)pSD_a (float)pmos_hv_max_length (float)pmos_hv_max_nf (int)pmos_hv_max_width (float)pmos_hv_min_length (float)pmos_hv_min_width (float)pmos_max_length (float)pmos_max_nf (int)pmos_max_width (float)pmos_min_length (float)pmos_min_width (float)pnp_max_length (float)pnp_max_width (float)pnp_min_length (float)pnp_min_width (float)precision (float)psd_activ_over (float)psd_gate_over_hv (float)psd_gate_over_lv (float)ptap1_max_size (float)ptap1_min_size (float)rf_active_gate_dist_x (float)rf_active_gate_dist_x_wide (float)rf_active_gate_dist_y (float)rf_channel_dist_base (float)rf_channel_dist_step (float)rf_endpiece_base (float)rf_endpiece_step (float)rf_gate_cont_margin_multi (float)rf_gate_cont_margin_single (float)rf_gate_cont_offset (float)rf_gate_guard_dist (float)rf_gate_pin_half_width (float)rf_gate_ring_width (float)rf_guard_cont_offset_h (float)rf_guard_cont_offset_v (float)rf_guard_ring_m1_width (float)rf_guard_ring_width (float)rf_nw_pmos_hv (float)rf_nw_pmos_lv (float)rf_psd_pmos_inset_x (float)rf_psd_pmos_inset_y (float)rf_psd_ring_width (float)rf_sd_margin_x (float)rf_sd_margin_y (float)rf_sd_metal_adjust (float)rf_sd_metal_width_over (float)rf_sd_row_spacing (float)rf_short_wide_adjust (float)rf_short_wide_l_threshold (float)rf_short_wide_w_threshold (float)rf_tgo_nmos (float)rf_tgo_pmos (float)rfcmim_caspec (float)rfcmim_cpspec (float)rfcmim_lwd (float)rfcmim_max_size (float)rfcmim_min_size (float)rfnmos_hv_max_length (float)rfnmos_hv_max_nf (int)rfnmos_hv_max_width (float)rfnmos_hv_min_length (float)rfnmos_hv_min_width (float)rfnmos_max_length (float)rfnmos_max_nf (int)rfnmos_max_width (float)rfnmos_min_length (float)rfnmos_min_width (float)rfpmos_hv_max_length (float)rfpmos_hv_max_nf (int)rfpmos_hv_max_width (float)rfpmos_hv_min_length (float)rfpmos_hv_min_width (float)rfpmos_max_length (float)rfpmos_max_nf (int)rfpmos_max_width (float)rfpmos_min_length (float)rfpmos_min_width (float)rhigh_max_length (float)rhigh_max_width (float)rhigh_min_length (float)rhigh_min_width (float)rhigh_sheet_res (float)rppd_max_length (float)rppd_max_width (float)rppd_min_length (float)rppd_min_width (float)rppd_sheet_res (float)rsil_max_length (float)rsil_max_width (float)rsil_min_length (float)rsil_min_width (float)rsil_sheet_res (float)sealring_max_height (float)sealring_max_width (float)sealring_min_height (float)sealring_min_width (float)tgo_activ (float)tgo_gatpoly (float)topmetal1_spacing (float)topmetal1_width (float)topmetal2_spacing (float)topmetal2_width (float)via1_enc (float)via1_enc_metal (float)via1_endcap (float)via1_size (float)via1_size_rf (float)via1_spacing (float)via1_spacing_narrow (float)via1_spacing_wide (float)via1_width_threshold (float)
- field cmim_caspec: float = 1.5
- field cmim_cpspec: float = 0.04
- field cmim_lwd: float = 0.01
- field cmim_max_size: float = 1000.0
- field cmim_min_size: float = 1.14
- field cont_b1: float = 0.2
- field cont_b1_nr: float = 4.0
- field cont_enc_active: float = 0.07
- field cont_enc_metal: float = 0.06
- field cont_enc_poly: float = 0.07
- field cont_gate_dist: float = 0.11
- field cont_size: float = 0.16
- field cont_spacing: float = 0.18
- field dantenna_dov: float = 0.02
- field dantenna_max_length: float = 1000.0
- field dantenna_max_width: float = 1000.0
- field dantenna_min_length: float = 0.48
- field dantenna_min_width: float = 0.48
- field dpantenna_dov: float = 0.02
- field dpantenna_max_length: float = 1000.0
- field dpantenna_max_width: float = 1000.0
- field dpantenna_min_length: float = 0.48
- field dpantenna_min_width: float = 0.48
- field epsilon: float = 0.001
- field gat_d: float = 0.07
- field gatpoly_activ_over: float = 0.18
- field grid: float = 0.005
- field inductor_min_diameter: float = 15.0
- field inductor_min_spacing: float = 2.1
- field inductor_min_width: float = 2.0
- field m1_endcap: float = 0.05
- field m1_over: float = 0.0
- field metal1_spacing: float = 0.14
- field metal1_width: float = 0.14
- field metal2_spacing: float = 0.16
- field metal2_width: float = 0.16
- field metal3_spacing: float = 0.2
- field metal3_width: float = 0.2
- field metal4_spacing: float = 0.2
- field metal4_width: float = 0.2
- field metal5_spacing: float = 0.2
- field metal5_width: float = 0.2
- field mim_cap_density: float = 1.5
- field mim_min_size: float = 0.5
- field nmos_hv_max_length: float = 10.0
- field nmos_hv_max_nf: int = 100
- field nmos_hv_max_width: float = 10.0
- field nmos_hv_min_length: float = 0.45
- field nmos_hv_min_width: float = 0.3
- field nmos_max_length: float = 10.0
- field nmos_max_nf: int = 100
- field nmos_max_width: float = 10.0
- field nmos_min_length: float = 0.13
- field nmos_min_width: float = 0.15
- field npn_max_nx: int = 10
- field npn_min_nx: int = 1
- field ntap1_max_size: float = 10000.0
- field ntap1_min_size: float = 0.78
- field nw_activ_over_hv: float = 0.62
- field nw_activ_over_lv: float = 0.31
- field pSD_a: float = 0.31
- field pmos_hv_max_length: float = 10.0
- field pmos_hv_max_nf: int = 100
- field pmos_hv_max_width: float = 10.0
- field pmos_hv_min_length: float = 0.4
- field pmos_hv_min_width: float = 0.3
- field pmos_max_length: float = 10.0
- field pmos_max_nf: int = 100
- field pmos_max_width: float = 10.0
- field pmos_min_length: float = 0.13
- field pmos_min_width: float = 0.15
- field pnp_max_length: float = 1000.0
- field pnp_max_width: float = 2.0
- field pnp_min_length: float = 0.68
- field pnp_min_width: float = 0.3
- field precision: float = 1e-09
- field psd_activ_over: float = 0.18
- field psd_gate_over_hv: float = 0.4
- field psd_gate_over_lv: float = 0.3
- field ptap1_max_size: float = 10000000.0
- field ptap1_min_size: float = 0.78
- field rf_active_gate_dist_x: float = 0.13
- field rf_active_gate_dist_x_wide: float = 0.17
- field rf_active_gate_dist_y: float = 0.235
- field rf_channel_dist_base: float = 0.38
- field rf_channel_dist_step: float = 0.03
- field rf_endpiece_base: float = 0.345
- field rf_endpiece_step: float = 0.065
- field rf_gate_cont_margin_multi: float = 0.36
- field rf_gate_cont_margin_single: float = 0.075
- field rf_gate_cont_offset: float = 0.02
- field rf_gate_guard_dist: float = 0.36
- field rf_gate_pin_half_width: float = 0.1
- field rf_gate_ring_width: float = 0.3
- field rf_guard_cont_offset_h: float = 0.08
- field rf_guard_cont_offset_v: float = 0.11
- field rf_guard_ring_m1_width: float = 0.32
- field rf_guard_ring_width: float = 0.32
- field rf_nw_pmos_hv: float = 0.35
- field rf_nw_pmos_lv: float = 0.31
- field rf_psd_pmos_inset_x: float = 0.5
- field rf_psd_pmos_inset_y: float = 0.6
- field rf_psd_ring_width: float = 0.38
- field rf_sd_margin_x: float = 0.05
- field rf_sd_margin_y: float = 0.015
- field rf_sd_metal_adjust: float = 0.02
- field rf_sd_metal_width_over: float = 0.14
- field rf_sd_row_spacing: float = 0.13
- field rf_short_wide_adjust: float = 0.005
- field rf_short_wide_l_threshold: float = 0.14
- field rf_short_wide_w_threshold: float = 1.0
- field rf_tgo_nmos: float = 0.35
- field rf_tgo_pmos: float = 0.31
- field rfcmim_caspec: float = 1.5
- field rfcmim_cpspec: float = 0.04
- field rfcmim_lwd: float = 0.01
- field rfcmim_max_size: float = 1000.0
- field rfcmim_min_size: float = 7.0
- field rfnmos_hv_max_length: float = 10.0
- field rfnmos_hv_max_nf: int = 40
- field rfnmos_hv_max_width: float = 10.0
- field rfnmos_hv_min_length: float = 0.45
- field rfnmos_hv_min_width: float = 0.33
- field rfnmos_max_length: float = 10.0
- field rfnmos_max_nf: int = 40
- field rfnmos_max_width: float = 10.0
- field rfnmos_min_length: float = 0.13
- field rfnmos_min_width: float = 0.15
- field rfpmos_hv_max_length: float = 10.0
- field rfpmos_hv_max_nf: int = 40
- field rfpmos_hv_max_width: float = 10.0
- field rfpmos_hv_min_length: float = 0.4
- field rfpmos_hv_min_width: float = 0.39
- field rfpmos_max_length: float = 10.0
- field rfpmos_max_nf: int = 40
- field rfpmos_max_width: float = 10.0
- field rfpmos_min_length: float = 0.13
- field rfpmos_min_width: float = 0.15
- field rhigh_max_length: float = 1000.0
- field rhigh_max_width: float = 1000.0
- field rhigh_min_length: float = 0.96
- field rhigh_min_width: float = 0.5
- field rhigh_sheet_res: float = 1350.0
- field rppd_max_length: float = 1000.0
- field rppd_max_width: float = 1000.0
- field rppd_min_length: float = 0.5
- field rppd_min_width: float = 0.5
- field rppd_sheet_res: float = 300.0
- field rsil_max_length: float = 1000.0
- field rsil_max_width: float = 1000.0
- field rsil_min_length: float = 0.5
- field rsil_min_width: float = 0.5
- field rsil_sheet_res: float = 7.0
- field sealring_max_height: float = 25000.0
- field sealring_max_width: float = 32000.0
- field sealring_min_height: float = 150.0
- field sealring_min_width: float = 150.0
- field tgo_activ: float = 0.27
- field tgo_gatpoly: float = 0.34
- field topmetal1_spacing: float = 1.0
- field topmetal1_width: float = 1.0
- field topmetal2_spacing: float = 2.0
- field topmetal2_width: float = 2.0
- field via1_enc: float = 0.01
- field via1_enc_metal: float = 0.06
- field via1_endcap: float = 0.05
- field via1_size: float = 0.26
- field via1_size_rf: float = 0.19
- field via1_spacing: float = 0.36
- field via1_spacing_narrow: float = 0.22
- field via1_spacing_wide: float = 0.29
- field via1_width_threshold: float = 1.52
Cross-Sections#
Pre-defined cross-sections for electrical routing on each metal layer.
All cross-sections use port_type="electrical".
Name |
Layer |
Default Width |
|---|---|---|
|
Metal1drawing (8, 0) |
0.28 um |
|
Metal2drawing (10, 0) |
0.32 um |
|
Metal3drawing (30, 0) |
0.40 um |
|
TopMetal1drawing (126, 0) |
1.0 um |
|
TopMetal2drawing (134, 0) |
2.0 um |
strip and metal_routing are aliases for topmetal2_routing.
- ihp.tech.metal_routing(*, width=2.0, layer=<LayerMapIHP.TopMetal2drawing: 354>, radius=None, port_names=('e1', 'e2'), port_types=('electrical', 'electrical'), **kwargs)
Return Metal Strip cross_section.
- Parameters:
width (float)
layer (tuple[int, int] | str | int | LayerEnum)
radius (float | None)
port_names (tuple[str, str])
port_types (tuple[str, str])
kwargs (Any)
- Return type:
CrossSection
Routing Strategies#
The PDK registers these routing strategies for use with GDSFactory’s auto-routing:
Strategy |
Description |
|---|---|
|
Bundle routing with |
|
Bundle routing with |
|
Metal bundle routing with bends ( |
|
Metal bundle routing with 90-degree corners ( |
|
A* pathfinding on TopMetal2 with euler bends |
|
A* pathfinding on TopMetal2 with wire corners |
Connectivity#
The PDK defines layer connectivity for LVS and routing:
Metal1 -- Via1 -- Metal2
Metal2 -- Via2 -- Metal3
Metal3 -- Via3 -- Metal4
Metal4 -- Via4 -- Metal5
Metal5 -- TopVia1 -- TopMetal1
TopMetal1 -- TopVia2 -- TopMetal2