From 8180fa399029015454394dd35d38cf8acb3b3af0 Mon Sep 17 00:00:00 2001 From: hneemann Date: Mon, 6 Mar 2017 08:03:34 +0100 Subject: [PATCH] added some documentation --- src/main/dig/cmos/sram.dig | 1311 +++++++++-------- .../wiring/bus/BusModelStateObserver.java | 8 +- 2 files changed, 685 insertions(+), 634 deletions(-) diff --git a/src/main/dig/cmos/sram.dig b/src/main/dig/cmos/sram.dig index d5fd118bc..51bcef060 100644 --- a/src/main/dig/cmos/sram.dig +++ b/src/main/dig/cmos/sram.dig @@ -1,6 +1,15 @@ 1 + + + Description + 16-Bit Statisches RAM. +Unter der Speichermatrix findet sich die +Schreiblogik jeweils einmal für jede Spalte in der +Speichermatrix. + + NFET @@ -245,172 +254,176 @@ NFET - + NFET - + PFET - + PFET - + NFET - + PFET - + NFET - + NFET - + PFET - + PFET - + Ground - + Ground - + VDD - + VDD - + In + + Description + Dateneingang zum Schreiben der Bits. + Label D_In - + VDD - + Ground - + NFET - + NFET - + PFET - + PFET - + NFET - + PFET - + NFET - + NFET - + PFET - + PFET - + Ground - + Ground - + VDD - + VDD - + VDD - + Ground - + NFET @@ -535,82 +548,82 @@ NFET - + NFET - + PFET - + PFET - + NFET - + PFET - + NFET - + NFET - + PFET - + PFET - + Ground - + Ground - + VDD - + VDD - + VDD - + Ground - + NFET @@ -735,82 +748,82 @@ NFET - + NFET - + PFET - + PFET - + NFET - + PFET - + NFET - + NFET - + PFET - + PFET - + Ground - + Ground - + VDD - + VDD - + VDD - + Ground - + NFET @@ -1319,6 +1332,10 @@ In + + Description + Zeilenleitung Bit 0 + Label R0 @@ -1329,6 +1346,10 @@ In + + Description + Zeilenleitung Bit 1 + Label R1 @@ -1353,6 +1374,10 @@ Out + + Description + Datenausgang zum Lesen der Bits. + Label D_Out @@ -1377,6 +1402,10 @@ In + + Description + Spaltenleitung Bit 0 + Label C0 @@ -1387,6 +1416,10 @@ In + + Description + Spaltenleitung Bit 1 + Label C1 @@ -1411,6 +1444,12 @@ In + + Description + Write-Enable. +Geht diese Leitung auf Eins, wird der Dateneingang +in der Speichermatrix gespeichert. + Label WE @@ -1514,7 +1553,7 @@ - + LED @@ -1676,6 +1715,16 @@ + + Text + + + Label + 16-Bit SRAM + + + + @@ -1714,10 +1763,106 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -1767,20 +1912,64 @@ - - + + - - + + - - + + - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -1854,6 +2043,54 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -1914,57 +2151,61 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - + + - - + + - - + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + @@ -1998,54 +2239,6 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - @@ -2182,66 +2375,6 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - @@ -2275,109 +2408,25 @@ - - - - - - + + - - + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - @@ -2486,22 +2535,6 @@ - - - - - - - - - - - - - - - - @@ -2542,10 +2575,6 @@ - - - - @@ -2662,6 +2691,22 @@ + + + + + + + + + + + + + + + + @@ -2811,7 +2856,7 @@ - + @@ -2848,7 +2893,7 @@ - + @@ -2867,32 +2912,32 @@ - - + + - + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - + @@ -2911,12 +2956,12 @@ - - + + - - + + @@ -2928,7 +2973,7 @@ - + @@ -2944,11 +2989,11 @@ - + - - + + @@ -2967,8 +3012,8 @@ - - + + @@ -3003,36 +3048,36 @@ - - + + - - + + - - + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - + @@ -3099,29 +3144,29 @@ - - + + - + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - @@ -3140,15 +3185,15 @@ - + - - + + - - + + @@ -3164,24 +3209,28 @@ - + - - - - - - - - + + + + + + + + + + + + @@ -3295,20 +3344,20 @@ - - + + - + - - + + - - + + @@ -3328,24 +3377,24 @@ - + + + + + + + + + + + + + - - - - - - - - - - - - @@ -3419,44 +3468,44 @@ - - + + - + - - + + - - + + - - + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - + @@ -3564,35 +3613,35 @@ - + - - + + - - + + + + + + + + + + + + + + - - - - - - - - - - - - - + @@ -3612,11 +3661,11 @@ - + - - + + @@ -3635,8 +3684,8 @@ - - + + @@ -3668,16 +3717,12 @@ - + - - - - @@ -3687,28 +3732,28 @@ - - + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - + @@ -3840,15 +3885,15 @@ - + - - + + - - + + @@ -3867,29 +3912,29 @@ - - + + - + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - @@ -3908,11 +3953,11 @@ - + - - + + @@ -3939,8 +3984,8 @@ - - + + @@ -3956,7 +4001,7 @@ - + @@ -3971,12 +4016,12 @@ - - + + - - + + @@ -4043,69 +4088,69 @@ - - + + - + + + + + + + + + + + + + + + + + - - + + - - - - - - - - - - - - - - - - - - + + - + - - + + - - + + - - + + + + + + + + + + + + + + - - - - - - - - - - - - @@ -4171,20 +4216,20 @@ - - + + - - + + - + - - + + @@ -4266,25 +4311,25 @@ + + + + + + + + + + + + - - - - - - - - - - - - - + @@ -4368,11 +4413,11 @@ - + - - + + @@ -4399,8 +4444,8 @@ - - + + @@ -4411,28 +4456,28 @@ - - + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - + diff --git a/src/main/java/de/neemann/digital/core/wiring/bus/BusModelStateObserver.java b/src/main/java/de/neemann/digital/core/wiring/bus/BusModelStateObserver.java index e050f513b..17e71d498 100644 --- a/src/main/java/de/neemann/digital/core/wiring/bus/BusModelStateObserver.java +++ b/src/main/java/de/neemann/digital/core/wiring/bus/BusModelStateObserver.java @@ -15,8 +15,8 @@ import java.util.HashSet; */ public final class BusModelStateObserver implements ModelStateObserver { private final ArrayList busList; + private final HashSet closedSwitches; private int version; - private HashSet closedSwitches; BusModelStateObserver() { busList = new ArrayList<>(); @@ -68,6 +68,12 @@ public final class BusModelStateObserver implements ModelStateObserver { reconfigureNets(); } + /** + * Reconfiguration of the nets. + * If a switch is closed the nets on both contacts of the switch are connected to a single + * common net, After that the state of the new merged nets are updated. + * Needs to be called every time a switch has changed. + */ private void reconfigureNets() { busList.removeIf(abstractBusHandler -> abstractBusHandler instanceof ConnectedBusHandler); HashMap netMap = new HashMap<>();