From 6bb6553ea6b604c391a7237b4c6394a6d5b1b831 Mon Sep 17 00:00:00 2001 From: Stefan Frederik Date: Tue, 12 Jan 2021 18:35:19 +0100 Subject: [PATCH] add simulation driver in switch_level_sim.sch --- src/hilight.c | 2 +- .../xschem_simulator/switch_level_sim.sch | 525 ++++++++---------- 2 files changed, 226 insertions(+), 301 deletions(-) diff --git a/src/hilight.c b/src/hilight.c index 03f3ec45..74b05ed1 100644 --- a/src/hilight.c +++ b/src/hilight.c @@ -1125,7 +1125,6 @@ void propagate_logic() int *newval_arr = NULL; #endif - tclsetvar("tclstop", "0"); prepare_netlist_structs(0); while(1) { found=0; @@ -1232,6 +1231,7 @@ void logic_set(int value, int num) static int map[] = {LOGIC_0, LOGIC_1, LOGIC_X, LOGIC_Z}; struct hilight_hashentry *entry; + tclsetvar("tclstop", "0"); prepare_netlist_structs(0); if(!xctx->simdata.valid) create_simdata(); rebuild_selected_array(); diff --git a/xschem_library/xschem_simulator/switch_level_sim.sch b/xschem_library/xschem_simulator/switch_level_sim.sch index 652cf63e..fa6d95e2 100644 --- a/xschem_library/xschem_simulator/switch_level_sim.sch +++ b/xschem_library/xschem_simulator/switch_level_sim.sch @@ -7,12 +7,6 @@ E {} L 4 920 -440 920 -280 {dash=3} L 4 1270 -440 1270 -280 {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 8 5 240 -2580 240 -1860 1590 -1860 1590 -2580 240 -2580 {dash=3} -T {These structures can -not be reliably -simulated -due to race -conditions} 250 -2570 0 0 0.6 0.6 {} T {3-way, 4-way switches} 1180 -840 0 0 0.6 0.6 {} T {rectifying devices} 1220 -1480 0 0 0.6 0.6 {} T {Transistor-level logic gates} 1930 -530 0 0 0.6 0.6 {} @@ -25,57 +19,52 @@ T {Signal colors:} 190 -230 0 0 0.4 0.4 {} T {Blue: Logic level low (0)} 210 -170 0 0 0.4 0.4 {layer=12} T {Red: Logic level high (1)} 210 -140 0 0 0.4 0.4 {layer=5} T {Brown: High Impedance (Z)} 210 -110 0 0 0.4 0.4 {layer=13} -N 170 -400 260 -400 { lab=#net1} -N 170 -520 230 -520 { lab=#net2} +N 170 -400 260 -400 { lab=B} +N 170 -520 230 -520 { lab=#net1} N 210 -480 230 -480 { lab=C} -N 890 -400 890 -340 { lab=#net3} -N 890 -400 1300 -400 { lab=#net3} -N 720 -400 720 -270 { lab=#net3} -N 700 -150 700 -90 { lab=#net4} -N 680 -320 680 -270 { lab=#net5} -N 610 -320 680 -320 { lab=#net5} -N 810 -300 810 -210 { lab=#net6} -N 800 -210 810 -210 { lab=#net6} -N 690 -400 720 -400 { lab=#net3} -N 1470 -400 1490 -400 { lab=#net3} -N 760 -340 810 -340 { lab=#net7} -N 1300 -400 1300 -340 { lab=#net3} -N 1470 -400 1470 -270 { lab=#net3} -N 1490 -150 1490 -90 { lab=#net8} -N 1510 -320 1510 -270 { lab=#net9} -N 1510 -320 1580 -320 { lab=#net9} -N 1380 -300 1380 -210 { lab=#net10} -N 1380 -210 1390 -210 { lab=#net10} -N 1380 -340 1430 -340 { lab=#net11} -N 760 -340 760 -320 { lab=#net7} -N 1430 -340 1430 -320 { lab=#net11} -N 720 -400 890 -400 { lab=#net3} -N 1300 -400 1470 -400 { lab=#net3} -N 380 -650 470 -650 { lab=#net12} -N 420 -630 470 -630 { lab=#net13} -N 460 -610 470 -610 { lab=#net14} -N 650 -650 740 -650 { lab=#net15} -N 460 -610 460 -580 { lab=#net14} -N 460 -580 680 -580 { lab=#net14} -N 680 -610 680 -580 { lab=#net14} -N 680 -610 740 -610 { lab=#net14} -N 920 -650 970 -650 { lab=#net16} -N 420 -710 420 -630 { lab=#net13} -N 680 -630 740 -630 { lab=#net13} -N 420 -710 680 -710 { lab=#net13} -N 680 -710 680 -630 { lab=#net13} -N 270 -680 290 -680 { lab=#net13} -N 290 -760 290 -680 { lab=#net13} -N 210 -760 290 -760 { lab=#net13} -N 30 -760 130 -760 { lab=#net17} -N 30 -760 30 -660 { lab=#net17} -N 30 -660 90 -660 { lab=#net17} -N 50 -680 90 -680 { lab=#net18} -N 50 -690 50 -680 { lab=#net18} -N 90 -610 460 -610 { lab=#net14} -N 90 -640 90 -610 { lab=#net14} -N 50 -610 90 -610 { lab=#net14} -N 50 -620 50 -610 { lab=#net14} +N 890 -400 890 -340 { lab=#net2} +N 890 -400 1300 -400 { lab=#net2} +N 720 -400 720 -270 { lab=#net2} +N 700 -150 700 -90 { lab=#net3} +N 680 -320 680 -270 { lab=B} +N 610 -320 680 -320 { lab=B} +N 810 -300 810 -210 { lab=GND} +N 690 -400 720 -400 { lab=#net2} +N 1470 -400 1490 -400 { lab=#net2} +N 780 -340 810 -340 { lab=CK3} +N 1300 -400 1300 -340 { lab=#net2} +N 1470 -400 1470 -270 { lab=#net2} +N 1490 -150 1490 -90 { lab=#net4} +N 1510 -320 1510 -270 { lab=A} +N 1510 -320 1580 -320 { lab=A} +N 1380 -300 1380 -210 { lab=D} +N 1380 -210 1390 -210 { lab=D} +N 1380 -340 1410 -340 { lab=CK2} +N 720 -400 890 -400 { lab=#net2} +N 1300 -400 1470 -400 { lab=#net2} +N 380 -650 470 -650 { lab=#net5} +N 420 -630 470 -630 { lab=CK2} +N 460 -610 470 -610 { lab=RSTB} +N 650 -650 740 -650 { lab=#net6} +N 460 -610 460 -580 { lab=RSTB} +N 460 -580 680 -580 { lab=RSTB} +N 680 -610 680 -580 { lab=RSTB} +N 680 -610 740 -610 { lab=RSTB} +N 920 -650 970 -650 { lab=CK3} +N 420 -710 420 -630 { lab=CK2} +N 680 -630 740 -630 { lab=CK2} +N 420 -710 680 -710 { lab=CK2} +N 680 -710 680 -630 { lab=CK2} +N 270 -680 290 -680 { lab=CK2} +N 290 -760 290 -680 { lab=CK2} +N 210 -760 290 -760 { lab=CK2} +N 30 -760 130 -760 { lab=#net7} +N 30 -760 30 -660 { lab=#net7} +N 30 -660 90 -660 { lab=#net7} +N 70 -680 90 -680 { lab=A} +N 90 -610 460 -610 { lab=RSTB} +N 90 -640 90 -610 { lab=RSTB} +N 50 -610 90 -610 { lab=RSTB} N 1840 -240 1840 -210 { lab=Z} N 1840 -150 1840 -80 { lab=GND} N 1970 -100 1970 -80 { lab=GND} @@ -88,7 +77,7 @@ N 1690 -220 1780 -220 { lab=A} N 1690 -130 1740 -130 { lab=B} N 1840 -180 1890 -180 { lab=GND} N 1970 -130 2030 -130 { lab=GND} -N 1840 -350 1840 -310 { lab=#net19} +N 1840 -350 1840 -310 { lab=#net8} N 1840 -440 1840 -410 { lab=VCC} N 1970 -240 2020 -240 { lab=Z} N 1740 -380 1800 -380 { lab=B} @@ -97,15 +86,15 @@ N 1840 -380 1900 -380 { lab=VCC} N 1840 -280 1900 -280 { lab=VCC} N 1900 -380 1900 -280 { lab=VCC} N 1840 -80 1970 -80 { lab=GND} -N 2390 -170 2390 -140 { lab=#net20} +N 2390 -170 2390 -140 { lab=#net9} N 2390 -200 2440 -200 { lab=GND} N 2390 -110 2440 -110 { lab=GND} N 2350 -380 2410 -380 { lab=VCC} N 2470 -320 2530 -320 { lab=VCC} -N 2470 -290 2470 -260 { lab=#net21} -N 2390 -260 2470 -260 { lab=#net21} -N 2350 -350 2350 -260 { lab=#net21} -N 2390 -260 2390 -230 { lab=#net21} +N 2470 -290 2470 -260 { lab=#net10} +N 2390 -260 2470 -260 { lab=#net10} +N 2350 -350 2350 -260 { lab=#net10} +N 2390 -260 2390 -230 { lab=#net10} N 2350 -440 2350 -410 { lab=VCC} N 2350 -440 2470 -440 { lab=VCC} N 2470 -440 2470 -350 { lab=VCC} @@ -118,228 +107,145 @@ N 2270 -290 2270 -110 { lab=A} N 2270 -380 2310 -380 { lab=A} N 2180 -250 2310 -250 { lab=B} N 2180 -290 2270 -290 { lab=A} -N 2470 -260 2600 -260 { lab=#net21} -N 700 -760 970 -760 { lab=#net16} -N 970 -760 970 -650 { lab=#net16} -N 380 -760 620 -760 { lab=#net12} -N 380 -760 380 -650 { lab=#net12} -N 380 -630 420 -630 { lab=#net13} +N 2470 -260 2600 -260 { lab=#net10} +N 700 -760 970 -760 { lab=CK3} +N 970 -760 970 -650 { lab=CK3} +N 380 -760 620 -760 { lab=#net5} +N 380 -760 380 -650 { lab=#net5} +N 380 -630 420 -630 { lab=CK2} N 1840 -240 1970 -240 { lab=Z} N 1780 -280 1780 -220 { lab=A} -N 2350 -260 2390 -260 { lab=#net21} +N 2350 -260 2390 -260 { lab=#net10} N 2310 -320 2310 -250 { lab=B} N 2270 -380 2270 -290 { lab=A} N 1840 -250 1840 -240 { lab=Z} N 270 -1030 270 -970 { lab=GND} -N 330 -1030 330 -970 { lab=#net22} +N 330 -1030 330 -970 { lab=#net11} N 100 -1030 270 -1030 { lab=GND} -N 330 -1030 370 -1030 { lab=#net22} +N 330 -1030 370 -1030 { lab=#net11} N 300 -930 300 -900 { lab=E} N 160 -1160 170 -1160 { lab=E} N 270 -1290 270 -1230 { lab=VCC} -N 330 -1290 330 -1230 { lab=#net22} +N 330 -1290 330 -1230 { lab=#net11} N 100 -1290 270 -1290 { lab=VCC} -N 330 -1290 370 -1290 { lab=#net22} -N 300 -1160 300 -1130 { lab=#net23} -N 250 -1160 300 -1160 { lab=#net23} -N 370 -1180 370 -1030 { lab=#net22} -N 370 -1180 420 -1180 { lab=#net22} +N 330 -1290 370 -1290 { lab=#net11} +N 300 -1160 300 -1130 { lab=#net12} +N 250 -1160 300 -1160 { lab=#net12} +N 370 -1180 370 -1030 { lab=#net11} +N 370 -1180 420 -1180 { lab=#net11} N 300 -1410 300 -1390 { lab=E} N 150 -1410 150 -1160 { lab=E} N 150 -1410 300 -1410 { lab=E} N 160 -1160 160 -900 { lab=E} N 160 -900 300 -900 { lab=E} -N 620 -1030 620 -970 { lab=#net24} +N 620 -1030 620 -970 { lab=#net13} N 680 -1030 680 -970 { lab=GND} N 680 -1030 850 -1030 { lab=GND} -N 560 -1030 620 -1030 { lab=#net24} +N 560 -1030 620 -1030 { lab=#net13} N 650 -930 650 -900 { lab=E} N 800 -1160 850 -1160 { lab=E} -N 620 -1290 620 -1230 { lab=#net24} +N 620 -1290 620 -1230 { lab=#net13} N 680 -1290 680 -1230 { lab=VCC} N 680 -1290 850 -1290 { lab=VCC} -N 560 -1290 620 -1290 { lab=#net24} -N 650 -1160 650 -1130 { lab=#net25} -N 650 -1160 700 -1160 { lab=#net25} -N 560 -1180 560 -1030 { lab=#net24} -N 510 -1180 560 -1180 { lab=#net24} +N 560 -1290 620 -1290 { lab=#net13} +N 650 -1160 650 -1130 { lab=#net14} +N 650 -1160 700 -1160 { lab=#net14} +N 560 -1180 560 -1030 { lab=#net13} +N 510 -1180 560 -1180 { lab=#net13} N 650 -1410 800 -1410 { lab=E} N 650 -1410 650 -1390 { lab=E} N 800 -1410 800 -1160 { lab=E} N 790 -1160 790 -900 { lab=E} N 650 -900 790 -900 { lab=E} N 270 -1090 270 -1030 { lab=GND} -N 330 -1090 330 -1030 { lab=#net22} +N 330 -1090 330 -1030 { lab=#net11} N 270 -1350 270 -1290 { lab=VCC} -N 330 -1350 330 -1290 { lab=#net22} -N 300 -1190 300 -1160 { lab=#net23} -N 370 -1290 370 -1180 { lab=#net22} +N 330 -1350 330 -1290 { lab=#net11} +N 300 -1190 300 -1160 { lab=#net12} +N 370 -1290 370 -1180 { lab=#net11} N 110 -1160 150 -1160 { lab=E} N 150 -1160 160 -1160 { lab=E} N 680 -1090 680 -1030 { lab=GND} -N 620 -1090 620 -1030 { lab=#net24} +N 620 -1090 620 -1030 { lab=#net13} N 680 -1350 680 -1290 { lab=VCC} -N 620 -1350 620 -1290 { lab=#net24} -N 650 -1190 650 -1160 { lab=#net25} -N 560 -1290 560 -1180 { lab=#net24} +N 620 -1350 620 -1290 { lab=#net13} +N 650 -1190 650 -1160 { lab=#net14} +N 560 -1290 560 -1180 { lab=#net13} N 790 -1160 800 -1160 { lab=E} N 780 -1160 790 -1160 { lab=E} -N 290 -630 380 -630 { lab=#net13} -N 290 -680 290 -630 { lab=#net13} -N 1270 -1380 1270 -1310 { lab=#net26} -N 1270 -1250 1270 -1190 { lab=#net27} -N 1270 -1190 1330 -1190 { lab=#net27} -N 1410 -1190 1500 -1190 { lab=#net28} -N 450 -2010 450 -1980 { lab=#net29} -N 450 -2110 450 -2070 { lab=#net30} -N 450 -2210 450 -2170 { lab=#net31} -N 450 -2310 450 -2270 { lab=VCC} -N 450 -1920 450 -1900 { lab=GND} -N 450 -1950 500 -1950 { lab=GND} -N 450 -2040 500 -2040 { lab=GND} -N 450 -2140 500 -2140 { lab=VCC} -N 450 -2240 500 -2240 { lab=VCC} -N 390 -2140 410 -2140 { lab=D} -N 390 -2040 410 -2040 { lab=D} -N 450 -2090 580 -2090 { lab=#net30} -N 390 -2140 390 -2040 { lab=D} -N 350 -2090 390 -2090 { lab=D} -N 1400 -1260 1460 -1260 { lab=#net32} -N 1320 -1260 1340 -1260 { lab=#net27} -N 1320 -1260 1320 -1190 { lab=#net27} -N 1370 -1340 1370 -1300 { lab=#net33} -N 760 -2270 760 -2240 { lab=#net34} -N 760 -2370 760 -2330 { lab=#net30} -N 760 -2450 760 -2430 { lab=#net35} -N 760 -2530 760 -2510 { lab=VCC} -N 760 -2180 760 -2160 { lab=GND} -N 710 -2210 760 -2210 { lab=GND} -N 710 -2300 760 -2300 { lab=GND} -N 710 -2400 760 -2400 { lab=VCC} -N 710 -2480 760 -2480 { lab=VCC} -N 800 -2400 850 -2400 { lab=#net36} -N 800 -2300 850 -2300 { lab=#net36} -N 850 -2400 850 -2300 { lab=#net36} -N 850 -2300 850 -2090 { lab=#net36} -N 570 -2350 760 -2350 { lab=#net30} -N 780 -2090 870 -2090 { lab=#net36} -N 660 -2090 710 -2090 { lab=#net36} -N 710 -2090 780 -2090 { lab=#net36} -N 570 -2350 570 -2090 { lab=#net30} -N 800 -1910 840 -1910 { lab=GN} -N 1240 -610 1340 -610 { lab=#net37} -N 1240 -630 1340 -630 { lab=#net38} -N 1400 -610 1500 -610 { lab=#net39} -N 1400 -630 1500 -630 { lab=#net40} -N 1560 -620 1660 -620 { lab=#net41} +N 290 -630 380 -630 { lab=CK2} +N 290 -680 290 -630 { lab=CK2} +N 1270 -1380 1270 -1310 { lab=A} +N 1270 -1250 1270 -1190 { lab=#net15} +N 1270 -1190 1330 -1190 { lab=#net15} +N 1410 -1190 1500 -1190 { lab=#net16} +N 1400 -1260 1460 -1260 { lab=#net17} +N 1320 -1260 1340 -1260 { lab=#net15} +N 1320 -1260 1320 -1190 { lab=#net15} +N 1370 -1340 1370 -1300 { lab=#net18} +N 1240 -610 1340 -610 { lab=#net19} +N 1240 -630 1340 -630 { lab=#net20} +N 1400 -610 1500 -610 { lab=#net21} +N 1400 -630 1500 -630 { lab=#net22} +N 1560 -620 1660 -620 { lab=#net23} N 1080 -620 1180 -620 { lab=VCC} -N 1210 -760 1210 -660 { lab=#net42} -N 1370 -760 1370 -660 { lab=#net43} -N 1530 -760 1530 -660 { lab=#net44} -N 1200 -770 1210 -760 { lab=#net42} -N 1200 -770 1210 -780 { lab=#net42} -N 1210 -780 1220 -770 { lab=#net42} -N 1210 -760 1220 -770 { lab=#net42} -N 1360 -770 1370 -760 { lab=#net43} -N 1360 -770 1370 -780 { lab=#net43} -N 1370 -780 1380 -770 { lab=#net43} -N 1370 -760 1380 -770 { lab=#net43} -N 1520 -770 1530 -760 { lab=#net44} -N 1520 -770 1530 -780 { lab=#net44} -N 1530 -780 1540 -770 { lab=#net44} -N 1530 -760 1540 -770 { lab=#net44} -N 1050 -2010 1050 -1980 { lab=#net45} -N 1050 -2110 1050 -2070 { lab=#net46} -N 1050 -2210 1050 -2170 { lab=#net47} -N 1050 -2310 1050 -2270 { lab=VCC} -N 1050 -1920 1050 -1900 { lab=GND} -N 1050 -1950 1100 -1950 { lab=GND} -N 1050 -2040 1100 -2040 { lab=GND} -N 1050 -2140 1100 -2140 { lab=VCC} -N 1050 -2240 1100 -2240 { lab=VCC} -N 990 -2140 1010 -2140 { lab=D} -N 990 -2040 1010 -2040 { lab=D} -N 1050 -2090 1180 -2090 { lab=#net46} -N 990 -2140 990 -2040 { lab=D} -N 950 -2090 990 -2090 { lab=D} -N 1360 -2270 1360 -2240 { lab=#net48} -N 1360 -2370 1360 -2330 { lab=#net46} -N 1360 -2450 1360 -2430 { lab=#net49} -N 1360 -2530 1360 -2510 { lab=VCC} -N 1360 -2180 1360 -2160 { lab=GND} -N 1310 -2210 1360 -2210 { lab=GND} -N 1310 -2300 1360 -2300 { lab=GND} -N 1310 -2400 1360 -2400 { lab=VCC} -N 1310 -2480 1360 -2480 { lab=VCC} -N 1400 -2400 1450 -2400 { lab=#net50} -N 1400 -2300 1450 -2300 { lab=#net50} -N 1450 -2400 1450 -2300 { lab=#net50} -N 1450 -2300 1450 -2090 { lab=#net50} -N 1170 -2350 1360 -2350 { lab=#net46} -N 1380 -2090 1470 -2090 { lab=#net50} -N 1260 -2090 1310 -2090 { lab=#net50} -N 1310 -2090 1380 -2090 { lab=#net50} -N 1170 -2350 1170 -2090 { lab=#net46} -N 2240 -1220 2240 -1190 { lab=#net51} -N 2120 -1290 2240 -1220 { lab=#net51} -N 2120 -1320 2120 -1290 { lab=#net51} -N 2240 -1340 2240 -1310 { lab=#net52} -N 2120 -1240 2240 -1310 { lab=#net52} -N 2120 -1240 2120 -1230 { lab=#net52} -N 2290 -1190 2320 -1190 { lab=#net51} -N 2060 -1360 2120 -1360 { lab=#net53} -N 2240 -800 2240 -770 { lab=#net53} -N 2120 -870 2240 -800 { lab=#net53} -N 2120 -880 2120 -870 { lab=#net53} -N 2240 -920 2240 -890 { lab=#net54} -N 2120 -820 2240 -890 { lab=#net54} -N 2240 -920 2320 -920 { lab=#net54} -N 2010 -920 2120 -920 { lab=CLOCK} -N 2470 -1020 2470 -990 { lab=#net55} -N 2350 -1090 2470 -1020 { lab=#net55} -N 2350 -1120 2350 -1090 { lab=#net55} +N 1210 -760 1210 -660 { lab=A} +N 1370 -760 1370 -660 { lab=C} +N 1530 -760 1530 -660 { lab=D} +N 2240 -1220 2240 -1190 { lab=#net24} +N 2120 -1290 2240 -1220 { lab=#net24} +N 2120 -1320 2120 -1290 { lab=#net24} +N 2240 -1340 2240 -1310 { lab=#net25} +N 2120 -1240 2240 -1310 { lab=#net25} +N 2120 -1240 2120 -1230 { lab=#net25} +N 2290 -1190 2320 -1190 { lab=#net24} +N 2060 -1360 2120 -1360 { lab=#net26} +N 2240 -800 2240 -770 { lab=#net26} +N 2120 -870 2240 -800 { lab=#net26} +N 2120 -880 2120 -870 { lab=#net26} +N 2240 -920 2240 -890 { lab=#net27} +N 2120 -820 2240 -890 { lab=#net27} +N 2240 -920 2320 -920 { lab=#net27} +N 2010 -920 2120 -920 { lab=A} +N 2470 -1020 2470 -990 { lab=#net28} +N 2350 -1090 2470 -1020 { lab=#net28} +N 2350 -1120 2350 -1090 { lab=#net28} N 2470 -1140 2470 -1110 { lab=Q} N 2350 -1040 2470 -1110 { lab=Q} N 2350 -1040 2350 -1030 { lab=Q} N 2470 -1140 2530 -1140 { lab=Q} -N 2010 -1190 2120 -1190 { lab=CLOCK} -N 2010 -1190 2010 -920 { lab=CLOCK} -N 2060 -1360 2060 -880 { lab=#net53} -N 2060 -880 2120 -880 { lab=#net53} -N 2100 -960 2120 -960 { lab=#net51} -N 2100 -980 2100 -960 { lab=#net51} -N 2100 -980 2290 -1110 { lab=#net51} -N 2290 -1190 2290 -1110 { lab=#net51} -N 2320 -1160 2350 -1160 { lab=#net51} -N 2320 -1190 2320 -1160 { lab=#net51} -N 2320 -990 2350 -990 { lab=#net54} -N 2320 -990 2320 -920 { lab=#net54} -N 2350 -950 2350 -650 { lab=CLEAR_} -N 1940 -730 2120 -730 { lab=CLEAR_} -N 1940 -730 1940 -650 { lab=CLEAR_} -N 1940 -1150 1940 -730 { lab=CLEAR_} -N 1940 -1150 2120 -1150 { lab=CLEAR_} -N 2240 -1190 2290 -1190 { lab=#net51} -N 1880 -770 2120 -770 { lab=DATA} -N 1870 -650 1940 -650 { lab=CLEAR_} -N 1940 -650 2350 -650 { lab=CLEAR_} -N 2010 -920 2010 -610 { lab=CLOCK} -N 2120 -820 2120 -810 { lab=#net54} -N 350 -500 370 -500 { lab=#net56} -N 370 -500 370 -440 { lab=#net56} -N 370 -440 390 -440 { lab=#net56} -N 260 -400 390 -400 { lab=#net1} +N 2010 -1190 2120 -1190 { lab=A} +N 2010 -1190 2010 -920 { lab=A} +N 2060 -1360 2060 -880 { lab=#net26} +N 2060 -880 2120 -880 { lab=#net26} +N 2100 -960 2120 -960 { lab=#net24} +N 2100 -980 2100 -960 { lab=#net24} +N 2100 -980 2290 -1110 { lab=#net24} +N 2290 -1190 2290 -1110 { lab=#net24} +N 2320 -1160 2350 -1160 { lab=#net24} +N 2320 -1190 2320 -1160 { lab=#net24} +N 2320 -990 2350 -990 { lab=#net27} +N 2320 -990 2320 -920 { lab=#net27} +N 2350 -950 2350 -650 { lab=RSTB} +N 1940 -730 2120 -730 { lab=RSTB} +N 1940 -730 1940 -650 { lab=RSTB} +N 1940 -1150 1940 -730 { lab=RSTB} +N 1940 -1150 2120 -1150 { lab=RSTB} +N 2240 -1190 2290 -1190 { lab=#net24} +N 1880 -770 2120 -770 { lab=C} +N 1870 -650 1940 -650 { lab=RSTB} +N 1940 -650 2350 -650 { lab=RSTB} +N 2010 -920 2010 -610 { lab=A} +N 2120 -820 2120 -810 { lab=#net27} +N 350 -500 370 -500 { lab=E} +N 370 -500 370 -440 { lab=E} +N 370 -440 390 -440 { lab=E} +N 260 -400 390 -400 { lab=B} N 280 -360 390 -360 { lab=D} -N 550 -400 590 -400 { lab=#net57} -C {opin.sym} 110 -160 0 0 { name=p16 lab=Y } -C {inv_2.sym} 760 -1910 0 0 {name=x23 VGND=VGND VNB=VNB VPB=VPB VPWR=VPWR prefix=sky130_fd_sc_hd__ } +N 550 -400 590 -400 { lab=G} C {ipin.sym} 50 -190 0 0 { name=p20 lab=A } -C {opin.sym} 110 -130 0 0 { name=p4 lab=Z } C {ipin.sym} 50 -150 0 0 { name=p5 lab=C } C {title.sym} 160 -30 0 0 {name=l1 author="Stefan Schippers"} -C {lab_pin.sym} 50 -420 0 0 {name=p1 lab=E} -C {nand2_1.sym} 110 -400 0 0 {name=x2 VGND=VGND VNB=VNB VPB=VPB VPWR=VPWR prefix=sky130_fd_sc_hd__ } -C {lab_pin.sym} 50 -380 0 0 {name=p2 lab=B} C {lab_pin.sym} 50 -540 0 0 {name=p10 lab=A} C {nand2_1.sym} 110 -520 0 0 {name=x4 VGND=VGND VNB=VNB VPB=VPB VPWR=VPWR prefix=sky130_fd_sc_hd__ } C {nand2_1.sym} 290 -500 0 0 {name=x8 VGND=VGND VNB=VNB VPB=VPB VPWR=VPWR prefix=sky130_fd_sc_hd__ } @@ -349,7 +255,6 @@ C {nand2_1.sym} 700 -210 1 0 {name=x10 VGND=VGND VNB=VNB VPB=VPB VPWR=VPWR prefi 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 -630 0 0 {name=x15 VGND=VGND VNB=VNB VPB=VPB VPWR=VPWR prefix=sky130_fd_sc_hd__ } -C {ipin.sym} 50 -110 0 0 { name=p17 lab=E } C {dlrtn_1.sym} 560 -630 0 0 {name=x16 VGND=VGND VNB=VNB VPB=VPB VPWR=VPWR prefix=sky130_fd_sc_hd__ } C {dfrtp_1.sym} 180 -660 0 0 {name=x13 VGND=VGND VNB=VNB VPB=VPB VPWR=VPWR prefix=sky130_fd_sc_hd__ } C {inv_2.sym} 170 -760 0 1 {name=x14 VGND=VGND VNB=VNB VPB=VPB VPWR=VPWR prefix=sky130_fd_sc_hd__ } @@ -401,81 +306,101 @@ C {lab_pin.sym} 650 -1230 3 1 {name=p38 lab=VCC} C {vdd.sym} 850 -1290 0 1 {name=l7 lab=VCC} C {gnd.sym} 850 -1030 0 1 {name=l8 lab=GND} C {lab_pin.sym} 110 -1160 0 0 {name=p39 lab=E} -C {p.sym} 1380 -2400 0 1 {name=m26 model=cmosp w=wp l=lp m=1 } -C {n.sym} 1380 -2300 0 1 {name=m27 model=cmosn w=wn l=lln m=1} -C {n.sym} 780 -2300 0 1 {name=m21 model=cmosn w=wn l=lln m=1} -C {p.sym} 780 -2400 0 1 {name=m22 model=cmosp w=wp l=lp m=1 } -C {n.sym} 780 -2210 0 1 {name=m24 model=cmosn w=wn l=lln m=1} -C {p.sym} 430 -2240 0 0 {name=m19 model=cmosp w=wp l=lp m=1 } -C {n.sym} 430 -1950 0 0 {name=m20 model=cmosn w=wn l=lln m=1} -C {vdd.sym} 450 -2310 0 0 {name=l10 lab=VCC} -C {gnd.sym} 450 -1900 0 0 {name=l13 lab=GND} -C {lab_pin.sym} 500 -1950 0 1 {name=p41 lab=GND} -C {lab_pin.sym} 500 -2040 0 1 {name=p42 lab=GND} -C {lab_pin.sym} 500 -2140 0 1 {name=p43 lab=VCC} -C {lab_pin.sym} 500 -2240 0 1 {name=p44 lab=VCC} C {switch-1.sym} 1370 -1260 0 0 {name=s4} -C {inv_2.sym} 620 -2090 0 0 {name=x21 VGND=VGND VNB=VNB VPB=VPB VPWR=VPWR prefix=sky130_fd_sc_hd__ } C {inv_2.sym} 1370 -1190 0 0 {name=x20 VGND=VGND VNB=VNB VPB=VPB VPWR=VPWR prefix=sky130_fd_sc_hd__ } -C {n.sym} 430 -2040 0 0 {name=m17 model=cmosn w=wn l=lln m=1} -C {p.sym} 430 -2140 0 0 {name=m18 model=cmosp w=wp l=lp m=1 } C {diode_3.sym} 1270 -1280 0 0 {name=x12 VTH=0.6 RON=10 ROFF=1G} -C {vdd.sym} 760 -2530 0 1 {name=l14 lab=VCC} -C {gnd.sym} 760 -2160 0 1 {name=l15 lab=GND} -C {lab_pin.sym} 710 -2210 0 0 {name=p45 lab=GND} -C {lab_pin.sym} 710 -2300 0 0 {name=p46 lab=GND} -C {lab_pin.sym} 710 -2400 0 0 {name=p47 lab=VCC} -C {lab_pin.sym} 710 -2480 0 0 {name=p48 lab=VCC} -C {lab_pin.sym} 50 -500 0 0 {name=p11 lab=E} -C {lab_wire.sym} 840 -1910 0 0 {name=l49 lab=GN} -C {lab_pin.sym} 350 -2090 0 0 {name=p51 lab=D} -C {lab_pin.sym} 410 -1950 0 0 {name=p52 lab=G} -C {lab_pin.sym} 410 -2240 0 0 {name=p53 lab=GN} -C {lab_pin.sym} 800 -2210 0 1 {name=p54 lab=GN} -C {lab_pin.sym} 800 -2480 0 1 {name=p55 lab=G} -C {lab_pin.sym} 720 -1910 0 0 {name=p57 lab=G} C {ipin.sym} 50 -170 0 0 { name=p19 lab=B } C {invert-1.sym} 1370 -620 0 0 {name=s1} C {dev-1.sym} 1210 -620 0 0 {name=s2} C {dev-1.sym} 1530 -620 0 1 {name=s3} C {vdd.sym} 1080 -620 0 0 {name=l9 lab=VCC} -C {p.sym} 1380 -2480 0 1 {name=m25 model=cmosp w=wp l=lp m=1 } C {lab_pin.sym} 850 -1160 0 1 {name=p40 lab=E} -C {n.sym} 1380 -2210 0 1 {name=m28 model=cmosn w=wn l=lln m=1} -C {p.sym} 780 -2480 0 1 {name=m23 model=cmosp w=wp l=lp m=1 } -C {p.sym} 1030 -2240 0 0 {name=m29 model=cmosp w=wp l=lp m=1 } -C {n.sym} 1030 -1950 0 0 {name=m30 model=cmosn w=wn l=lln m=1} -C {vdd.sym} 1050 -2310 0 0 {name=l16 lab=VCC} -C {gnd.sym} 1050 -1900 0 0 {name=l17 lab=GND} -C {lab_pin.sym} 1100 -1950 0 1 {name=p49 lab=GND} -C {lab_pin.sym} 1100 -2040 0 1 {name=p50 lab=GND} -C {lab_pin.sym} 1100 -2140 0 1 {name=p58 lab=VCC} -C {lab_pin.sym} 1100 -2240 0 1 {name=p59 lab=VCC} -C {inv_2.sym} 1220 -2090 0 0 {name=x22 VGND=VGND VNB=VNB VPB=VPB VPWR=VPWR prefix=sky130_fd_sc_hd__ } -C {n.sym} 1030 -2040 0 0 {name=m31 model=cmosn w=wn l=lln m=1} -C {p.sym} 1030 -2140 0 0 {name=m32 model=cmosp w=wp l=lp m=1 } -C {vdd.sym} 1360 -2530 0 1 {name=l18 lab=VCC} -C {gnd.sym} 1360 -2160 0 1 {name=l19 lab=GND} -C {lab_pin.sym} 1310 -2210 0 0 {name=p60 lab=GND} -C {lab_pin.sym} 1310 -2300 0 0 {name=p61 lab=GND} -C {lab_pin.sym} 1310 -2400 0 0 {name=p62 lab=VCC} -C {lab_pin.sym} 1310 -2480 0 0 {name=p63 lab=VCC} -C {lab_pin.sym} 950 -2090 0 0 {name=p64 lab=D} -C {lab_pin.sym} 1010 -1950 0 0 {name=p65 lab=G} -C {lab_pin.sym} 1010 -2240 0 0 {name=p66 lab=GN} -C {lab_pin.sym} 1400 -2210 0 1 {name=p67 lab=GN} -C {lab_pin.sym} 1400 -2480 0 1 {name=p68 lab=G} -C {ipin.sym} 50 -90 0 0 { name=p56 lab=G } C {ipin.sym} 50 -130 0 0 { name=p69 lab=D } C {nand2_1.sym} 2180 -1340 0 0 {name=x45 VGND=VGND VNB=VNB VPB=VPB VPWR=VPWR prefix=sky130_fd_sc_hd__ } C {nand2_1.sym} 2410 -1140 0 0 {name=x49 VGND=VGND VNB=VNB VPB=VPB VPWR=VPWR prefix=sky130_fd_sc_hd__ } C {nand3_1.sym} 2180 -1190 0 0 {name=x51 VGND=VGND VNB=VNB VPB=VPB VPWR=VPWR prefix=sky130_fd_sc_hd__ } C {nand3_1.sym} 2180 -920 0 0 {name=x46 VGND=VGND VNB=VNB VPB=VPB VPWR=VPWR prefix=sky130_fd_sc_hd__ } C {nand3_1.sym} 2410 -990 0 0 {name=x50 VGND=VGND VNB=VNB VPB=VPB VPWR=VPWR prefix=sky130_fd_sc_hd__ } -C {ipin.sym} 1870 -650 0 0 {name=p3 lab=CLEAR_} C {nand3_1.sym} 2180 -770 0 0 {name=x48 VGND=VGND VNB=VNB VPB=VPB VPWR=VPWR prefix=sky130_fd_sc_hd__ } C {lab_pin.sym} 2530 -1140 0 1 {name=l29 sig_type=std_logic lab=Q} -C {ipin.sym} 2010 -610 0 0 {name=p7 lab=CLOCK} -C {ipin.sym} 1880 -770 0 0 {name=p8 lab=DATA} C {o21ai_1.sym} 470 -400 0 0 {name=x5 VGND=VGND VNB=VNB VPB=VPB VPWR=VPWR prefix=sky130_fd_sc_hd__ } C {lab_pin.sym} 280 -360 0 0 {name=p12 lab=D} +C {lab_pin.sym} 970 -650 0 1 {name=p13 lab=CK3} +C {lab_pin.sym} 290 -760 0 1 {name=p14 lab=CK2} +C {lab_pin.sym} 170 -400 0 0 {name=p15 lab=B} +C {lab_pin.sym} 370 -500 0 1 {name=p1 lab=E} +C {lab_pin.sym} 50 -500 0 0 {name=p2 lab=B} +C {lab_pin.sym} 590 -400 0 1 {name=p11 lab=G} +C {lab_pin.sym} 70 -680 0 0 {name=p4 lab=A} +C {launcher.sym} 170 -290 0 0 {name=h3 +descr="START SIMULATION" +comment=" + This launcher Starts a simple interactive simulation +" +tclcommand=" set count 0 + set duration 400 + xschem select instance p20 ;# A + xschem select instance p19 ;# B + xschem select instance p5 ;# C + xschem select instance p69 ;# D + xschem select instance p72 ;# RSTB + xschem logic_set 0 + update + after $duration + xschem select instance p20 clear ;# A + xschem select instance p19 clear ;# B + xschem select instance p5 clear ;# C + xschem select instance p69 clear ;# D + xschem select instance p72 clear ;# RSTB + while \{1\} \{ + update + incr count + if \{$count>100 || $tclstop == 1\} break + xschem select instance p20 + xschem logic_set [expr int(rand()*2.)] + xschem select instance p20 clear + after $duration + + if \{$count>100 || $tclstop == 1\} break + xschem select instance p19 + xschem logic_set [expr int(rand()*2.)] + xschem select instance p19 clear + after $duration + + if \{$count>100 || $tclstop == 1\} break + xschem select instance p5 + xschem logic_set [expr int(rand()*2.)] + xschem select instance p5 clear + after $duration + + if \{$count>100 || $tclstop == 1\} break + xschem select instance p69 + xschem logic_set [expr int(rand()*2.)] + xschem select instance p69 clear + after $duration + + if \{$count>100 || $tclstop == 1\} break + xschem select instance p72 + xschem logic_set [expr int(0.8 + rand()*1.2)] + xschem select instance p72 clear + after $duration + + \} + +" +} +C {lab_pin.sym} 610 -320 0 0 {name=p16 lab=B} +C {lab_pin.sym} 1580 -320 0 1 {name=p17 lab=A} +C {lab_pin.sym} 1390 -210 0 1 {name=p70 lab=D} +C {lab_pin.sym} 1410 -340 0 1 {name=p71 lab=CK2} +C {ipin.sym} 50 -110 0 0 { name=p72 lab=RSTB } +C {lab_pin.sym} 50 -610 0 0 {name=p73 lab=RSTB} +C {lab_pin.sym} 1870 -650 0 0 {name=p3 lab=RSTB} +C {lab_pin.sym} 1880 -770 0 0 {name=p8 lab=C} +C {lab_pin.sym} 2010 -610 0 0 {name=p7 lab=A} +C {lab_pin.sym} 1270 -1380 0 0 {name=p74 lab=A} +C {lab_pin.sym} 1210 -760 0 0 {name=p41 lab=A} +C {lab_pin.sym} 1370 -760 0 0 {name=p42 lab=C} +C {lab_pin.sym} 1530 -760 0 0 {name=p43 lab=D} +C {lab_pin.sym} 780 -340 0 0 {name=p44 lab=CK3} +C {gnd.sym} 810 -210 0 1 {name=l2 lab=GND}