From 23122890f77fead2e1ea226072b10c3eb2b0a9c5 Mon Sep 17 00:00:00 2001 From: Nick Downing Date: Fri, 18 Jul 2025 22:57:42 +1000 Subject: [PATCH] In /8085 put pads layer at beginning of stack, means we cannot see it anymore in the layer/net images but the assignment to item numbers and hence net numbers will be more stable for the external pins, generate layers_rev.png so we can see the top view of chip with pads visible and metal having priority over poly/diff --- 8085/Makefile | 29 ++++++++++++++++++++--------- 8085/conn_matrix.txt | 24 ++++++++++++------------ scripts/net_sizes.py | 4 ++-- 3 files changed, 34 insertions(+), 23 deletions(-) diff --git a/8085/Makefile b/8085/Makefile index 5942927..02af468 100644 --- a/8085/Makefile +++ b/8085/Makefile @@ -5,7 +5,8 @@ net_gnd.png \ net_vcc.png \ net_phi0.png \ net_phi1.png \ -layers.png +layers.png \ +layers_rev.png #buried2.png \ #diff2.png \ #metal2.png \ @@ -14,39 +15,49 @@ layers.png #vias2.png channels.txt: nets.txt - ../scripts/net_channels.py nets.txt 2,3,4,5 >$@ + ../scripts/net_channels.py nets.txt 3,4,5,6 >$@ sizes.txt: nets.txt ../scripts/net_sizes.py nets.txt >$@ net_gnd.png: nets.txt - ../scripts/net_image.py --adjacency nets.txt 0 $@ 0,1,2,4,6,3,7,5 + ../scripts/net_image.py --adjacency nets.txt 4036 $@ 0,5,1,2,4,6,3,7 net_vcc.png: nets.txt - ../scripts/net_image.py --adjacency nets.txt 1 $@ 0,1,2,4,6,3,7,5 + ../scripts/net_image.py --adjacency nets.txt 5091 $@ 0,5,1,2,4,6,3,7 net_phi0.png: nets.txt - ../scripts/net_image.py --adjacency nets.txt 13812 $@ 0,1,2,4,6,3,7,5 + ../scripts/net_image.py --adjacency nets.txt 23254 $@ 0,5,1,2,4,6,3,7 net_phi1.png: nets.txt - ../scripts/net_image.py --adjacency nets.txt 8126 $@ 0,1,2,4,6,3,7,5 + ../scripts/net_image.py --adjacency nets.txt 17568 $@ 0,5,1,2,4,6,3,7 nets.txt: \ +pads.png \ metal.png \ poly.png \ split_diff.png \ vias.png \ -pads.png \ conn_matrix.txt - ../scripts/image_nets.py metal.png,poly.png,split_diff.png,vias.png,pads.png conn_matrix.txt $@ + ../scripts/image_nets.py pads.png,metal.png,poly.png,split_diff.png,vias.png conn_matrix.txt $@ +# this one follows same layering as nets.txt and we can't see pads layer layers.png: \ +pads.png \ metal.png \ poly.png \ split_diff.png \ +vias.png + ../scripts/image_layers.py pads.png,metal.png,poly.png,split_diff.png,vias.png $@ 0,5,1,2,4,6,3,7 + +# this one has alternative layering and allows us to see pads layer +layers_rev.png: \ +poly.png \ +split_diff.png \ +metal.png \ vias.png \ pads.png - ../scripts/image_layers.py metal.png,poly.png,split_diff.png,vias.png,pads.png $@ 0,1,2,4,6,3,7,5 + ../scripts/image_layers.py poly.png,split_diff.png,metal.png,vias.png,pads.png $@ 0,2,4,6,3,1,7,5 split_diff.png: diff.png poly.png buried.png ../scripts/image_stack.py diff.png,poly.png,buried.png $@ 0,1,0,3,0,1,0,2 diff --git a/8085/conn_matrix.txt b/8085/conn_matrix.txt index a6a4706..c1dcf1f 100644 --- a/8085/conn_matrix.txt +++ b/8085/conn_matrix.txt @@ -1,16 +1,16 @@ # 0: empty -# 1: metal -- merge if touches vias or pads -# 2: poly -- merge if touches vias or buried, report if touches channel -# 3: diff -- merge if touches vias or buried, report if touches channel -# 4: buried (diff) -- report if touches channel, cannot touch vias -# 5: channel (diff) -- cannot touch vias -# 6: vias -- cannot touch pads -# 7: pads +# 1: pads -- merge if touches metal +# 2: metal -- merge if touches vias +# 3: poly -- merge if touches vias or buried, report if touches channel +# 4: diff -- merge if touches vias or buried, report if touches channel +# 5: buried (diff) -- report if touches channel, cannot touch vias +# 6: channel (diff) -- cannot touch vias +# 7: vias 1 0 1 -0 0 1 +0 1 1 0 0 0 1 -0 0 1 1 1 -0 0 2 2 2 1 -0 1 1 1 3 3 1 -0 1 0 0 0 0 3 1 +0 0 0 0 1 +0 0 0 1 1 1 +0 0 0 2 2 2 1 +0 0 1 1 1 3 3 1 diff --git a/scripts/net_sizes.py b/scripts/net_sizes.py index c9c4516..194b75b 100755 --- a/scripts/net_sizes.py +++ b/scripts/net_sizes.py @@ -26,5 +26,5 @@ with open(nets_txt) as fin: if net not in net_sizes: net_sizes[net] = 0 net_sizes[net] += x1 - x0 -for v, k in sorted([(v, k) for k, v in net_sizes.items()]): - print(k, v) +for v, k in sorted([(-v, k) for k, v in net_sizes.items()]): + print(k, -v) -- 2.34.1