Quantcast
Channel: Jason Andrews Blog
Viewing all articles
Browse latest Browse all 33813

Innovus NanoRoute Errors with LEF DEFAULT constraint group

$
0
0
I'm having trouble getting the nanoroute tool to route my design. I receive a slew of warnings related to the LEF DEFAULT rule. These warnings and errors are listed at the end of this post for reference. For some reason, the tool is not recognizing the via definitions in the LEFDefaultRouteSpec. I dumped my technology library to a tech file, and the library includes the following information for the via definitions and LEFDefaultRouteSpec constraint group: ;******************************** ; VIADEFS ;******************************** viaDefs( standardViaDefs( ;( viaDefName layer1 layer2 (cutLayer cutWidth cutHeight [resistancePerCut]) ; (cutRows cutCol (cutSpace) [(l_cutPattern)]) ; (layer1Enc) (layer2Enc) (layer1Offset) (layer2Offset) (origOffset) ; [implant1 (implant1Enc) [implant2 (implant2Enc) [well/substrate]]]) ;( -------------------------------------------------------------------------- ) ( M1_PSUB COMP METAL1 ("CNT" 0.16 0.16) (1 1 (0.2 0.2)) (0.1 0.1) (0.08 0.08) (0.0 0.0) (0.0 0.0) (0.0 0.0) PPLUS (0.18 0.18) ) ( AL_MT METAL5 LASER_ALIGN ("Win2" 5.0 5.0) (1 1 (2.0 2.0)) (1.5 1.5) (1.5 1.5) (0.0 0.0) (0.0 0.0) (0.0 0.0) ) ( TM_M4s METAL4 METAL5 ("VIA4" 0.36 0.36) (1 1 (0.35 0.35)) (0.09 0.09) (0.09 0.09) (0.0 0.0) (0.0 0.0) (0.0 0.0) ) ( M4_M3s METAL3 METAL4 ("VIA3" 0.19 0.19) (1 1 (0.22 0.22)) (0.05 0.05) (0.05 0.05) (0.0 0.0) (0.0 0.0) (0.0 0.0) ) ( M3_M2s METAL2 METAL3 ("VIA2" 0.19 0.19) (1 1 (0.22 0.22)) (0.05 0.05) (0.05 0.05) (0.0 0.0) (0.0 0.0) (0.0 0.0) ) ( M2_M1s METAL1 METAL2 ("VIA1" 0.19 0.19) (1 1 (0.22 0.22)) (0.05 0.05) (0.05 0.05) (0.0 0.0) (0.0 0.0) (0.0 0.0) ) ( TM_M4 METAL4 METAL5 ("VIA4" 0.36 0.36) (1 1 (0.54 0.54)) (0.09 0.09) (0.09 0.09) (0.0 0.0) (0.0 0.0) (0.0 0.0) ) ( M4_M3 METAL3 METAL4 ("VIA3" 0.19 0.19) (1 1 (0.29 0.29)) (0.05 0.05) (0.05 0.05) (0.0 0.0) (0.0 0.0) (0.0 0.0) ) ( M3_M2 METAL2 METAL3 ("VIA2" 0.19 0.19) (1 1 (0.29 0.29)) (0.05 0.05) (0.05 0.05) (0.0 0.0) (0.0 0.0) (0.0 0.0) ) ( M2_M1 METAL1 METAL2 ("VIA1" 0.19 0.19) (1 1 (0.29 0.29)) (0.05 0.05) (0.05 0.05) (0.0 0.0) (0.0 0.0) (0.0 0.0) ) ( M1_POLY2 POLY2 METAL1 ("CNT" 0.16 0.16) (1 1 (0.2 0.2)) (0.07 0.07) (0.05 0.05) (0.0 0.0) (0.0 0.0) (0.0 0.0) ) ( M1_PACTIVE COMP METAL1 ("CNT" 0.16 0.16) (1 1 (0.2 0.2)) (0.095 0.095) (0.05 0.05) (0.0 0.0) (0.0 0.0) (0.0 0.0) PPLUS (0.18 0.18) ) ( M1_PF1VA COMP METAL1 ("CNT" 0.16 0.16) (1 1 (0.2 0.2)) (0.095 0.095) (0.05 0.05) (0.0 0.0) (0.0 0.0) (0.0 0.0) PPLUS (0.12 0.12) PF1VA (0.37 0.37) ) ( M1_NW1A COMP METAL1 ("CNT" 0.16 0.16) (1 1 (0.2 0.2)) (0.095 0.095) (0.05 0.05) (0.0 0.0) (0.0 0.0) (0.0 0.0) NPLUS (0.12 0.12) NW1A (0.37 0.37) ) ( M1_PFIELD COMP METAL1 ("CNT" 0.16 0.16) (1 1 (0.2 0.2)) (0.095 0.095) (0.05 0.05) (0.0 0.0) (0.0 0.0) (0.0 0.0) PPLUS (0.12 0.12) PFIELD (0.37 0.37) ) ( M1_NWELL COMP METAL1 ("CNT" 0.16 0.16) (1 1 (0.2 0.2)) (0.095 0.095) (0.05 0.05) (0.0 0.0) (0.0 0.0) (0.0 0.0) NPLUS (0.12 0.12) NWELL (0.37 0.37) NWELL ) ( M1_NACTIVE COMP METAL1 ("CNT" 0.16 0.16) (1 1 (0.2 0.2)) (0.095 0.095) (0.05 0.05) (0.0 0.0) (0.0 0.0) (0.0 0.0) NPLUS (0.18 0.18) ) ) ;standardViaDefs customViaDefs( ;( viaDefName libName cellName viewName layer1 layer2 resistancePerCut) ;( ---------- ------- -------- -------- ------ ------ ----------------) ( M2_M1_via gf013hv30v M2_M1 via METAL1 METAL2 0.0) ( M3_M2_via gf013hv30v M3_M2 via METAL2 METAL3 0.0) ( M4_M3_via gf013hv30v M4_M3 via METAL3 METAL4 0.0) ( TM_M4_via gf013hv30v TM_M4 via METAL4 METAL5 0.0) ( M2_M1s_via gf013hv30v M2_M1s via METAL1 METAL2 0.0) ( M3_M2s_via gf013hv30v M3_M2s via METAL2 METAL3 0.0) ( M4_M3s_via gf013hv30v M4_M3s via METAL3 METAL4 0.0) ( TM_M4s_via gf013hv30v TM_M4s via METAL4 METAL5 0.0) ) ;customViaDefs ) ;viaDefs ;( group [override] [definition] [operator] ) ;( ----- ---------- ------------ ---------- ) ( "LEFDefaultRouteSpec_gf013hv30v" nil "LEFDefaultRouteSpec" interconnect( ( validLayers (METAL1 METAL2 METAL3 METAL4 METAL5 LASER_ALIGN ) ) ( validVias (M1_NW1A M1_NWELL M1_PFIELD M1_PF1VA M1_NACTIVE M1_PACTIVE M1_PSUB M1_POLY2 M2_M1 M2_M1s M3_M2 M3_M2s M4_M3 M4_M3s TM_M4 TM_M4s AL_MT ) ) ) ;interconnect I noticed that the customViaDefs are all of the format "*_via*", but the Default Route Spec doesn't include any names in that format. I'm thinking it's possible that the router is checking the list of validVias and since it only finds standard vias and not custom ones, it cannot perform the routing. What can I do to fix this issue? Thanks, Rob Full list of warnings/errors: #WARNING (NRDB-2040) Rule LEF_DEFAULT doesn't specify any vias that satisfy all of the area rules for layer METAL2 METAL3 METAL4 METAL5 #WARNING (NRDB-776) No default up VIA for LAYER METAL1 in RULE LEF_DEFAULT. #WARNING (NRDB-776) No default up VIA for LAYER METAL2 in RULE LEF_DEFAULT. #WARNING (NRDB-777) No default down VIA for LAYER METAL2 in RULE LEF_DEFAULT. #WARNING (NRDB-776) No default up VIA for LAYER METAL3 in RULE LEF_DEFAULT. #WARNING (NRDB-777) No default down VIA for LAYER METAL3 in RULE LEF_DEFAULT. #WARNING (NRDB-776) No default up VIA for LAYER METAL4 in RULE LEF_DEFAULT. #WARNING (NRDB-777) No default down VIA for LAYER METAL4 in RULE LEF_DEFAULT. #WARNING (NRDB-776) No default up VIA for LAYER METAL5 in RULE LEF_DEFAULT. #WARNING (NRDB-777) No default down VIA for LAYER METAL5 in RULE LEF_DEFAULT. #WARNING (NRDB-777) No default down VIA for LAYER LASER_ALIGN in RULE LEF_DEFAULT. #WARNING (NRDB-778) No multicut vias which meet all area rules for LAYER METAL1 are defined in RULE LEF_DEFAULT. When a LEF MINIMUMCUT rule is defined for a layer, you must define multicut vias for the layer in the LEF file. Edit your LEF file and read it in again. #WARNING (NRDB-778) No multicut vias which meet all area rules for LAYER METAL2 are defined in RULE LEF_DEFAULT. When a LEF MINIMUMCUT rule is defined for a layer, you must define multicut vias for the layer in the LEF file. Edit your LEF file and read it in again. #WARNING (NRDB-778) No multicut vias which meet all area rules for LAYER METAL3 are defined in RULE LEF_DEFAULT. When a LEF MINIMUMCUT rule is defined for a layer, you must define multicut vias for the layer in the LEF file. Edit your LEF file and read it in again. #WARNING (NRDB-778) No multicut vias which meet all area rules for LAYER METAL4 are defined in RULE LEF_DEFAULT. When a LEF MINIMUMCUT rule is defined for a layer, you must define multicut vias for the layer in the LEF file. Edit your LEF file and read it in again. #WARNING (NRDB-778) No multicut vias which meet all area rules for LAYER METAL5 are defined in RULE LEF_DEFAULT. When a LEF MINIMUMCUT rule is defined for a layer, you must define multicut vias for the layer in the LEF file. Edit your LEF file and read it in again. # METAL1 H Track-Pitch = 0.340 Line-2-Via Pitch = 0.340 # METAL2 V Track-Pitch = 0.410 Line-2-Via Pitch = 0.410 # METAL3 H Track-Pitch = 0.410 Line-2-Via Pitch = 0.410 # METAL4 V Track-Pitch = 0.410 Line-2-Via Pitch = 0.410 # METAL5 H Track-Pitch = 3.280 Line-2-Via Pitch = 4.500 #WARNING (NRAG-44) Track pitch is too small compared with line-2-via pitch. # LASER_ALIGN V Track-Pitch = 5.000 Line-2-Via Pitch = 5.000 #ERROR (NRDB-158) Missing via from LAYER METAL1 to LAYER METAL2 in RULE LEF_DEFAULT. Add the missing via or remove all vias from RULE LEF_DEFAULT so that NR can use the vias from the default RULE.

Viewing all articles
Browse latest Browse all 33813

Trending Articles