From dddaae50991cb3ff97667fb5e3a03ef90f432bdc Mon Sep 17 00:00:00 2001 From: Stefan Frederik Date: Tue, 12 Jan 2021 00:47:56 +0100 Subject: [PATCH] removed redundant update_conn_cues() in some graphic operations; lower priority mux operator for logic sim, Dont change logic value added ("U"), ability to simulate bidirectional switches and simple logic MOS transistor networks. added sample circuits. --- src/actions.c | 2 +- src/hilight.c | 25 +- src/move.c | 4 +- xschem_library/xschem_simulator/dev-1.sym | 25 ++ xschem_library/xschem_simulator/dfrtp_1.sym | 2 +- xschem_library/xschem_simulator/diode_3.sym | 18 + xschem_library/xschem_simulator/dlrtn_1.sym | 2 +- xschem_library/xschem_simulator/dlrtp_1.sym | 2 +- xschem_library/xschem_simulator/einvp_1.sym | 28 ++ xschem_library/xschem_simulator/invert-1.sym | 30 ++ .../xschem_simulator/logic_test.sch | 2 +- xschem_library/xschem_simulator/mux2_1.sym | 30 ++ .../xschem_simulator/simulate_ff.sch | 5 +- xschem_library/xschem_simulator/switch-1.sym | 20 + .../xschem_simulator/switch_level_sim.sch | 419 ++++++++++++++++++ 15 files changed, 600 insertions(+), 14 deletions(-) create mode 100644 xschem_library/xschem_simulator/dev-1.sym create mode 100644 xschem_library/xschem_simulator/diode_3.sym create mode 100644 xschem_library/xschem_simulator/einvp_1.sym create mode 100644 xschem_library/xschem_simulator/invert-1.sym create mode 100644 xschem_library/xschem_simulator/mux2_1.sym create mode 100644 xschem_library/xschem_simulator/switch-1.sym create mode 100644 xschem_library/xschem_simulator/switch_level_sim.sch diff --git a/src/actions.c b/src/actions.c index cd984e4c..4405de14 100644 --- a/src/actions.c +++ b/src/actions.c @@ -1654,7 +1654,7 @@ void new_wire(int what, double mx_snap, double my_snap) } xctx->prep_hi_structs = 0; if(autotrim_wires) trim_wires(); - update_conn_cues(1,1); + /* update_conn_cues(1,0); */ if(show_pin_net_names || xctx->hilight_nets) prepare_netlist_structs(0); if(!big) { bbox(START , 0.0 , 0.0 , 0.0 , 0.0); diff --git a/src/hilight.c b/src/hilight.c index c63e0fb8..03f3ec45 100644 --- a/src/hilight.c +++ b/src/hilight.c @@ -959,13 +959,23 @@ int eval_logic_expr(int inst, int output) sp--; } break; - case 'm': /* mux operator */ + case 'M': /* mux operator */ + s = stack[sp - 1]; + if(sp > 2) { + if(!(s & 2) ) { + stack[sp - 3] = (s == 0) ? stack[sp - 3] : stack[sp - 2]; + } + else stack[sp - 3] = 3; + sp -=2; + } + break; + case 'm': /* mux operator , lower priority*/ s = stack[sp - 1]; if(sp > 2) { if(!(s & 2) ) { /* reduce pessimism, avoid infinite loops */ stack[sp - 3] = (s == 0) ? stack[sp - 3] : stack[sp - 2]; } - else stack[sp - 3] = 3; + else stack[sp - 3] = 4; sp -=2; } break; @@ -1030,6 +1040,11 @@ int eval_logic_expr(int inst, int output) stack[sp++] = 3; } break; + case 'U': /* Do not assign to node */ + if(sp < STACKMAX) { + stack[sp++] = 4; + } + break; default: break; } /* switch */ @@ -1095,14 +1110,14 @@ void free_simdata(void) xctx->simdata.valid = 0; } -#undef DELAYED_ASSIGN +#define DELAYED_ASSIGN void propagate_logic() { /* char *propagated_net=NULL; */ int found, iter = 0 /* , mult */; int i, j, npin; int propagate; - int min_iter = 0; /* set to 3 to simulate up to 3 series bidirectional pass-devices */ + int min_iter = 3; /* set to 3 to simulate up to 3 series bidirectional pass-devices */ struct hilight_hashentry *entry; int val, oldval, newval; static int map[] = {LOGIC_0, LOGIC_1, LOGIC_X, LOGIC_Z}; @@ -1175,7 +1190,7 @@ void propagate_logic() oldval = (!entry) ? LOGIC_X : entry->value; newval = eval_logic_expr(i, propagate); val = map[newval]; - if(iter < min_iter || (newval != 3 && oldval != val) ) { + if( newval !=4 && (iter < min_iter || (newval !=3 && oldval != val) )) { dbg(1, "propagate_logic(): inst %d pin %d oldval %d newval %d to pin %s\n", i, j, oldval, val, xctx->inst[i].node[propagate]); diff --git a/src/move.c b/src/move.c index f2eb390c..4cacca82 100644 --- a/src/move.c +++ b/src/move.c @@ -946,7 +946,7 @@ void copy_objects(int what) if(show_pin_net_names || xctx->hilight_nets) find_inst_to_be_redrawn(); check_collapsing_objects(); if(autotrim_wires) trim_wires(); - update_conn_cues(1, 1); + /* update_conn_cues(1, 1); */ xctx->ui_state &= ~STARTCOPY; xctx->x1=xctx->y_1=xctx->x2=xctx->y_2=xctx->move_rot=xctx->move_flip=xctx->deltax=xctx->deltay=0; bbox(SET , 0.0 , 0.0 , 0.0 , 0.0); @@ -1482,7 +1482,7 @@ void move_objects(int what, int merge, double dx, double dy) if(show_pin_net_names || xctx->hilight_nets) find_inst_to_be_redrawn(); check_collapsing_objects(); if(autotrim_wires) trim_wires(); - update_conn_cues(1, 1); + /* update_conn_cues(1, 1); */ if(xctx->hilight_nets) { propagate_hilights(1, 1, XINSERT_NOREPLACE); diff --git a/xschem_library/xschem_simulator/dev-1.sym b/xschem_library/xschem_simulator/dev-1.sym new file mode 100644 index 00000000..3ab0a1be --- /dev/null +++ b/xschem_library/xschem_simulator/dev-1.sym @@ -0,0 +1,25 @@ +v {xschem version=2.9.9 file_version=1.2 } +G {} +K {type=switch +function0="1 2 3 m" +function1="0 Z 3 m" +function2="Z 0 3 m" +template="name=s1" +} +V {} +S {} +E {} +L 4 10 -10 30 -10 {} +L 4 -30 0 -10 0 {} +L 4 0 -40 0 0 {} +L 4 10 10 30 10 {} +L 4 -10 0 10 0 {} +B 5 -32.5 -2.5 -27.5 2.5 {name=t0 dir=inout} +B 5 27.5 7.5 32.5 12.5 {name=t1 dir=inout } +B 5 27.5 -12.5 32.5 -7.5 {name=t2 dir=inout } +B 5 -7.5 -47.5 7.5 -32.5 {name=g dir=inout goto=0,1,2} +A 4 -8.75 0 1.25 360 360 {fill=true} +A 4 10 -10 1.25 0 360 {fill=true} +A 4 10 10 1.25 0 360 {fill=true} +T {1} 20 -17.5 0 0 0.1 0.1 {} +T {0} 20 2.5 0 0 0.1 0.1 {} diff --git a/xschem_library/xschem_simulator/dfrtp_1.sym b/xschem_library/xschem_simulator/dfrtp_1.sym index 86982927..caa20b00 100644 --- a/xschem_library/xschem_simulator/dfrtp_1.sym +++ b/xschem_library/xschem_simulator/dfrtp_1.sym @@ -2,7 +2,7 @@ v {xschem version=2.9.9 file_version=1.2 } G {} K {type=stdcell xfunction3="0 d ~ 3 & x 1 & | 2 &" -function3="3 1 0 m L 2 ~ m" +function3="3 1 0 M L 2 ~ M" format="@name @@CLK @@D @@RESET_B @VGND @VNB @VPB @VPWR @@Q @prefix\\\\dfrtp_1" template="name=x1 VGND=VGND VNB=VNB VPB=VPB VPWR=VPWR prefix=sky130_fd_sc_hd__ " extra="VGND VNB VPB VPWR prefix" diff --git a/xschem_library/xschem_simulator/diode_3.sym b/xschem_library/xschem_simulator/diode_3.sym new file mode 100644 index 00000000..51fa0475 --- /dev/null +++ b/xschem_library/xschem_simulator/diode_3.sym @@ -0,0 +1,18 @@ +v {xschem version=2.9.9 file_version=1.2 } +G {} +K {type=diode +function1="Z 0 d M" +template="name=x1" +} +V {} +S {} +E {} +L 4 0 5 0 30 {} +L 4 0 -30 0 -5 {} +L 4 -10 5 10 5 {} +L 4 0 5 10 -5 {} +L 4 -10 -5 10 -5 {} +L 4 -10 -5 0 5 {} +B 5 -2.5 -32.5 2.5 -27.5 {name=p dir=inout goto=1} +B 5 -2.5 27.5 2.5 32.5 {name=m dir=inout} +T {@name} 5 -22 0 0 0.2 0.2 {} diff --git a/xschem_library/xschem_simulator/dlrtn_1.sym b/xschem_library/xschem_simulator/dlrtn_1.sym index 9cc05acd..86925baa 100644 --- a/xschem_library/xschem_simulator/dlrtn_1.sym +++ b/xschem_library/xschem_simulator/dlrtn_1.sym @@ -5,7 +5,7 @@ format="@name @@D @@GATE_N @@RESET_B @VGND @VNB @VPB @VPWR @@Q @prefix\\\\dlrtn_ template="name=x1 VGND=VGND VNB=VNB VPB=VPB VPWR=VPWR prefix=sky130_fd_sc_hd__ " extra="VGND VNB VPB VPWR prefix" highlight=true -function3="0 3 1 m L 2 ~ m"} +function3="0 3 1 M L 2 ~ M"} V {} S {} E {} diff --git a/xschem_library/xschem_simulator/dlrtp_1.sym b/xschem_library/xschem_simulator/dlrtp_1.sym index be554474..17a6069a 100644 --- a/xschem_library/xschem_simulator/dlrtp_1.sym +++ b/xschem_library/xschem_simulator/dlrtp_1.sym @@ -5,7 +5,7 @@ format="@name @@D @@GATE @@RESET_B @VGND @VNB @VPB @VPWR @@Q @prefix\\\\dlrtp_1" template="name=x1 VGND=VGND VNB=VNB VPB=VPB VPWR=VPWR prefix=sky130_fd_sc_hd__ " extra="VGND VNB VPB VPWR prefix" highlight=true -function3="3 0 1 m L 2 ~ m"} +function3="3 0 1 M L 2 ~ M"} V {} S {} E {} diff --git a/xschem_library/xschem_simulator/einvp_1.sym b/xschem_library/xschem_simulator/einvp_1.sym new file mode 100644 index 00000000..9cfc7394 --- /dev/null +++ b/xschem_library/xschem_simulator/einvp_1.sym @@ -0,0 +1,28 @@ +v {xschem version=2.9.9 file_version=1.2 } +G {} +K {type=primitive +function2="0 ~ 1 z" + +format="@name @@A @@TE @VGND @VNB @VPB @VPWR @@Z @prefix\\\\einvp_1" +template="name=x1 VGND=VGND VNB=VNB VPB=VPB VPWR=VPWR prefix=sky130_fd_sc_hd__ " +extra="VGND VNB VPB VPWR prefix" +highlight=true} +V {} +S {} +E {} +L 4 -20 -20 -20 20 {} +L 4 -20 -20 20 0 {} +L 4 -20 20 20 0 {} +L 4 -40 0 -20 0 {} +L 4 -40 40 0 40 {} +L 4 0 10 0 40 {} +L 4 30 0 40 0 {} +B 5 -42.5 -2.5 -37.5 2.5 {name=A dir=in goto=2 propag=2 } +B 5 -42.5 37.5 -37.5 42.5 {name=TE dir=in goto=2 propag=2 } +B 5 37.5 -2.5 42.5 2.5 {name=Z dir=out } +A 4 25 0 5 0 360 {} +T {A} -35 -14 0 0 0.2 0.2 {} +T {TE} -35 26 0 0 0.2 0.2 {} +T {Z} 35 -14 0 1 0.2 0.2 {} +T {@name} 7.5 15 0 0 0.2 0.2 {} +T {@symname} -7.5 -30 0 0 0.2 0.2 {} diff --git a/xschem_library/xschem_simulator/invert-1.sym b/xschem_library/xschem_simulator/invert-1.sym new file mode 100644 index 00000000..f2b2b808 --- /dev/null +++ b/xschem_library/xschem_simulator/invert-1.sym @@ -0,0 +1,30 @@ +v {xschem version=2.9.9 file_version=1.2 } +G {} +K {type=switch +function0="3 2 4 m" +function1="2 3 4 m" +function2="1 0 4 m" +function3="0 1 4 m" +template="name=s1" +} +V {} +S {} +E {} +L 4 10 -10 30 -10 {} +L 4 -30 -10 -11.25 -10 {} +L 4 0 -40 0 0 {} +L 4 10 10 30 10 {} +L 4 -30 10 -11.25 10 {} +L 4 -5 5 5 -5 {} +L 4 -5 -5 5 5 {} +L 4 -5 -10 5 -10 {} +L 4 -5 10 5 10 {} +B 5 -32.5 -12.5 -27.5 -7.5 {name=t0 dir=inout} +B 5 -32.5 7.5 -27.5 12.5 {name=t1 dir=inout} +B 5 27.5 7.5 32.5 12.5 {name=t2 dir=inout } +B 5 27.5 -12.5 32.5 -7.5 {name=t3 dir=inout } +B 5 -7.5 -47.5 7.5 -32.5 {name=g dir=inout goto=0,1,2,3} +A 4 -10 -10 1.25 0 360 {fill=true} +A 4 10 -10 1.25 0 360 {fill=true} +A 4 10 10 1.25 0 360 {fill=true} +A 4 -10 10 1.25 0 360 {fill=true} diff --git a/xschem_library/xschem_simulator/logic_test.sch b/xschem_library/xschem_simulator/logic_test.sch index 059a0ddc..54a0719b 100644 --- a/xschem_library/xschem_simulator/logic_test.sch +++ b/xschem_library/xschem_simulator/logic_test.sch @@ -12,7 +12,7 @@ Ctrl-Click here to start a simulation. Xschem will be only partially responsive during simulation. Simulation will terminate automatically after 30 iterations Otherwise go to Simulation ->Forced stop tcl scripts} 1340 -740 0 0 2 2 {} -T {Clicking an input net and pressing '0', '1' or '2' will set the net to logic state 0,1, X respectively} 960 -1030 0 0 2 2 {} +T {Clicking an input net and pressing '0', '1', '2' or '3' will set the net to logic state 0,1,X,Z respectively} 960 -1030 0 0 2 2 {} T {9 Flip Flop Linear Feedback Shift Register} 1980 -3440 0 0 3 3 {} T {Cyan: Uninitialized or unknown (X)} 4930 -540 0 0 1.5 1.5 {layer=1} T {Signal colors:} 4850 -640 0 0 1.5 1.5 {} diff --git a/xschem_library/xschem_simulator/mux2_1.sym b/xschem_library/xschem_simulator/mux2_1.sym new file mode 100644 index 00000000..e9236385 --- /dev/null +++ b/xschem_library/xschem_simulator/mux2_1.sym @@ -0,0 +1,30 @@ +v {xschem version=2.9.9 file_version=1.2 } +G {} +K {type=primitive +function3="0 1 2 M" +format="@name @@A0 @@A1 @@S @VGND @VNB @VPB @VPWR @@X @prefix\\\\mux2_1" +template="name=x1 VGND=VGND VNB=VNB VPB=VPB VPWR=VPWR prefix=sky130_fd_sc_hd__ " +extra="VGND VNB VPB VPWR prefix" +highlight=true} +V {} +S {} +E {} +L 4 17.5 0 40 0 {} +L 4 -40 -20 -20 -20 {} +L 4 -40 20 -20 20 {} +L 4 -40 60 0 60 {} +L 4 -20 -30 -20 30 {} +L 4 -20 30 17.5 15 {} +L 4 17.5 -15 17.5 15 {} +L 4 -20 -30 17.5 -15 {} +L 4 0 22.5 0 60 {} +B 5 -42.5 -22.5 -37.5 -17.5 {name=A0 dir=in goto=3 propag=3 } +B 5 -42.5 17.5 -37.5 22.5 {name=A1 dir=in goto=3 propag=3 } +B 5 -42.5 57.5 -37.5 62.5 {name=S dir=in goto=3 propag=3 } +B 5 37.5 -2.5 42.5 2.5 {name=X dir=out } +T {A0} -35 -34 0 0 0.2 0.2 {} +T {A1} -35 6 0 0 0.2 0.2 {} +T {X} 35 -14 0 1 0.2 0.2 {} +T {@name} -18.75 -5 0 0 0.2 0.2 {} +T {@symname} -15 -45 0 0 0.2 0.2 {} +T {S} -35 46 0 0 0.2 0.2 {} diff --git a/xschem_library/xschem_simulator/simulate_ff.sch b/xschem_library/xschem_simulator/simulate_ff.sch index 9674c5a4..b8d016e4 100644 --- a/xschem_library/xschem_simulator/simulate_ff.sch +++ b/xschem_library/xschem_simulator/simulate_ff.sch @@ -11,7 +11,7 @@ L 4 100 -1470 100 -1390 {} L 4 200 -1470 200 -1390 {} L 4 100 -1570 100 -1490 {} L 4 200 -1570 200 -1490 {} -L 4 1710 -1640 1710 -1360 {} +L 4 1710 -1620 1710 -1360 {} L 4 1710 -1360 1750 -1360 {} L 4 1750 -1370 1750 -1360 {} L 4 1750 -1370 1770 -1360 {} @@ -76,7 +76,8 @@ T {select this net and: - press '0' to set to logic '0' value - press '1' to set to logic '1' value - press '2' to set to logic 'X' value -- press '3' to set to toggle 1->0, 0->1, X->X} 1680 -1880 0 0 0.7 0.7 {} +- press '3' to set to logic 'Z' value +- press '4' to set to toggle 1->0, 0->1, X->X} 1600 -1900 0 0 0.7 0.7 {} N 2340 -2250 2340 -2170 { lab=#net1} N 2220 -2250 2340 -2250 { lab=#net1} N 2220 -2270 2220 -2250 { lab=#net1} diff --git a/xschem_library/xschem_simulator/switch-1.sym b/xschem_library/xschem_simulator/switch-1.sym new file mode 100644 index 00000000..79e796b4 --- /dev/null +++ b/xschem_library/xschem_simulator/switch-1.sym @@ -0,0 +1,20 @@ +v {xschem version=2.9.9 file_version=1.2 } +G {} +K {type=switch +function0="Z 1 2 M" +function1="Z 0 2 M" +template="name=s1" +} +V {} +S {} +E {} +L 4 10 0 30 0 {} +L 4 -30 0 -10 0 {} +L 4 -10 0 10 -10 {} +L 4 0 -40 0 -5 {} +B 5 -32.5 -2.5 -27.5 2.5 {name=t0 dir=inout} +B 5 27.5 -2.5 32.5 2.5 {name=t1 dir=inout } +B 5 -7.5 -47.5 7.5 -32.5 {name=g dir=inout goto=0,1} +A 4 10 0 1.25 0 360 {fill=true} +A 4 -10 0 1.25 0 360 {fill=true} +T {1} 20 -7.5 0 0 0.1 0.1 {} diff --git a/xschem_library/xschem_simulator/switch_level_sim.sch b/xschem_library/xschem_simulator/switch_level_sim.sch new file mode 100644 index 00000000..de80c4bd --- /dev/null +++ b/xschem_library/xschem_simulator/switch_level_sim.sch @@ -0,0 +1,419 @@ +v {xschem version=2.9.9 file_version=1.2 } +G {} +K {} +V {} +S {} +E {} +L 4 920 -590 920 -130 {dash=3} +L 4 1270 -590 1270 -130 {dash=3} +P 4 11 1110 -450 1060 -450 1060 -460 1020 -440 1060 -420 1060 -430 1110 -430 1110 -420 1150 -440 1110 -460 1110 -450 {} +P 4 5 1200 -1860 1200 -950 2550 -950 2550 -1860 1200 -1860 {dash=3} +T {These structures can not be reliably simulated +due to race conditions} 1480 -1030 0 0 0.6 0.6 {} +N 170 -330 260 -330 { lab=#net1} +N 170 -450 260 -450 { lab=#net2} +N 240 -410 260 -410 { lab=C} +N 170 -560 260 -560 { lab=#net3} +N 240 -520 260 -520 { lab=C} +N 270 -630 290 -630 { lab=C} +N 410 -650 490 -650 { lab=Y} +N 170 -670 290 -670 { lab=#net4} +N 380 -540 390 -540 { lab=#net5} +N 890 -400 890 -340 { lab=#net6} +N 890 -400 1300 -400 { lab=#net6} +N 720 -400 720 -270 { lab=#net6} +N 700 -150 700 -90 { lab=#net7} +N 680 -320 680 -270 { lab=#net8} +N 610 -320 680 -320 { lab=#net8} +N 810 -300 810 -210 { lab=#net9} +N 800 -210 810 -210 { lab=#net9} +N 690 -400 720 -400 { lab=#net6} +N 1470 -400 1490 -400 { lab=#net6} +N 760 -340 810 -340 { lab=#net10} +N 1300 -400 1300 -340 { lab=#net6} +N 1470 -400 1470 -270 { lab=#net6} +N 1490 -150 1490 -90 { lab=#net11} +N 1510 -320 1510 -270 { lab=#net12} +N 1510 -320 1580 -320 { lab=#net12} +N 1380 -300 1380 -210 { lab=#net13} +N 1380 -210 1390 -210 { lab=#net13} +N 1380 -340 1430 -340 { lab=#net14} +N 760 -340 760 -320 { lab=#net10} +N 1430 -340 1430 -320 { lab=#net14} +N 720 -400 890 -400 { lab=#net6} +N 1300 -400 1470 -400 { lab=#net6} +N 380 -820 470 -820 { lab=#net15} +N 420 -800 470 -800 { lab=#net16} +N 460 -780 470 -780 { lab=#net17} +N 650 -820 740 -820 { lab=#net18} +N 460 -780 460 -750 { lab=#net17} +N 460 -750 680 -750 { lab=#net17} +N 680 -780 680 -750 { lab=#net17} +N 680 -780 740 -780 { lab=#net17} +N 920 -820 1020 -820 { lab=#net19} +N 420 -920 420 -800 { lab=#net16} +N 680 -800 740 -800 { lab=#net16} +N 420 -920 680 -920 { lab=#net16} +N 680 -920 680 -800 { lab=#net16} +N 270 -850 290 -850 { lab=#net16} +N 290 -960 290 -850 { lab=#net16} +N 210 -960 290 -960 { lab=#net16} +N 30 -960 130 -960 { lab=#net20} +N 30 -960 30 -830 { lab=#net20} +N 30 -830 90 -830 { lab=#net20} +N 50 -850 90 -850 { lab=#net21} +N 50 -860 50 -850 { lab=#net21} +N 90 -780 460 -780 { lab=#net17} +N 90 -810 90 -780 { lab=#net17} +N 50 -780 90 -780 { lab=#net17} +N 50 -790 50 -780 { lab=#net17} +N 1900 -360 1900 -330 { lab=Z} +N 1900 -270 1900 -200 { lab=GND} +N 2030 -220 2030 -200 { lab=GND} +N 2030 -360 2030 -280 { lab=Z} +N 1800 -250 1990 -250 { lab=B} +N 1800 -500 1800 -250 { lab=B} +N 1840 -340 1840 -300 { lab=A} +N 1840 -300 1860 -300 { lab=A} +N 1750 -340 1840 -340 { lab=A} +N 1750 -250 1800 -250 { lab=B} +N 1900 -300 1950 -300 { lab=GND} +N 2030 -250 2090 -250 { lab=GND} +N 1900 -470 1900 -430 { lab=#net22} +N 1900 -560 1900 -530 { lab=VCC} +N 2030 -360 2080 -360 { lab=Z} +N 1800 -500 1860 -500 { lab=B} +N 1840 -400 1860 -400 { lab=A} +N 1900 -500 1960 -500 { lab=VCC} +N 1900 -400 1960 -400 { lab=VCC} +N 1960 -500 1960 -400 { lab=VCC} +N 1900 -200 2030 -200 { lab=GND} +N 2450 -290 2450 -260 { lab=#net23} +N 2450 -320 2500 -320 { lab=GND} +N 2450 -230 2500 -230 { lab=GND} +N 2410 -500 2470 -500 { lab=VCC} +N 2530 -440 2590 -440 { lab=VCC} +N 2530 -410 2530 -380 { lab=#net24} +N 2450 -380 2530 -380 { lab=#net24} +N 2410 -470 2410 -380 { lab=#net24} +N 2450 -380 2450 -350 { lab=#net24} +N 2410 -560 2410 -530 { lab=VCC} +N 2410 -560 2530 -560 { lab=VCC} +N 2530 -560 2530 -470 { lab=VCC} +N 2450 -200 2450 -180 { lab=GND} +N 2370 -440 2490 -440 { lab=B} +N 2370 -370 2370 -320 { lab=B} +N 2370 -320 2410 -320 { lab=B} +N 2330 -230 2410 -230 { lab=A} +N 2330 -410 2330 -230 { lab=A} +N 2330 -500 2370 -500 { lab=A} +N 2240 -370 2370 -370 { lab=B} +N 2240 -410 2330 -410 { lab=A} +N 2530 -380 2660 -380 { lab=#net24} +N 700 -1040 1020 -1040 { lab=#net19} +N 1020 -1040 1020 -820 { lab=#net19} +N 380 -1040 620 -1040 { lab=#net15} +N 380 -1040 380 -820 { lab=#net15} +N 380 -800 420 -800 { lab=#net16} +N 1900 -360 2030 -360 { lab=Z} +N 1840 -400 1840 -340 { lab=A} +N 2410 -380 2450 -380 { lab=#net24} +N 2370 -440 2370 -370 { lab=B} +N 2330 -500 2330 -410 { lab=A} +N 1900 -370 1900 -360 { lab=Z} +N 190 -1270 190 -1210 { lab=GND} +N 250 -1270 250 -1210 { lab=#net25} +N 20 -1270 190 -1270 { lab=GND} +N 250 -1270 290 -1270 { lab=#net25} +N 220 -1170 220 -1140 { lab=E} +N 80 -1420 90 -1420 { lab=E} +N 190 -1580 190 -1520 { lab=VCC} +N 250 -1580 250 -1520 { lab=#net25} +N 20 -1580 190 -1580 { lab=VCC} +N 250 -1580 290 -1580 { lab=#net25} +N 220 -1420 220 -1370 { lab=#net26} +N 170 -1420 220 -1420 { lab=#net26} +N 290 -1440 290 -1270 { lab=#net25} +N 290 -1440 340 -1440 { lab=#net25} +N 220 -1700 220 -1680 { lab=E} +N 70 -1700 70 -1420 { lab=E} +N 70 -1700 220 -1700 { lab=E} +N 80 -1420 80 -1140 { lab=E} +N 80 -1140 220 -1140 { lab=E} +N 540 -1270 540 -1210 { lab=#net27} +N 600 -1270 600 -1210 { lab=GND} +N 600 -1270 770 -1270 { lab=GND} +N 480 -1270 540 -1270 { lab=#net27} +N 570 -1170 570 -1140 { lab=E} +N 720 -1420 770 -1420 { lab=E} +N 540 -1580 540 -1520 { lab=#net27} +N 600 -1580 600 -1520 { lab=VCC} +N 600 -1580 770 -1580 { lab=VCC} +N 480 -1580 540 -1580 { lab=#net27} +N 570 -1420 570 -1370 { lab=#net28} +N 570 -1420 620 -1420 { lab=#net28} +N 480 -1440 480 -1270 { lab=#net27} +N 430 -1440 480 -1440 { lab=#net27} +N 570 -1700 720 -1700 { lab=E} +N 570 -1700 570 -1680 { lab=E} +N 720 -1700 720 -1420 { lab=E} +N 710 -1420 710 -1140 { lab=E} +N 570 -1140 710 -1140 { lab=E} +N 190 -1330 190 -1270 { lab=GND} +N 250 -1330 250 -1270 { lab=#net25} +N 190 -1640 190 -1580 { lab=VCC} +N 250 -1640 250 -1580 { lab=#net25} +N 220 -1480 220 -1420 { lab=#net26} +N 290 -1580 290 -1440 { lab=#net25} +N 30 -1420 70 -1420 { lab=E} +N 70 -1420 80 -1420 { lab=E} +N 600 -1330 600 -1270 { lab=GND} +N 540 -1330 540 -1270 { lab=#net27} +N 600 -1640 600 -1580 { lab=VCC} +N 540 -1640 540 -1580 { lab=#net27} +N 570 -1480 570 -1420 { lab=#net28} +N 480 -1580 480 -1440 { lab=#net27} +N 710 -1420 720 -1420 { lab=E} +N 700 -1420 710 -1420 { lab=E} +N 290 -800 380 -800 { lab=#net16} +N 290 -850 290 -800 { lab=#net16} +N 2220 -870 2220 -800 { lab=#net29} +N 2220 -740 2220 -680 { lab=#net30} +N 2220 -680 2280 -680 { lab=#net30} +N 2360 -680 2450 -680 { lab=#net31} +N 1370 -1170 1370 -1140 { lab=#net32} +N 1370 -1270 1370 -1230 { lab=#net33} +N 1370 -1370 1370 -1330 { lab=#net34} +N 1370 -1470 1370 -1430 { lab=VCC} +N 1370 -1080 1370 -1060 { lab=GND} +N 1370 -1110 1420 -1110 { lab=GND} +N 1370 -1200 1420 -1200 { lab=GND} +N 1370 -1300 1420 -1300 { lab=VCC} +N 1370 -1400 1420 -1400 { lab=VCC} +N 1310 -1300 1330 -1300 { lab=D} +N 1310 -1200 1330 -1200 { lab=D} +N 1370 -1250 1500 -1250 { lab=#net33} +N 1310 -1300 1310 -1200 { lab=D} +N 1270 -1250 1310 -1250 { lab=D} +N 2350 -750 2410 -750 { lab=#net35} +N 2270 -750 2290 -750 { lab=#net30} +N 2270 -750 2270 -680 { lab=#net30} +N 2320 -830 2320 -790 { lab=#net36} +N 1680 -1510 1680 -1480 { lab=#net37} +N 1680 -1610 1680 -1570 { lab=#net33} +N 1680 -1710 1680 -1670 { lab=#net38} +N 1680 -1810 1680 -1770 { lab=VCC} +N 1680 -1420 1680 -1400 { lab=GND} +N 1630 -1450 1680 -1450 { lab=GND} +N 1630 -1540 1680 -1540 { lab=GND} +N 1630 -1640 1680 -1640 { lab=VCC} +N 1630 -1740 1680 -1740 { lab=VCC} +N 1720 -1640 1770 -1640 { lab=#net39} +N 1720 -1540 1770 -1540 { lab=#net39} +N 1770 -1640 1770 -1540 { lab=#net39} +N 1770 -1540 1770 -1250 { lab=#net39} +N 1490 -1590 1680 -1590 { lab=#net33} +N 1700 -1250 1790 -1250 { lab=#net39} +N 1580 -1250 1630 -1250 { lab=#net39} +N 1630 -1250 1700 -1250 { lab=#net39} +N 1490 -1590 1490 -1250 { lab=#net33} +N 1720 -1070 1760 -1070 { lab=GN} +N 1490 -670 1590 -670 { lab=#net40} +N 1490 -690 1590 -690 { lab=#net41} +N 1650 -670 1750 -670 { lab=#net42} +N 1650 -690 1750 -690 { lab=#net43} +N 1810 -680 1910 -680 { lab=#net44} +N 1330 -680 1430 -680 { lab=VCC} +N 1460 -820 1460 -720 { lab=#net45} +N 1620 -820 1620 -720 { lab=#net46} +N 1780 -820 1780 -720 { lab=#net47} +N 1450 -830 1460 -820 { lab=#net45} +N 1450 -830 1460 -840 { lab=#net45} +N 1460 -840 1470 -830 { lab=#net45} +N 1460 -820 1470 -830 { lab=#net45} +N 1610 -830 1620 -820 { lab=#net46} +N 1610 -830 1620 -840 { lab=#net46} +N 1620 -840 1630 -830 { lab=#net46} +N 1620 -820 1630 -830 { lab=#net46} +N 1770 -830 1780 -820 { lab=#net47} +N 1770 -830 1780 -840 { lab=#net47} +N 1780 -840 1790 -830 { lab=#net47} +N 1780 -820 1790 -830 { lab=#net47} +N 2010 -1170 2010 -1140 { lab=#net48} +N 2010 -1270 2010 -1230 { lab=#net49} +N 2010 -1370 2010 -1330 { lab=#net50} +N 2010 -1470 2010 -1430 { lab=VCC} +N 2010 -1080 2010 -1060 { lab=GND} +N 2010 -1110 2060 -1110 { lab=GND} +N 2010 -1200 2060 -1200 { lab=GND} +N 2010 -1300 2060 -1300 { lab=VCC} +N 2010 -1400 2060 -1400 { lab=VCC} +N 1950 -1300 1970 -1300 { lab=D} +N 1950 -1200 1970 -1200 { lab=D} +N 2010 -1250 2140 -1250 { lab=#net49} +N 1950 -1300 1950 -1200 { lab=D} +N 1910 -1250 1950 -1250 { lab=D} +N 2320 -1510 2320 -1480 { lab=#net51} +N 2320 -1610 2320 -1570 { lab=#net49} +N 2320 -1710 2320 -1670 { lab=#net52} +N 2320 -1810 2320 -1770 { lab=VCC} +N 2320 -1420 2320 -1400 { lab=GND} +N 2270 -1450 2320 -1450 { lab=GND} +N 2270 -1540 2320 -1540 { lab=GND} +N 2270 -1640 2320 -1640 { lab=VCC} +N 2270 -1740 2320 -1740 { lab=VCC} +N 2360 -1640 2410 -1640 { lab=#net53} +N 2360 -1540 2410 -1540 { lab=#net53} +N 2410 -1640 2410 -1540 { lab=#net53} +N 2410 -1540 2410 -1250 { lab=#net53} +N 2130 -1590 2320 -1590 { lab=#net49} +N 2340 -1250 2430 -1250 { lab=#net53} +N 2220 -1250 2270 -1250 { lab=#net53} +N 2270 -1250 2340 -1250 { lab=#net53} +N 2130 -1590 2130 -1250 { lab=#net49} +C {opin.sym} 110 -160 0 0 { name=p16 lab=Y } +C {inv_2.sym} 1680 -1070 0 0 {name=x23 VGND=VGND VNB=VNB VPB=VPB VPWR=VPWR prefix=sky130_fd_sc_hd__ } +C {ipin.sym} 70 -180 0 0 { name=p20 lab=A } +C {opin.sym} 110 -130 0 0 { name=p4 lab=Z } +C {ipin.sym} 70 -120 0 0 { name=p5 lab=C } +C {title.sym} 160 -30 0 0 {name=l1 author="Stefan Schippers"} +C {lab_pin.sym} 50 -350 0 0 {name=p1 lab=E} +C {nand2_1.sym} 110 -330 0 0 {name=x2 VGND=VGND VNB=VNB VPB=VPB VPWR=VPWR prefix=sky130_fd_sc_hd__ } +C {lab_pin.sym} 50 -310 0 0 {name=p2 lab=B} +C {lab_pin.sym} 50 -470 0 0 {name=p10 lab=A} +C {nand2_1.sym} 110 -450 0 0 {name=x4 VGND=VGND VNB=VNB VPB=VPB VPWR=VPWR prefix=sky130_fd_sc_hd__ } +C {nand2_1.sym} 320 -430 0 0 {name=x8 VGND=VGND VNB=VNB VPB=VPB VPWR=VPWR prefix=sky130_fd_sc_hd__ } +C {lab_pin.sym} 50 -580 0 0 {name=p12 lab=A} +C {nand2_1.sym} 110 -560 0 0 {name=x5 VGND=VGND VNB=VNB VPB=VPB VPWR=VPWR prefix=sky130_fd_sc_hd__ } +C {lab_pin.sym} 50 -540 0 0 {name=p13 lab=E} +C {nand2_1.sym} 320 -540 0 0 {name=x9 VGND=VGND VNB=VNB VPB=VPB VPWR=VPWR prefix=sky130_fd_sc_hd__ } +C {lab_pin.sym} 50 -690 0 0 {name=p14 lab=A} +C {nand2_1.sym} 110 -670 0 0 {name=x6 VGND=VGND VNB=VNB VPB=VPB VPWR=VPWR prefix=sky130_fd_sc_hd__ } +C {lab_pin.sym} 50 -650 0 0 {name=p15 lab=E} +C {nand2_1.sym} 350 -650 0 0 {name=x7 VGND=VGND VNB=VNB VPB=VPB VPWR=VPWR prefix=sky130_fd_sc_hd__ } +C {lab_pin.sym} 490 -650 0 1 {name=p3 lab=Y} +C {lab_pin.sym} 270 -630 0 0 {name=p7 lab=C} +C {lab_pin.sym} 240 -520 0 0 {name=p8 lab=C} +C {lab_pin.sym} 240 -410 0 0 {name=p9 lab=C} +C {noconn.sym} 380 -430 0 1 {name=l2} +C {einvp_1.sym} 850 -340 0 0 {name=x1 VGND=VGND VNB=VNB VPB=VPB VPWR=VPWR prefix=sky130_fd_sc_hd__ } +C {nand2_1.sym} 700 -210 1 0 {name=x10 VGND=VGND VNB=VNB VPB=VPB VPWR=VPWR prefix=sky130_fd_sc_hd__ } +C {einvp_1.sym} 1340 -340 0 1 {name=x3 VGND=VGND VNB=VNB VPB=VPB VPWR=VPWR prefix=sky130_fd_sc_hd__ } +C {nand2_1.sym} 1490 -210 3 1 {name=x11 VGND=VGND VNB=VNB VPB=VPB VPWR=VPWR prefix=sky130_fd_sc_hd__ } +C {dlrtp_1.sym} 830 -800 0 0 {name=x15 VGND=VGND VNB=VNB VPB=VPB VPWR=VPWR prefix=sky130_fd_sc_hd__ } +C {ipin.sym} 70 -140 0 0 { name=p17 lab=E } +C {dlrtn_1.sym} 560 -800 0 0 {name=x16 VGND=VGND VNB=VNB VPB=VPB VPWR=VPWR prefix=sky130_fd_sc_hd__ } +C {dfrtp_1.sym} 180 -830 0 0 {name=x13 VGND=VGND VNB=VNB VPB=VPB VPWR=VPWR prefix=sky130_fd_sc_hd__ } +C {inv_2.sym} 170 -960 0 1 {name=x14 VGND=VGND VNB=VNB VPB=VPB VPWR=VPWR prefix=sky130_fd_sc_hd__ } +C {n.sym} 1880 -300 0 0 {name=m7 model=cmosn w=wn l=lln m=1} +C {n.sym} 2010 -250 0 0 {name=m8 model=cmosn w=wn l=lln m=1} +C {lab_pin.sym} 1750 -340 0 0 {name=p24 lab=A} +C {lab_pin.sym} 1750 -250 0 0 {name=p25 lab=B} +C {lab_pin.sym} 2090 -250 0 1 {name=p27 lab=GND} +C {lab_pin.sym} 1950 -300 0 1 {name=p30 lab=GND} +C {p.sym} 1880 -400 0 0 {name=m4 model=cmosp w=wp l=lp m=1 } +C {p.sym} 1880 -500 0 0 {name=m9 model=cmosp w=wp l=lp m=1 } +C {lab_pin.sym} 2080 -360 0 1 {name=p26 lab=Z} +C {lab_pin.sym} 1960 -500 0 1 {name=p31 lab=VCC} +C {gnd.sym} 1900 -200 0 0 {name=l3 lab=GND} +C {vdd.sym} 1900 -560 0 0 {name=l4 lab=VCC} +C {p.sym} 2390 -500 0 0 {name=m2 model=cmosp w=wp l=lp m=1 } +C {p.sym} 2510 -440 0 0 {name=m3 model=cmosp w=wp l=lp m=1 } +C {n.sym} 2430 -320 0 0 {name=m5 model=cmosn w=wn l=lln m=1} +C {n.sym} 2430 -230 0 0 {name=m6 model=cmosn w=wn l=lln m=1} +C {lab_pin.sym} 2500 -320 0 1 {name=p22 lab=GND} +C {lab_pin.sym} 2500 -230 0 1 {name=p28 lab=GND} +C {lab_pin.sym} 2470 -500 0 1 {name=p29 lab=VCC} +C {lab_pin.sym} 2590 -440 0 1 {name=p32 lab=VCC} +C {vdd.sym} 2460 -560 0 0 {name=l11 lab=VCC} +C {gnd.sym} 2450 -180 0 0 {name=l12 lab=GND} +C {lab_pin.sym} 2240 -370 0 0 {name=p21 lab=B} +C {lab_pin.sym} 2240 -410 0 0 {name=p23 lab=A} +C {inv_2.sym} 660 -1040 0 1 {name=x17 VGND=VGND VNB=VNB VPB=VPB VPWR=VPWR prefix=sky130_fd_sc_hd__ } +C {n.sym} 220 -1350 1 0 {name=m1 model=cmosn w=wn l=lln m=1} +C {lab_pin.sym} 220 -1330 1 1 {name=p6 lab=GND} +C {p.sym} 220 -1190 3 0 {name=m10 model=cmosp w=wp l=lp m=1 } +C {lab_pin.sym} 220 -1210 3 1 {name=p18 lab=VCC} +C {inv_2.sym} 130 -1420 0 0 {name=x18 VGND=VGND VNB=VNB VPB=VPB VPWR=VPWR prefix=sky130_fd_sc_hd__ } +C {n.sym} 220 -1660 1 0 {name=m11 model=cmosn w=wn l=lln m=1} +C {lab_pin.sym} 220 -1640 1 1 {name=p33 lab=GND} +C {p.sym} 220 -1500 3 0 {name=m12 model=cmosp w=wp l=lp m=1 } +C {lab_pin.sym} 220 -1520 3 1 {name=p34 lab=VCC} +C {vdd.sym} 20 -1580 0 0 {name=l5 lab=VCC} +C {gnd.sym} 20 -1270 0 0 {name=l6 lab=GND} +C {n.sym} 570 -1350 1 0 {name=m13 model=cmosn w=wn l=lln m=1} +C {lab_pin.sym} 570 -1330 1 1 {name=p35 lab=GND} +C {p.sym} 570 -1190 3 0 {name=m14 model=cmosp w=wp l=lp m=1 } +C {lab_pin.sym} 570 -1210 3 1 {name=p36 lab=VCC} +C {inv_2.sym} 660 -1420 0 1 {name=x19 VGND=VGND VNB=VNB VPB=VPB VPWR=VPWR prefix=sky130_fd_sc_hd__ } +C {n.sym} 570 -1660 1 0 {name=m15 model=cmosn w=wn l=lln m=1} +C {lab_pin.sym} 570 -1640 1 1 {name=p37 lab=GND} +C {p.sym} 570 -1500 3 0 {name=m16 model=cmosp w=wp l=lp m=1 } +C {lab_pin.sym} 570 -1520 3 1 {name=p38 lab=VCC} +C {vdd.sym} 770 -1580 0 1 {name=l7 lab=VCC} +C {gnd.sym} 770 -1270 0 1 {name=l8 lab=GND} +C {lab_pin.sym} 30 -1420 0 0 {name=p39 lab=E} +C {lab_pin.sym} 770 -1420 0 1 {name=p40 lab=E} +C {n.sym} 2340 -1450 0 1 {name=m28 model=cmosn w=wn l=lln m=1} +C {n.sym} 2340 -1540 0 1 {name=m27 model=cmosn w=wn l=lln m=1} +C {n.sym} 1700 -1540 0 1 {name=m21 model=cmosn w=wn l=lln m=1} +C {n.sym} 1700 -1450 0 1 {name=m24 model=cmosn w=wn l=lln m=1} +C {p.sym} 1350 -1400 0 0 {name=m19 model=cmosp w=wp l=lp m=1 } +C {n.sym} 1350 -1110 0 0 {name=m20 model=cmosn w=wn l=lln m=1} +C {vdd.sym} 1370 -1470 0 0 {name=l10 lab=VCC} +C {gnd.sym} 1370 -1060 0 0 {name=l13 lab=GND} +C {lab_pin.sym} 1420 -1110 0 1 {name=p41 lab=GND} +C {lab_pin.sym} 1420 -1200 0 1 {name=p42 lab=GND} +C {lab_pin.sym} 1420 -1300 0 1 {name=p43 lab=VCC} +C {lab_pin.sym} 1420 -1400 0 1 {name=p44 lab=VCC} +C {switch-1.sym} 2320 -750 0 0 {name=s4} +C {inv_2.sym} 1540 -1250 0 0 {name=x21 VGND=VGND VNB=VNB VPB=VPB VPWR=VPWR prefix=sky130_fd_sc_hd__ } +C {inv_2.sym} 2320 -680 0 0 {name=x20 VGND=VGND VNB=VNB VPB=VPB VPWR=VPWR prefix=sky130_fd_sc_hd__ } +C {n.sym} 1350 -1200 0 0 {name=m17 model=cmosn w=wn l=lln m=1} +C {p.sym} 1350 -1300 0 0 {name=m18 model=cmosp w=wp l=lp m=1 } +C {diode_3.sym} 2220 -770 0 0 {name=x12 VTH=0.6 RON=10 ROFF=1G} +C {vdd.sym} 1680 -1810 0 1 {name=l14 lab=VCC} +C {gnd.sym} 1680 -1400 0 1 {name=l15 lab=GND} +C {lab_pin.sym} 1630 -1450 0 0 {name=p45 lab=GND} +C {lab_pin.sym} 1630 -1540 0 0 {name=p46 lab=GND} +C {lab_pin.sym} 1630 -1640 0 0 {name=p47 lab=VCC} +C {lab_pin.sym} 1630 -1740 0 0 {name=p48 lab=VCC} +C {lab_pin.sym} 50 -430 0 0 {name=p11 lab=E} +C {lab_wire.sym} 1760 -1070 0 0 {name=l49 lab=GN} +C {lab_pin.sym} 1270 -1250 0 0 {name=p51 lab=D} +C {lab_pin.sym} 1330 -1110 0 0 {name=p52 lab=G} +C {lab_pin.sym} 1330 -1400 0 0 {name=p53 lab=GN} +C {lab_pin.sym} 1720 -1450 0 1 {name=p54 lab=GN} +C {lab_pin.sym} 1720 -1740 0 1 {name=p55 lab=G} +C {lab_pin.sym} 1640 -1070 0 0 {name=p57 lab=G} +C {ipin.sym} 70 -160 0 0 { name=p19 lab=B } +C {invert-1.sym} 1620 -680 0 0 {name=s1} +C {dev-1.sym} 1460 -680 0 0 {name=s2} +C {dev-1.sym} 1780 -680 0 1 {name=s3} +C {vdd.sym} 1330 -680 0 0 {name=l9 lab=VCC} +C {p.sym} 2340 -1740 0 1 {name=m25 model=cmosp w=wp l=lp m=1 } +C {p.sym} 2340 -1640 0 1 {name=m26 model=cmosp w=wp l=lp m=1 } +C {p.sym} 1700 -1640 0 1 {name=m22 model=cmosp w=wp l=lp m=1 } +C {p.sym} 1700 -1740 0 1 {name=m23 model=cmosp w=wp l=lp m=1 } +C {p.sym} 1990 -1400 0 0 {name=m29 model=cmosp w=wp l=lp m=1 } +C {n.sym} 1990 -1110 0 0 {name=m30 model=cmosn w=wn l=lln m=1} +C {vdd.sym} 2010 -1470 0 0 {name=l16 lab=VCC} +C {gnd.sym} 2010 -1060 0 0 {name=l17 lab=GND} +C {lab_pin.sym} 2060 -1110 0 1 {name=p49 lab=GND} +C {lab_pin.sym} 2060 -1200 0 1 {name=p50 lab=GND} +C {lab_pin.sym} 2060 -1300 0 1 {name=p58 lab=VCC} +C {lab_pin.sym} 2060 -1400 0 1 {name=p59 lab=VCC} +C {inv_2.sym} 2180 -1250 0 0 {name=x22 VGND=VGND VNB=VNB VPB=VPB VPWR=VPWR prefix=sky130_fd_sc_hd__ } +C {n.sym} 1990 -1200 0 0 {name=m31 model=cmosn w=wn l=lln m=1} +C {p.sym} 1990 -1300 0 0 {name=m32 model=cmosp w=wp l=lp m=1 } +C {vdd.sym} 2320 -1810 0 1 {name=l18 lab=VCC} +C {gnd.sym} 2320 -1400 0 1 {name=l19 lab=GND} +C {lab_pin.sym} 2270 -1450 0 0 {name=p60 lab=GND} +C {lab_pin.sym} 2270 -1540 0 0 {name=p61 lab=GND} +C {lab_pin.sym} 2270 -1640 0 0 {name=p62 lab=VCC} +C {lab_pin.sym} 2270 -1740 0 0 {name=p63 lab=VCC} +C {lab_pin.sym} 1910 -1250 0 0 {name=p64 lab=D} +C {lab_pin.sym} 1970 -1110 0 0 {name=p65 lab=G} +C {lab_pin.sym} 1970 -1400 0 0 {name=p66 lab=GN} +C {lab_pin.sym} 2360 -1450 0 1 {name=p67 lab=GN} +C {lab_pin.sym} 2360 -1740 0 1 {name=p68 lab=G}