############################################################################### # DEF57_01 testcase ############################################################################### VERSION 5.8 ; NAMESCASESENSITIVE ON ; DIVIDERCHAR "/" ; BUSBITCHARS "[]" ; DESIGN design ; TECHNOLOGY technology ; UNITS DISTANCE MICRONS 1000 ; ############################################################################### # PROPERTYDEFINITIONS # objectType propName propType [ RANGE min max ] [ value ] ; ... # END PROPERTYDEFINITIONS ############################################################################### PROPERTYDEFINITIONS DESIGN strprop STRING "aString" ; DESIGN intprop INTEGER 1 ; DESIGN realprop REAL 1.1 ; DESIGN intrangeprop INTEGER RANGE 1 100 25 ; DESIGN realrangeprop REAL RANGE 1.1 100.1 25.25 ; REGION strprop STRING ; REGION intprop INTEGER ; REGION realprop REAL ; REGION intrangeprop INTEGER RANGE 1 100 ; REGION realrangeprop REAL RANGE 1.1 100.1 ; GROUP strprop STRING ; GROUP intprop INTEGER ; GROUP realprop REAL ; GROUP intrangeprop INTEGER RANGE 1 100 ; GROUP realrangeprop REAL RANGE 1.1 100.1 ; COMPONENT strprop STRING ; COMPONENT intprop INTEGER ; COMPONENT realprop REAL ; COMPONENT intrangeprop INTEGER RANGE 1 100 ; COMPONENT realrangeprop REAL RANGE 1.1 100.1 ; NET strprop STRING ; NET intprop INTEGER ; NET realprop REAL ; NET intrangeprop INTEGER RANGE 1 100 ; NET realrangeprop REAL RANGE 1.1 100.1 ; SPECIALNET strprop STRING ; SPECIALNET intprop INTEGER ; SPECIALNET realprop REAL ; SPECIALNET intrangeprop INTEGER RANGE 1 100 ; SPECIALNET realrangeprop REAL RANGE 1.1 100.1 ; ROW strprop STRING ; ROW intprop INTEGER ; ROW realprop REAL ; ROW intrangeprop INTEGER RANGE 1 100 ; ROW realrangeprop REAL RANGE 1.1 100.1 ; COMPONENTPIN strprop STRING ; COMPONENTPIN intprop INTEGER ; COMPONENTPIN realprop REAL ; COMPONENTPIN intrangeprop INTEGER RANGE 1 100 ; COMPONENTPIN realrangeprop REAL RANGE 1.1 100.1 ; NONDEFAULTRULE strprop STRING ; NONDEFAULTRULE intprop INTEGER ; NONDEFAULTRULE realprop REAL ; NONDEFAULTRULE intrangeprop INTEGER RANGE 1 100 ; NONDEFAULTRULE realrangeprop REAL RANGE 1.1 100.1 ; END PROPERTYDEFINITIONS ############################################################################### # DIEAREA pt pt ; ############################################################################### DIEAREA ( -190000 -120000 ) ( -190000 350000 ) ( 190000 350000 ) ( 190000 190000 ) ( 190360 190000 ) ( 190360 -120000 ) ; ############################################################################### # ROW rowName rowType origX origY orient # { DO numX BY 1 STEP spaceX 0 # | DO 1 BY numY STEP 0 spaceY } # + PROPERTY { propName propVal }... ; ############################################################################### ROW ROW_1 CORE 1000 1000 N DO 100 BY 1 STEP 700 0 + PROPERTY strprop "aString" + PROPERTY intprop 1 + PROPERTY realprop 1.1 + PROPERTY intrangeprop 25 + PROPERTY realrangeprop 25.25 ; ROW ROW_2 CORE 1000 2000 S DO 100 BY 1 STEP 700 0 ; ROW ROW_3 CORE 1000 3000 E DO 100 BY 1 STEP 8400 0 ; ROW ROW_4 CORE 1000 4000 W DO 100 BY 1 STEP 8400 0 ; ROW ROW_5 CORE 1000 5000 FN DO 100 BY 1 STEP 700 0 ; ROW ROW_6 CORE 1000 6000 FS DO 100 BY 1 STEP 700 0 ; ROW ROW_7 CORE 1000 7000 FE DO 100 BY 1 STEP 8400 0 ; ROW ROW_8 CORE 1000 8000 FW DO 100 BY 1 STEP 8400 0 ; ROW ROW_VERT_1 CORE -10000 -10000 N DO 1 BY 10 STEP 0 8400 ; ROW ROW_VERT_2 CORE -9000 -10000 S DO 1 BY 10 STEP 0 8400 ; ROW ROW_VERT_3 CORE -8000 -10000 E DO 1 BY 10 STEP 0 700 ; ROW ROW_VERT_4 CORE -7000 -10000 W DO 1 BY 10 STEP 0 700 ; ROW ROW_VERT_5 CORE -6000 -10000 FN DO 1 BY 10 STEP 0 8400 ; ROW ROW_VERT_6 CORE -5000 -10000 FS DO 1 BY 10 STEP 0 8400 ; ROW ROW_VERT_7 CORE -4000 -10000 FE DO 1 BY 10 STEP 0 700 ; ROW ROW_VERT_8 CORE -3000 -10000 FW DO 1 BY 1 STEP 0 700 ; ROW ROW_array0 ARRAYSITE 10000 10000 N DO 100 BY 1 STEP 16000 0 ; ROW ROW_array1 ARRAYSITE 10000 17000 W DO 100 BY 1 STEP 16000 0 ; ROW ROW_array2 ARRAYSITE 10000 17000 S DO 100 BY 1 STEP 16000 0 ; ROW ROW_array3 ARRAYSITE 10000 17000 E DO 100 BY 1 STEP 16000 0 ; ROW ROW_array4 ARRAYSITE 10000 17000 FN DO 100 BY 1 STEP 16000 0 ; ROW ROW_array5 ARRAYSITE 10000 17000 FE DO 100 BY 1 STEP 16000 0 ; ROW ROW_array6 ARRAYSITE 10000 17000 FS DO 100 BY 1 STEP 16000 0 ; ROW ROW_array7 ARRAYSITE 10000 17000 FW DO 100 BY 1 STEP 16000 0 ; ############################################################################### # TRACKS # {X | Y} start # DO numtracks STEP space # [ MASK maskNum {SAMEMASK]] # [ LAYER layerName ...] ; ############################################################################### TRACKS Y 52 DO 857 STEP 104 MASK 1 ; TRACKS Y 52 DO 857 STEP 104 MASK 1 SAMEMASK LAYER M1 M2 ; TRACKS X 52 DO 1720 STEP 104 MASK 2 LAYER M2 ; TRACKS X 52 DO 1720 STEP 104 ; ############################################################################### # GCELLGRID # X start DO numColumns+1 STEP space # Y start DO numRows+1 STEP space ; ############################################################################### GCELLGRID X 0 DO 100 STEP 600 ; GCELLGRID Y 10 DO 120 STEP 400 ; ############################################################################### # VIAS numVias ; # [- viaName # [+ PATTERNNAME patternName] # + RECT layerName [+ MASK maskNUM] pt pt # | + POLYGON layerName [+ MASK maskNUM] pt pt pt]...;]... # END VIAS ############################################################################### VIAS 6 ; - VIAGEN12_0 + PATTERNNAME VIAGEN_12_12.800_7.600_I5 + RECT METAL1 ( -4400 -3800 ) ( 4400 3800 ) + RECT M2 + MASK 3 ( -4500 -3800 ) ( 4500 3800 ) + RECT V1 + MASK 2 ( -3600 -3800 ) ( -2000 -2200 ) + RECT V1 + MASK 1 ( -3600 2200 ) ( -2000 3800 ) + RECT V1 + MASK 2 ( 2000 -3800 ) ( 3600 -2200 ) + RECT V1 + MASK 3 ( 2000 2200 ) ( 3600 3800 ) ; - VIAGEN12_2 + PATTERNNAME VIAGEN_12_5.0000_3.000_1.5600_-0.1600_1.0400_1.0400_D + RECT METAL1 ( -2500 -1500 ) ( 2500 1500 ) + RECT M2 ( -2500 -1500 ) ( 2500 1500 ) + RECT V1 ( -2360 -960 ) ( -760 640 ) + RECT V1 ( -1320 -960 ) ( 280 640 ) + RECT V1 ( 760 -960 ) ( 2360 640 ) ; - VIAGEN12_3 + PATTERNNAME VIAGEN12 + RECT METAL1 ( -1600 -1600 ) ( 1600 1600 ) + RECT M2 ( -1600 -1600 ) ( 1600 1600 ) + RECT V1 ( -800 -800 ) ( 800 800 ) ; - VIAGEN12_4 + VIARULE VIAGEN12 + CUTSIZE 1600 1600 + LAYERS M1 V1 M2 + CUTSPACING 5600 6100 + ENCLOSURE 100 100 150 150 + ROWCOL 5 14 + PATTERN 2_FFE0_3_FFFF + ORIGIN 10 -10 + OFFSET 0 0 20 -20 ; - M2_M1rct_0 + RECT V1 ( -25 -65 ) ( 25 65 ) + RECT M1 ( -35 -95 ) ( 35 95 ) + RECT M2 ( -65 -65 ) ( 65 65 ) ; - VIAGEN12_1 + POLYGON METAL1 + MASK 2 ( -2500 -1500 ) ( -2500 2500 ) ( 1500 2500 ) ( 1500 1500 ) ( 2500 1500 ) ( 2500 -1500 ) + RECT M2 ( -2500 -1500 ) ( 2500 1500 ) + RECT V1 ( -2400 -960 ) ( -700 640 ) ; - CUSTOMVIA + POLYGON METAL1 + MASK 3 ( -2500 -1500 ) ( -2500 2500 ) ( 1500 2500 ) ( 1500 1500 ) ( 2500 1500 ) ( 2500 -1500 ) ; - TURNM1_1 + RECT METAL1 ( -100 -60 ) ( 100 60 ) ; - TURNM2_1 + RECT M2 ( -100 -60 ) ( 100 60 ) ; - TURNM3_1 + RECT M3 ( -100 -60 ) ( 100 60 ) ; - myvia1 + RECT METAL1 + MASK 2 ( 0 0 ) ( 40000 40000 ) + RECT V1 + MASK 3 ( 0 0 ) ( 40000 40000 ) + RECT M2 ( 0 0 ) ( 40000 40000 ) ; END VIAS ############################################################################### # [STYLES numStyles ; # {- STYLE styleNum pt pt pt ;} ... # END STYLES] ############################################################################### STYLES 10 ; - STYLE 0 ( 30 10 ) ( 10 30 ) ( -10 30 ) ( -30 10 ) ( -30 -10 ) ( -10 -30 ) ( 10 -30 ) ( 30 -10 ) ; - STYLE 1 ( 25 25 ) ( -25 25 ) ( -25 -25 ) ( 25 -25 ) ; - STYLE 2 ( 50 50 ) ( -50 50 ) ( -50 -50 ) ( 50 -50 ) ; - STYLE 3 ( 50 21 ) ( 21 50 ) ( -21 50 ) ( -50 21 ) ( -50 -21 ) ( -21 -50 ) ( 21 -50 ) ( 50 -21 ) ; - STYLE 4 ( -30 -20 ) ( 10 -60 ) ( 50 -20 ) ( 50 40 ) ( 0 40 ) ( -30 10 ) ; - STYLE 5 ( 0 2000 ) ( 0 -2000 ) ( 0 2000 ) ( 0 -2000 ) ; - STYLE 6 ( -2000 2000 ) ( 2000 -2000 ) ( * * ) ; - STYLE 7 ( 0 0 ) ( 0 1000 ) ( 1000 0 ) ; - STYLE 8 ( -7500 -3110 ) ( -3110 -7500 ) ( 3110 -7500 ) ( 7500 -3110 ) ( 7500 7500 ) ( -7500 7500 ) ; - STYLE 9 ( 0 -10610 ) ( 7500 -3110 ) ( 7500 3110 ) ( 3110 7500 ) ( -3110 7500 ) ( -10610 0 ) ; END STYLES ############################################################################### # [NONDEFAULTRULES numNDRs ; # {- STYLE styleNum pt pt pt ;} ... # END NONDEFAULTRULES] ############################################################################### NONDEFAULTRULES 1 ; - DEFAULT + LAYER METAL1 WIDTH 10.1 DIAGWIDTH 8.01 SPACING 2.2 WIREEXT 1.1 + LAYER M2 WIDTH 10.1 SPACING 2.2 + LAYER M3 WIDTH 11.1 SPACING 3.2 + VIA M1_M2 + VIA M2_M3 + VIARULE VIAGEN12 + MINCUTS V1 2 + PROPERTY strprop "aString" + PROPERTY intprop 1 + PROPERTY realprop 1.1 + PROPERTY intrangeprop 25 + PROPERTY realrangeprop 25.25 ; - RULE2 + HARDSPACING + LAYER METAL1 WIDTH 10.1 DIAGWIDTH 8.01 SPACING 2.2 WIREEXT 1.1 + LAYER M2 WIDTH 10.1 SPACING 2.2 + LAYER M3 WIDTH 11.1 SPACING 3.2 + VIA M1_M2 + VIA M2_M3 + VIARULE VIAGEN12 + MINCUTS V1 2 + PROPERTY strprop "aString" + PROPERTY intprop 1 + PROPERTY realprop 1.1 + PROPERTY intrangeprop 25 + PROPERTY realrangeprop 25.25 ; END NONDEFAULTRULES ############################################################################### # REGIONS numRegions; # [- regionName pt pt [pt pt]... # [+ TYPE [ FENCE | GUIDE ] # [+ PROPERTY {propName propVal}...]...;]... # END REGIONS ############################################################################### REGIONS 2 ; - region1 ( -500 -500 ) ( 300 100 ) ( 500 500 ) ( 1000 1000 ) + TYPE FENCE + PROPERTY strprop "aString" + PROPERTY intprop 1 + PROPERTY realprop 1.1 + PROPERTY intrangeprop 25 + PROPERTY realrangeprop 25.25 ; - region2 ( 4000 0 ) ( 5000 1000 ) + TYPE GUIDE ; END REGIONS ############################################################################### # COMPONENTS numComps ; # [- compName modelName[netName | *]... # [+ EEQMASTER macroname] # [+ GENERATE generatorName [parameters]] # [+ SOURCE {NETLIST | DIST | USER | TIMING}] # [+ FOREIGN foreignCellName pt orient]... # [+ {FIXED pt orient | COVER pt orient | PLACED pt orient | UNPLACED}] # [+ WEIGHT weight] # [+ REGION {pt pt | regionName}] # [+ PROPERTY {propName propVal}...]...; # ]... # END COMPONENTS ############################################################################### COMPONENTMASKSHIFT M3 M2 V1 M1 ; COMPONENTS 13 ; - I1 B + EEQMASTER A + GENERATE generator + SOURCE NETLIST + FOREIGN gds2name ( -500 -500 ) N + PLACED ( 100 100 ) N + WEIGHT 100 + REGION region1 + MASKSHIFT 1102 + HALO 5 6 7 8 + HALO SOFT 5 6 7 8 + ROUTEHALO 100 METAL1 M3 + PROPERTY strprop "aString" + PROPERTY intprop 1 + PROPERTY realprop 1.1 + PROPERTY intrangeprop 25 + PROPERTY realrangeprop 25.25 ; - I2 A + SOURCE DIST + ROUTEHALO 100 M2 M3 + PLACED ( 200 200 ) S ; - I3 A + SOURCE USER + PLACED ( 300 300 ) E ; - I4 A + SOURCE TIMING + PLACED ( 400 400 ) W ; - I5 A + PLACED ( 500 500 ) FN ; - I6 A + PLACED ( 600 600 ) FS ; - I7 A + PLACED ( 700 700 ) FE ; - I8 A + PLACED ( 800 800 ) FW ; - I9 A + FIXED ( 900 900 ) N ; - I10 A + COVER ( 1000 1000 ) N ; - I11 A + UNPLACED ; - I12[0] A ; - I12[1] A ; - I13[0][10] A ; - I14\[1\] A ; - vectormodule[1]/scalarname A ; - vectormodule[1]/vectorname[1] A ; - scancell1 CHK3A ; - scancell2 CHK3A ; - scancell3 CHK3A ; - scancell4 CHK3A ; - scancell5 CHK3A ; - scancell6 CHK3A ; - scancell7 CHK3A ; - scancell8 CHK3A ; - scancell9 CHK3A ; - scancell10 CHK3A ; - scancell11 CHK3A ; - scancell12 CHK3A ; - nobrackets A ; - somethingwith[1] A ; - more[]brackets A ; - more[1]brackets A ; - more\[1\]brackets A ; - more[1][2] A ; - more\[1\]\[2\] A ; - more\[2\] A ; - foo\[1\]\[2\]/haha\[3\]\[4\] A ; - foo[2][3]/haha[4][5] A ; - foo\[3\]\[4\]/haha[5][6] A ; - foo[4][5]/haha\[6\]\[7\] A ; - foo[5][6]bar/haha\[7\]\[8\] A ; - foo[6][7]bar/haha[8][9] A ; END COMPONENTS ############################################################################### # PINS numPins ; # [ - pinName + NET netName # [+ SPECIAL] # [+ DIRECTION {INPUT | OUTPUT | INOUT | FEEDTHRU}] # [+ USE {SIGNAL | POWER | GROUND | CLOCK # | ANALOG | SCAN | RESET}] # [+ LAYER layerName pt pt] # [+ {FIXED | PLACED | COVER} pt orient] # [+ ANTENNAPINPARTIALMETALAREA integer [LAYER layerName] ] ... # [+ ANTENNAPINPARTIALMETALSIDEAREA integer [LAYER layerName] ] ... # [+ ANTENNAPINDIFFAREA integer [LAYER layerName] ] ... # [+ ANTENNAPINPARTIALCUTAREA integer [LAYER cutLayerName] ] ... # [+ ANTENNAMODEL OXIDE{1,2,3,4} ] # [+ ANTENNAPINGATEAREA integer [LAYER layerName] ] ... # [+ ANTENNAPINMAXAREACAR integer LAYER layerName ] # [+ ANTENNAPINMAXSIDEAREACAR integer LAYER layerName ] # [+ ANTENNAPINMAXCUTCAR integer LAYER layerName ] # ; # ]... # END PINS ############################################################################### PINS 11 ; - P0 + NET N0 + SPECIAL + DIRECTION INPUT + USE SIGNAL + PORT + LAYER M2 MASK 2 ( 0 0 ) ( 30 135 ) + VIA VIAGEN12_0 ( 0 100 ) + FIXED ( 45 -2160 ) N + PORT + LAYER M1 ( 0 0 ) ( 30 135 ) + VIA M1_M2 MASK 23 ( 100 0 ) + COVER ( 0 -1000 ) N + PORT + LAYER M3 ( 0 0 ) ( 30 135 ) + PLACED ( 1000 -1000 ) N + NETEXPR "power1 VDD" + SUPPLYSENSITIVITY P1 + GROUNDSENSITIVITY P2 + ANTENNAPINPARTIALMETALAREA 5 LAYER METAL1 + ANTENNAPINPARTIALMETALAREA 5 LAYER M2 + ANTENNAPINPARTIALMETALSIDEAREA 10 LAYER METAL1 + ANTENNAPINPARTIALMETALSIDEAREA 10 LAYER M2 + ANTENNAPINDIFFAREA 20 LAYER M1 + ANTENNAPINDIFFAREA 20 LAYER M2 + ANTENNAPINPARTIALCUTAREA 35 LAYER V1 + ANTENNAPINPARTIALCUTAREA 35 LAYER V2 + ANTENNAMODEL OXIDE1 + ANTENNAPINGATEAREA 15 LAYER M1 + ANTENNAPINGATEAREA 15 LAYER M2 + ANTENNAPINMAXAREACAR 25 LAYER M1 + ANTENNAPINMAXSIDEAREACAR 30 LAYER M1 + ANTENNAPINMAXCUTCAR 40 LAYER M1 + ANTENNAMODEL OXIDE2 + ANTENNAPINGATEAREA 115 LAYER M1 + ANTENNAPINGATEAREA 115 LAYER M2 + ANTENNAPINMAXAREACAR 125 LAYER M1 + ANTENNAPINMAXSIDEAREACAR 130 LAYER M1 + ANTENNAPINMAXCUTCAR 140 LAYER M1 + ANTENNAMODEL OXIDE3 + ANTENNAPINGATEAREA 115 LAYER M1 + ANTENNAPINGATEAREA 115 LAYER M2 + ANTENNAPINMAXAREACAR 125 LAYER M1 + ANTENNAPINMAXSIDEAREACAR 130 LAYER M1 + ANTENNAPINMAXCUTCAR 140 LAYER M1 + ANTENNAMODEL OXIDE4 + ANTENNAPINGATEAREA 115 LAYER M1 + ANTENNAPINGATEAREA 115 LAYER M2 + ANTENNAPINMAXAREACAR 125 LAYER M1 + ANTENNAPINMAXSIDEAREACAR 130 LAYER M1 + ANTENNAPINMAXCUTCAR 140 LAYER M1 ; - P1 + NET N1 + DIRECTION OUTPUT + USE POWER + POLYGON M2 MASK 3 ( 0 0 ) ( 0 100 ) ( 50 100 ) ( 50 50 ) ( 100 50 ) ( 100 0 ) + PLACED ( 45 -2160 ) N + NETEXPR "power1 VDD[1]" + ANTENNAPINPARTIALMETALAREA 5 + ANTENNAPINPARTIALMETALSIDEAREA 10 + ANTENNAPINGATEAREA 15 + ANTENNAPINDIFFAREA 20 + ANTENNAPINPARTIALCUTAREA 35 ; - P2 + NET N2 + DIRECTION INOUT + USE GROUND + LAYER M2 MASK 2 ( 0 0 ) ( 30 135 ) + COVER ( 45 -2160 ) N ; - P2.extra1 + NET N2 + DIRECTION INOUT + USE GROUND + LAYER METAL1 ( 0 0 ) ( 10 10 ) + COVER ( 0 0 ) N ; - P3 + NET N3 + DIRECTION FEEDTHRU + USE CLOCK ; - P4 + NET N4 + USE SIGNAL ; - P5 + NET N5 + USE ANALOG ; - P6 + NET N6 + USE SCAN ; - P7 + NET N7 + USE RESET ; - ARRAYPIN[0][10] + NET ARRAYNET[0][10] + LAYER M2 ( 0 0 ) ( 30 135 ) ; - ARRAYPIN.extra2[0][10] + NET ARRAYNET[0][10] + LAYER M2 ( 0 0 ) ( 10 10 ) ; - scanpin + NET SCAN + USE SCAN ; - scanpin2 + NET SCAN + USE SCAN ; - INBUS[1] + NET INBUS<1> + LAYER METAL1 ( 0 0 ) ( 10 10 ) ; - OUTBUS<1> + NET OUTBUS<1> ; - INBUS.extra1[1] + NET INBUS<1> + LAYER M1 ( 10 10 ) ( 100 100 ) ; - vectorpin[0] + NET vectormodule[1]/vectornet[0] ; - scalarpin + NET vectormodule[1]/scalarnet ; - RE_RDY_2 + NET RE_RDY_2 + DIRECTION OUTPUT + USE SIGNAL + PORT + VIA myvia1 MASK 123 ( 500 500 ) + FIXED ( -390000 0 ) N + PORT + POLYGON METAL1 MASK 22 ( 40000 40000 ) ( 80000 40000 ) ( 80000 -40000 ) ( 40000 -40000 ) ( 40000 -80000 ) ( -40000 -80000 ) ( -40000 -40000 ) ( -80000 -40000 ) ( -80000 40000 ) ( -40000 40000 ) ( -40000 80000 ) ( 40000 80000 ) + FIXED ( -190000 0 ) N + PORT + VIA myvia1 ( 100 100 ) + FIXED ( 290000 0 ) N ; END PINS ############################################################################### # PINPROPERTIES num; # [- { compName | PIN } pinName # [+ PROPERTY {propName propVal}...]...; # ]... # END PINPROPERTIES ############################################################################### PINPROPERTIES 2 ; - PIN P0 + PROPERTY strprop "aString" + PROPERTY intprop 1 + PROPERTY realprop 1.1 + PROPERTY intrangeprop 25 + PROPERTY realrangeprop 25.25 ; - I1 A + PROPERTY strprop "aString" + PROPERTY intprop 1 + PROPERTY realprop 1.1 + PROPERTY intrangeprop 25 + PROPERTY realrangeprop 25.25 ; END PINPROPERTIES ############################################################################### # BLOCKAGES numBlockages ; # - { LAYER layerName # [+ COMPONENT compName # |+ SLOTS # |+ FILLS # | + PUSHDOWN ] # | PLACEMENT # [ + COMPONENT compName # | + PUSHDOWN ] # } # RECT pt pt # [RECT pt pt ] ... ; # ... # END BLOCKAGES ############################################################################### BLOCKAGES 8 ; - LAYER METAL1 + MASK 1 RECT ( 60 70 ) ( 80 90 ) ; - LAYER M2 + SLOTS + PUSHDOWN + EXCEPTPGNET + COMPONENT I1 + MASK 3 POLYGON ( 100 100 ) ( 100 200 ) ( 150 200 ) ( 150 150 ) ( 200 150 ) ( 200 100 ) ; - LAYER M2 + SLOTS + MASK 2 RECT ( 10 20 ) ( 40 50 ) ; - LAYER METAL1 + FILLS + MASK 1 RECT ( -10 20 ) ( 30 40 ) ; - LAYER M1 + PUSHDOWN + SPACING 3 + MASK 1 RECT ( 50 30 ) ( 55 40 ) ; - LAYER M1 + EXCEPTPGNET + DESIGNRULEWIDTH 45 + MASK 1 RECT ( 50 30 ) ( 55 40 ) ; - PLACEMENT # POLYGON ( 100 100 ) ( 100 200 ) ( 150 200 ) ( 150 150 ) ( 200 150 ) ( 200 100 ) ; RECT ( -15 0 ) ( 0 20 ) RECT ( -15 20 ) ( 30 40 ) RECT ( 30 5 ) ( 50 40 ) RECT ( -10 -15 ) ( 50 0 ) ; #floating - PLACEMENT + PARTIAL 0.40 + PUSHDOWN + COMPONENT I1 RECT ( -10 0 ) ( 0 20 ) RECT ( -10 20 ) ( 30 40 ) RECT ( 30 0 ) ( 50 40 ) RECT ( -10 -5 ) ( 50 0 ) ; #coordinate are absolute - PLACEMENT + PUSHDOWN RECT ( -5 0 ) ( 0 20 ) RECT ( -5 20 ) ( 30 40 ) RECT ( 30 0 ) ( 25 40 ) RECT ( -5 0 ) ( 50 10 ) ; #coordinate are absolute - PLACEMENT + SOFT RECT ( 50 30 ) ( 55 40 ) ; - PLACEMENT + PARTIAL 0.40 RECT ( 50 30 ) ( 55 40 ) ; END BLOCKAGES ############################################################################### # SPECIALNETS numNets ; # [- netName [(compNameRegExpr pinName[+ SYNTHESIZED])]... # [+ WIDTH layerName width]... # [+ VOLTAGE mvolts] # [+ SOURCE {NETLIST | DIST | USER | TIMING}] # [+ FIXEDBUMP ] # [+ ORIGINAL netName] # [+ USE # { SIGNAL | POWER | GROUND | CLOCK # | SCAN | RESET | TIEOFF | ANALOG }] # [+PATTERN # {STEINER | BALANCED | TRUNK}] # [+ ESTCAP wireCapacitance] # [+ WEIGHT weight] # [+ PROPERTY {propName propVal}...]...;]... # [+ {ROUTED | FIXED | COVER} layerName width # [+ SHAPE {RING | STRIPE | FOLLOWPIN | IOWIRE # | COREWIRE | BLOCKWIRE | FILLWIRE # | PADRING | BLOCKRING | BLOCKAGEWIRE}] # (x y) [ (x *) | (* y) | viaName ]... # [ NEW layerName width # [+ SHAPE {RING | STRIPE | FOLLOWPIN | IOWIRE | COREWIRE # | BLOCKWIRE | FILLWIRE # | PADRING | BLOCKRING | BLOCKAGEWIRE}] # (x y) [ (x *) | (* y) | # viaName [ DO numX by numY STEP stepX stepY] ]...]...] # [+ SHIELD shieldedNetName layerName width # [+ SHAPE {RING | STRIPE | FOLLOWPIN | IOWIRE # | COREWIRE | BLOCKWIRE | FILLWIRE # | PADRING | BLOCKRING | BLOCKAGEWIRE}] # (x y) [ (x *) | (* y) | viaName ]... # [NEW layerName width # [+ SHAPE {RING | STRIPE | FOLLOWPIN | IOWIRE # | COREWIRE | BLOCKWIRE | FILLWIRE | BLOCKAGEWIRE}] # (x y) [ [ MASK maskNum ](x *) | [ MASK maskNum ] (* y) | # [ MASK viaMaskNum ] viaName [ DO numX by numY STEP stepX stepY] ]...]...]... # ;]... # END SPECIALNETS ############################################################################### SPECIALNETS 5 ; - SN1 ( I1 Z.extra1 ) ( I2 Z ) ( I3 Z ) ( * Z ) + WIDTH METAL1 200 + WIDTH M2 300 + VOLTAGE 3200 + SOURCE NETLIST + FIXEDBUMP + ORIGINAL VDD + USE SIGNAL + PATTERN STEINER + ESTCAP 1500000 + WEIGHT 30 + PROPERTY strprop "aString" + PROPERTY intprop 1 + PROPERTY realprop 1.1 + PROPERTY intrangeprop 25 + PROPERTY realrangeprop 25.25 + ROUTED M1 120 + SHAPE RING ( 14000 341440 ) ( 9600 * ) ( * 282400 ) M1_M2 DO 2 BY 2 STEP 200 200 ( 2400 * ) NEW METAL1 120 + SHAPE STRIPE ( 2400 282400 ) ( 240 * ) M1_M2 NEW M1 120 + SHAPE FOLLOWPIN ( 2500 282400 ) ( 250 * ) VIAGEN12_0 N NEW M1 120 + SHAPE IOWIRE ( 2600 282400 ) ( 260 * ) VIAGEN12_2 NEW METAL1 120 + SHAPE COREWIRE ( 2700 282400 ) ( 270 * ) VIAGEN12_3 NEW M1 120 + SHAPE BLOCKWIRE ( 2800 282400 ) ( 280 * ) CUSTOMVIA VIAGEN12_1 NEW M1 120 + SHAPE FILLWIRE ( 2900 282400 ) ( 290 * ) VIAGEN12_4 NEW M1 120 + SHAPE FILLWIREOPC ( 2900 282400 ) VIAGEN12_4 NEW M1 120 + SHAPE BLOCKAGEWIRE ( 2000 282400 ) ( 200 * ) VIAGEN12 NEW M1 120 + SHAPE BLOCKRING ( 2100 282400 ) ( 210 * ) NEW M1 120 + SHAPE PADRING ( 2200 282400 ) ( 220 * ) NEW M1 200 ( 3000 3000 ) TURNM1_1 NEW M2 200 ( 3100 3100 ) ( 3200 3100 ) TURNM2_1 NEW M2 200 ( 3300 3300 ) ( 3400 3300 ) TURNM2_1 ( 3400 3600 ) NEW M2 200 ( 400 400 ) M1_M2 ( * * ) # case : pt via ( * * ) NEW M2 200 ( 500 500 ) M1_M2 ( * * ) M1_M2 # case : pt via ( * * ) via NEW M2 200 ( 700 700 ) M1_M2 ( * * ) ( * 800 ) # case : pt via ( * * ) pt NEW M2 15000 + STYLE 9 ( 105000 105000 ) ( 50000 50000 ) NEW M2 15000 + STYLE 8 ( 105000 155000 ) ( * 105000 ) + COVER METAL1 100 ( 100 100 ) ( 100 200 ) + FIXED M1 100 ( 200 200 ) ( 300 200 ) + ROUTED M1 120 + SHAPE DRCFILL ( 8000 8000 ) ( 8000 8200 ) ( 8400 8200 ) + SHIELD N1 M2 90 ( 14100 340440 ) ( 8160 * ) M1_M2 ( * 301600 ) M1_M2 FN DO 2 BY 2 STEP 200 200 ( 2400 * ) ; - VDD + VOLTAGE 5000 + FIXED + SHAPE RING + MASK 2 + POLYGON METAL1 ( 0 0 ) ( 0 100 ) ( 100 100 ) ( 200 200 ) ( 200 0 ) + COVER + SHAPE RING + MASK 3 + POLYGON M2 ( 100 100 ) ( * 200 ) ( 200 * ) ( 300 300 ) ( 300 100 ) + VIA M1_M2 N ( 2400 0 ) ( 10 10 ) + FIXED + SHAPE RING + RECT M3 ( 0 0 ) ( 10 10 ) + SHIELD N1 + SHAPE BLOCKRING + RECT M3 ( 0 0 ) ( 10 10 ) + ROUTED M1 20 ( 10 0 ) MASK 3 ( 10 20 ) VIAGEN12_4 NEW M2 100 ( 10 10 ) ( 20 10 ) MASK 1 ( 20 20 ) MASK 031 VIAGEN12_3 + SHAPE STRIPE + VIA VIA12_2 ( 30 30 ) ( 40 40 ) + ROUTED M1 100 ( 0 0 100 ) ( 0 0 50 ) ( 100 0 50 ) M1_M2 ( 100 100 50 ) + ROUTED M1 50 + STYLE 0 ( 0 0 ) ( 150 150 ) + ROUTED M1 50 + STYLE 0 ( 150 150 ) ( 0 0 ) + ROUTED M1 50 + STYLE 0 ( 150 0 ) ( 0 150 ) + ROUTED M1 50 + STYLE 0 ( 0 150 ) ( 150 0 ) + ROUTED M1 50 + STYLE 1 ( 150 150 ) ( 300 0 ) ( 400 0 ) + ROUTED M2 100 + SHAPE RING + STYLE 0 ( 0 0 ) ( 100 100 ) ( 200 100 ) + ROUTED M1 100 + STYLE 2 ( 0 0 ) M1_M2 ( 600 * ) M1_M2 + ROUTED M1 50 ( 150 150 ) ( 300 300 ) ; - SN2 + ROUTED M2 100 + STYLE 3 ( 0 0 ) ( 150 150 ) ( 300 0 ) NEW M2 100 ( 300 0 ) ( 400 0 ) + ROUTED M1 100 ( 0 0 ) ( 150 150 ) ( 300 0 ) ( 400 0 ) + ROUTED M1 4000 + STYLE 5 ( 0 0 ) ( 1000 0 ) + ROUTED M1 4000 + STYLE 6 ( 0 0 ) ( 1000 1000 ) + ROUTED M1 1000 + STYLE 7 ( 0 0 ) ( * * ) ; - SN3 + USE GROUND + ROUTED M2 100 ( 100 0 ) ( * 3000 ) NEW M3 100 ( 0 1000 ) ( 3000 * ) + SHIELD N1 M2 40 + SHAPE FILLWIRE ( 300 80 ) ( * 1920 ) NEW M2 40 + SHAPE FILLWIRE ( 500 80 ) ( * 1920 ) ; - DUMMY + ROUTED M1 100 + SHAPE FILLWIRE ( 0 0 ) ( 100 0 ) ; - DUMMY2 + ROUTED M2 100 + SHAPE FILLWIREOPC ( 0 0 ) ( 100 0 ) ; END SPECIALNETS ############################################################################### # NETS numNets ; # [- { netName [( {compName | PIN} pinName # [+ SYNTHESIZED])]... # | MUSTJOIN (compName pinName) } # [+ SHIELDNET shieldNetName ] ... # [+ NOSHIELD lastSegment ] ... # [+ VPIN vpinName [LAYER layerName] pt pt # [ { PLACED | FIXED | COVER } pt orient ] ]... # [+ SUBNET subnetName # [( {compName | PIN} pinName)| (VPIN vpinName)]... # [NONDEFAULTRULE rulename] # [regularWiring]] # [+ XTALK num] # [+ NONDEFAULTRULE ruleName] # [regularWiring]... # [+ SOURCE {NETLIST | DIST | USER | TEST | TIMING}] # [+ FIXEDBUMP ] # [+ FREQUENCY freq ] # [+ ORIGINAL netName] # [+ USE # { SIGNAL | POWER | GROUND | CLOCK # | SCAN | RESET | TIEOFF | ANALOG}] # [+ PATTERN # {STEINER | BALANCED }] # [+ ESTCAP wireCapacitance] # [+ WEIGHT weight] # [+ PROPERTY {propName propVal}...]...; # ]... # END NETS # # regularWiring = # {+ ROUTED | + FIXED | + COVER | + NOSHIELD} # layerName [TAPER | TAPERRULE rulename] [STYLE styleNum ] # routingPoints # [NEW layerName [TAPER | TAPERRULE rulename] [STYLE styleNum ] # routingPoints # ] ... # # routingPoints = # ( x y [value] ) # {( x * [value]) | ( * y [value]) | ( * * [value] ) | viaName | + RECT ( delta1x delta1y delta2x delta2y ) | + VIRTUAL ( x y ) ]...] ############################################################################### NETS 6 ; - SCAN ( scancell1 PA10 + SYNTHESIZED ) ( scancell2 PA2 + SYNTHESIZED ) + SOURCE TEST ; - N1 ( I1 A ) ( PIN P0 ) + SHIELDNET SN1 + SHIELDNET VDD + FIXED M3 ( 10 0 ) MASK 3 ( 10 20 ) MASK 031 M1_M2 + ROUTED M1 ( 0 0 ) ( 5 0 ) VIRTUAL ( 2 3 ) MASK 1 ( 7 7 ) + ROUTED M1 ( 0 0 ) ( 5 0 ) VIRTUAL ( 2 3 ) RECT ( 1 2 3 4 ) ( 7 7 ) + FIXED M1 ( 0 0 ) ( 5 0 ) ( 7 7 ) + FIXED M1 ( 0 0 ) ( 5 0 ) MASK 3 RECT ( 1 2 3 4 ) ( 7 7 ) + NOSHIELD M2 ( 14100 341440 ) ( 14000 * ) M1_M2 + VPIN N1_VP0 LAYER M3 ( -333 -333 ) ( 333 333 ) PLACED ( 189560 27300 ) N + VPIN N1_VP1 LAYER M3 ( -333 -333 ) ( 333 333 ) PLACED ( 189560 27300 ) S + VPIN N1_VP2 LAYER M3 ( -333 -333 ) ( 333 333 ) PLACED ( 189560 27300 ) E + VPIN N1_VP3 LAYER M3 ( -333 -333 ) ( 333 333 ) PLACED ( 189560 27300 ) W + VPIN N1_VP4 LAYER M3 ( -333 -333 ) ( 333 333 ) PLACED ( 189560 27300 ) FN + VPIN N1_VP5 LAYER M3 ( -333 -333 ) ( 333 333 ) PLACED ( 189560 27300 ) FS + VPIN N1_VP6 LAYER M3 ( -333 -333 ) ( 333 333 ) PLACED ( 189560 27300 ) FE + VPIN N1_VP7 LAYER M3 ( -333 -333 ) ( 333 333 ) PLACED ( 189560 27300 ) FW + VPIN N1_VP8 ( -333 -333 ) ( 333 333 ) + SUBNET N1_SUB0 ( I2 A ) ( PIN P1 ) ( VPIN N1_VP9 ) NONDEFAULTRULE RULE1 ROUTED M1 ( 168280 63300 700 ) ( * 64500 ) M1_M2 ( 169400 * 800 ) M2_M3 + XTALK 2 + NONDEFAULTRULE RULE1 + ROUTED M2 ( 14000 341440 ) ( 9600 * ) ( * 282400 ) nd1VIA12 ( 2400 * ) TURNM1_1 NEW M1 TAPER ( 2400 282400 ) ( 240 * ) + SOURCE NETLIST + FIXEDBUMP + FREQUENCY 100 + ORIGINAL N2 + USE SIGNAL + PATTERN STEINER + ESTCAP 1500000 + WEIGHT 100 + PROPERTY strprop "aString" + PROPERTY intprop 1 + PROPERTY realprop 1.1 + PROPERTY intrangeprop 25 + PROPERTY realrangeprop 25.25 ; - N2 ( I3 A ) ( PIN P2 ) + FIXED M2 ( 14000 341440 ) ( 9600 * ) ( * 282400 ) M1_M2 ( 2400 * ) NEW M1 TAPERRULE RULE1 ( 2400 282400 ) ( 240 * ) + SOURCE DIST + PATTERN BALANCED + WEIGHT 500 ; - N3 ( I4 A ) ( PIN P3 ) + COVER M2 ( 14000 341440 ) ( 9600 * ) ( * 282400 ) M1_M2 ( 2400 * ) VIAGEN12_0 N NEW M1 ( 2400 282400 ) ( 240 * ) NEW M2 ( 400 400 ) M1_M2 N ( * * ) # case : pt via ( * * ) NEW M2 ( 500 500 ) M1_M2 ( * * ) M1_M2 # case : pt via ( * * ) via NEW M2 ( 600 600 10 ) M1_M2 S ( * * 30 ) ( * 800 ) # case : pt via ( * * ext ) NEW M2 ( 700 700 ) M1_M2 ( * * ) ( * 800 ) # case : pt via ( * * ) pt NEW M1 ( 0 0 ) M1_M2 FS M2_M3 NEW M3 ( 0 0 ) M2_M3 W M1_M2 NEW M1 ( 10 10 ) ( 20 10 ) MASK 1 ( 20 20 ) MASK 031 VIA1_2 + SOURCE USER + PATTERN TRUNK ; - N4 ( I5 A ) ( PIN P4 ) + SOURCE TEST + ROUTED M2 STYLE 1 ( 0 0 ) ( 150 150 ) ( 300 0 ) ( 400 0 ) + ROUTED M1 ( 150 150 ) MASK 3 ( 300 300 ) MASK 032 VIAGEN12 + NOSHIELD M1 ( 150 150 30 ) ( 150 300 30 ) + ROUTED M1 STYLE 0 ( 0 0 ) ( 150 150 ) NEW M1 STYLE 1 ( 150 150 ) MASK 2 ( 300 0 ) ( 400 0 ) + USE GROUND ; - N5 ( I6 A ) ( PIN P5 ) + ROUTED M2 STYLE 3 ( 0 1000 ) ( 150 1150 ) ( 300 1000 ) ( 400 1000 ) + ROUTED M1 ( 0 1000 ) ( 150 1150 ) ( 300 1000 ) ( 400 1000 ) + SOURCE TIMING ; - N6 + NONDEFAULTRULE RULE2 + ROUTED M1 STYLE 4 ( 1000 0 ) ( 1100 100 ) + ROUTED M1 STYLE 4 ( 1200 100 ) ( 1300 0 ) + ROUTED M1 STYLE 4 ( 1000 -100 ) ( 1300 -100 ) ; - SCAN ( scancell1 PA10 + SYNTHESIZED ) ( scancell2 PA2 + SYNTHESIZED ) + SOURCE TEST ; - MUSTJOIN_1 ( I7 A ) ; - ARRAYNET[0][10] ; - vectormodule[1]/vectornet[0] ; - vectormodule[1]/scalarnet ; END NETS ############################################################################### # SCANCHAINS numScanChains ; # [- chainName # [+ COMMONSCANPINS [(IN pin)][(OUT pin)]] # [+ START {fixedInComp | PIN} [outPin] ] # {+ FLOATING {floatingComp [(IN pin)] [(OUT pin)]}...} # [+ ORDERED # {fixedComp [(IN pin)] [(OUT pin)] # fixedComp [(IN pin)] [(OUT pin)]} # [fixedComp [(IN pin)] [(OUT pin)]] ...}] # [+ STOP {fixedOutComp | PIN} [inPin] ] # ;] # ... # END SCANCHAINS ############################################################################### SCANCHAINS 2 ; - chain1 + PARTITION clock1 MAXBITS 256 # DEF5.5 + COMMONSCANPINS ( IN PA1 ) ( OUT PA2 ) + START I1 B + STOP I4 B + ORDERED scancell1 ( IN PA2 ) scancell2 ( OUT PA10 ) ( BITS 4 ) + FLOATING scancell3 ( IN PA2 ) scancell4 ( OUT PA10 ) ( BITS 4 ) ; - chain2 + PARTITION clock1 MAXBITS 256 # DEF5.5 + COMMONSCANPINS ( IN PA1 ) ( OUT PA2 ) + START PIN scanpin + STOP PIN scanpin2 + ORDERED scancell5 ( IN PA2 ) scancell6 ( OUT PA10 ) ( BITS 4 ) + FLOATING scancell7 ( IN PA2 ) scancell8 ( OUT PA10 ) ( BITS 4 ) ; - chain3 + PARTITION clock1 MAXBITS 256 # DEF5.5 + COMMONSCANPINS ( IN PA1 ) ( OUT PA2 ) + START I5 B + STOP I6 B + ORDERED scancell9 ( IN PA2 ) scancell10 ( OUT PA10 ) ( BITS 4 ) + FLOATING scancell11 ( IN PA2 ) scancell12 ( OUT PA10 ) ( BITS 4 ) ; END SCANCHAINS ############################################################################### # GROUPS numGroups ; # [- groupName compNameRegExpr... # [+ SOFT # [MAXHALFPERIMETER value] # [MAXX value][MAXY value]] # [+ REGION {pt pt | regionName} ] # [+ PROPERTY {propName propVal}...]...;]... # END GROUPS ############################################################################### GROUPS 3 ; - group1 I3 I2 + SOFT MAXHALFPERIMETER 4000 MAXX 100000 MAXY 100000 + REGION region1 + PROPERTY strprop "aString" + PROPERTY intprop 1 + PROPERTY realprop 1.1 + PROPERTY intrangeprop 25 + PROPERTY realrangeprop 25.25 ; - group2 I4 + SOFT MAXHALFPERIMETER 4000 + REGION ( 0 0 ) ( 100 100 ) ; - region2 I7 I8 + REGION region2 ; END GROUPS ############################################################################### # SLOTS numSlots ; # - { LAYER layerName # RECT pt pt # [RECT pt pt] ... ; # } # ... # END SLOTS ############################################################################### SLOTS 3 ; - LAYER M1 RECT ( 3 3 ) ( 6 8 ) ; - LAYER M2 RECT ( 3 3 ) ( 6 8 ) POLYGON ( 0 0 ) ( 0 10 ) ( 10 10 ) ( 10 20 ) ( 20 20 ) ( 20 0 ) ; - LAYER M3 RECT ( 3 3 ) ( 6 8 ) ; END SLOTS ############################################################################### # FILLS numFills ; # - { LAYER layerName # RECT pt pt # [RECT pt pt] ... ; # } # ... # END FILLS ############################################################################### FILLS 5 ; - VIA myvia1 + MASK 2 + OPC ( 5000 5000 ) ( 800 800 ) ; - LAYER M1 + MASK 2 RECT ( 0 2 ) ( 1 10 ) ; - LAYER M2 + OPC RECT ( 0 2 ) ( 1 10 ) POLYGON ( 0 0 ) ( 0 10 ) ( 10 10 ) ( 10 20 ) ( 20 20 ) ( 20 0 ) ; - LAYER M3 RECT ( 0 2 ) ( 1 10 ) ; - VIA M1_M2 + MASK 202 + OPC ( 2400 0 ) ( 10 10 ) ; - VIA VIAGEN12_0 + OPC ( 100 100 ) ( 200 100 ) ; END FILLS ############################################################################### # BEGINEXT "tag" # extensionText # ENDEXT ############################################################################### BEGINEXT "tag" - CREATOR "Cadence" ; - OTTER furry + PROPERTY arrg later ; - SEAL cousin to WALRUS ; ENDEXT END DESIGN