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

`case' expression with list literal behaves differently in pcDefinePCell than in the toplevel

$
0
0
;; The `case' expression in this pcell is expected to return "V2", but it ;; returns `nil' instead. Why? (pcDefinePCell (list (ddGetObj "dungeon") "case_in_pcell" "layout") ((metal1_layer "M2") (metal2_layer "M3")) (let (via_layer) (fprintf stdout "%A\n" (list metal1_layer metal2_layer)) (case (list metal1_layer metal2_layer) ((("M1" "M2")) "V1") ((("M2" "M3")) "V2")) (fprintf stdout "%A\n" via_layer) (rodCreateRect ?layer via_layer))) > (load "~/skill/case_in_pcell.il") Generating Pcell for 'case_in_pcell layout'. ("M2" "M3") nil *WARNING* (ROD-1011) rodCreateRect: required argument "?layer" not specified or nil *WARNING* (ROD-1075) rodCreateRect: command failed in "dungeon/case_in_pcell/layout" t > getVersion "@(#)$CDS: virtuoso version ICADV12.3-64b 09/01/2017 10:34 (sjfhw305) $" > getVersion t "sub-version ICADV12.3-64b.500.14 " > metal1_layer = "M2" "M2" > metal2_layer = "M3" "M3" > (case (list metal1_layer metal2_layer) ((("M1" "M2")) "V1") ((("M2" "M3")) "V2")) "V2" Am I going insane? ⊙﹏⊙

Viewing all articles
Browse latest Browse all 33813

Trending Articles