dff80 now has HighLevelStates:
authorDaniel Kirschten <daniel.kirschten@gmx.de>
Thu, 12 Sep 2019 10:18:49 +0000 (12:18 +0200)
committerDaniel Kirschten <daniel.kirschten@gmx.de>
Thu, 12 Sep 2019 10:20:32 +0000 (12:20 +0200)
"q"             all 80 bit (as a BitVector)
"q1"-"q80"      single bits (MSBit=q80, LSBit=q1; as Bit or BitVector)
"q8-1"-"q80-73" sub-bytes (MSB=q80-73, LSB=q8-1; as BitVector)

net.mograsim.logic.model.am2900/components/net/mograsim/logic/model/am2900/components/dff80.json
net.mograsim.logic.model.am2900/src/net/mograsim/logic/model/examples/GenerateDff80HighLevelStateHandler.java [new file with mode: 0644]

index dddf204..e1f37bc 100644 (file)
@@ -27,7 +27,7 @@
       },
       "name": "Q",
       "logicWidth": 80,
-      "usage": "INPUT"
+      "usage": "OUTPUT"
     }
   ],
   "innerScale": 0.2,
     "pinLabelMargin": 0.5
   },
   "outlineRendererSnippetID": "default",
-  "highLevelStateHandlerSnippetID": "default",
+  "highLevelStateHandlerSnippetID": "standard",
+  "highLevelStateHandlerParams": {
+    "subcomponentHighLevelStates": {},
+    "atomicHighLevelStates": {
+      "q": {
+        "id": "bitVectorSplitting",
+        "params": {
+          "vectorPartTargets": [
+            "q80-73",
+            "q72-65",
+            "q64-57",
+            "q56-49",
+            "q48-41",
+            "q40-33",
+            "q32-25",
+            "q24-17",
+            "q16-9",
+            "q8-1"
+          ],
+          "vectorPartLengthes": [
+            8,
+            8,
+            8,
+            8,
+            8,
+            8,
+            8,
+            8,
+            8,
+            8
+          ]
+        }
+      },
+      "q1": {
+        "id": "delegating",
+        "params": {
+          "delegateTarget": "dff8#0",
+          "subStateID": "q1"
+        }
+      },
+      "q10": {
+        "id": "delegating",
+        "params": {
+          "delegateTarget": "dff8#1",
+          "subStateID": "q2"
+        }
+      },
+      "q11": {
+        "id": "delegating",
+        "params": {
+          "delegateTarget": "dff8#1",
+          "subStateID": "q3"
+        }
+      },
+      "q12": {
+        "id": "delegating",
+        "params": {
+          "delegateTarget": "dff8#1",
+          "subStateID": "q4"
+        }
+      },
+      "q13": {
+        "id": "delegating",
+        "params": {
+          "delegateTarget": "dff8#1",
+          "subStateID": "q5"
+        }
+      },
+      "q14": {
+        "id": "delegating",
+        "params": {
+          "delegateTarget": "dff8#1",
+          "subStateID": "q6"
+        }
+      },
+      "q15": {
+        "id": "delegating",
+        "params": {
+          "delegateTarget": "dff8#1",
+          "subStateID": "q7"
+        }
+      },
+      "q16": {
+        "id": "delegating",
+        "params": {
+          "delegateTarget": "dff8#1",
+          "subStateID": "q8"
+        }
+      },
+      "q16-9": {
+        "id": "delegating",
+        "params": {
+          "delegateTarget": "dff8#1",
+          "subStateID": "q"
+        }
+      },
+      "q17": {
+        "id": "delegating",
+        "params": {
+          "delegateTarget": "dff8#2",
+          "subStateID": "q1"
+        }
+      },
+      "q18": {
+        "id": "delegating",
+        "params": {
+          "delegateTarget": "dff8#2",
+          "subStateID": "q2"
+        }
+      },
+      "q19": {
+        "id": "delegating",
+        "params": {
+          "delegateTarget": "dff8#2",
+          "subStateID": "q3"
+        }
+      },
+      "q2": {
+        "id": "delegating",
+        "params": {
+          "delegateTarget": "dff8#0",
+          "subStateID": "q2"
+        }
+      },
+      "q20": {
+        "id": "delegating",
+        "params": {
+          "delegateTarget": "dff8#2",
+          "subStateID": "q4"
+        }
+      },
+      "q21": {
+        "id": "delegating",
+        "params": {
+          "delegateTarget": "dff8#2",
+          "subStateID": "q5"
+        }
+      },
+      "q22": {
+        "id": "delegating",
+        "params": {
+          "delegateTarget": "dff8#2",
+          "subStateID": "q6"
+        }
+      },
+      "q23": {
+        "id": "delegating",
+        "params": {
+          "delegateTarget": "dff8#2",
+          "subStateID": "q7"
+        }
+      },
+      "q24": {
+        "id": "delegating",
+        "params": {
+          "delegateTarget": "dff8#2",
+          "subStateID": "q8"
+        }
+      },
+      "q24-17": {
+        "id": "delegating",
+        "params": {
+          "delegateTarget": "dff8#2",
+          "subStateID": "q"
+        }
+      },
+      "q25": {
+        "id": "delegating",
+        "params": {
+          "delegateTarget": "dff8#3",
+          "subStateID": "q1"
+        }
+      },
+      "q26": {
+        "id": "delegating",
+        "params": {
+          "delegateTarget": "dff8#3",
+          "subStateID": "q2"
+        }
+      },
+      "q27": {
+        "id": "delegating",
+        "params": {
+          "delegateTarget": "dff8#3",
+          "subStateID": "q3"
+        }
+      },
+      "q28": {
+        "id": "delegating",
+        "params": {
+          "delegateTarget": "dff8#3",
+          "subStateID": "q4"
+        }
+      },
+      "q29": {
+        "id": "delegating",
+        "params": {
+          "delegateTarget": "dff8#3",
+          "subStateID": "q5"
+        }
+      },
+      "q3": {
+        "id": "delegating",
+        "params": {
+          "delegateTarget": "dff8#0",
+          "subStateID": "q3"
+        }
+      },
+      "q30": {
+        "id": "delegating",
+        "params": {
+          "delegateTarget": "dff8#3",
+          "subStateID": "q6"
+        }
+      },
+      "q31": {
+        "id": "delegating",
+        "params": {
+          "delegateTarget": "dff8#3",
+          "subStateID": "q7"
+        }
+      },
+      "q32": {
+        "id": "delegating",
+        "params": {
+          "delegateTarget": "dff8#3",
+          "subStateID": "q8"
+        }
+      },
+      "q32-25": {
+        "id": "delegating",
+        "params": {
+          "delegateTarget": "dff8#3",
+          "subStateID": "q"
+        }
+      },
+      "q33": {
+        "id": "delegating",
+        "params": {
+          "delegateTarget": "dff8#4",
+          "subStateID": "q1"
+        }
+      },
+      "q34": {
+        "id": "delegating",
+        "params": {
+          "delegateTarget": "dff8#4",
+          "subStateID": "q2"
+        }
+      },
+      "q35": {
+        "id": "delegating",
+        "params": {
+          "delegateTarget": "dff8#4",
+          "subStateID": "q3"
+        }
+      },
+      "q36": {
+        "id": "delegating",
+        "params": {
+          "delegateTarget": "dff8#4",
+          "subStateID": "q4"
+        }
+      },
+      "q37": {
+        "id": "delegating",
+        "params": {
+          "delegateTarget": "dff8#4",
+          "subStateID": "q5"
+        }
+      },
+      "q38": {
+        "id": "delegating",
+        "params": {
+          "delegateTarget": "dff8#4",
+          "subStateID": "q6"
+        }
+      },
+      "q39": {
+        "id": "delegating",
+        "params": {
+          "delegateTarget": "dff8#4",
+          "subStateID": "q7"
+        }
+      },
+      "q4": {
+        "id": "delegating",
+        "params": {
+          "delegateTarget": "dff8#0",
+          "subStateID": "q4"
+        }
+      },
+      "q40": {
+        "id": "delegating",
+        "params": {
+          "delegateTarget": "dff8#4",
+          "subStateID": "q8"
+        }
+      },
+      "q40-33": {
+        "id": "delegating",
+        "params": {
+          "delegateTarget": "dff8#4",
+          "subStateID": "q"
+        }
+      },
+      "q41": {
+        "id": "delegating",
+        "params": {
+          "delegateTarget": "dff8#5",
+          "subStateID": "q1"
+        }
+      },
+      "q42": {
+        "id": "delegating",
+        "params": {
+          "delegateTarget": "dff8#5",
+          "subStateID": "q2"
+        }
+      },
+      "q43": {
+        "id": "delegating",
+        "params": {
+          "delegateTarget": "dff8#5",
+          "subStateID": "q3"
+        }
+      },
+      "q44": {
+        "id": "delegating",
+        "params": {
+          "delegateTarget": "dff8#5",
+          "subStateID": "q4"
+        }
+      },
+      "q45": {
+        "id": "delegating",
+        "params": {
+          "delegateTarget": "dff8#5",
+          "subStateID": "q5"
+        }
+      },
+      "q46": {
+        "id": "delegating",
+        "params": {
+          "delegateTarget": "dff8#5",
+          "subStateID": "q6"
+        }
+      },
+      "q47": {
+        "id": "delegating",
+        "params": {
+          "delegateTarget": "dff8#5",
+          "subStateID": "q7"
+        }
+      },
+      "q48": {
+        "id": "delegating",
+        "params": {
+          "delegateTarget": "dff8#5",
+          "subStateID": "q8"
+        }
+      },
+      "q48-41": {
+        "id": "delegating",
+        "params": {
+          "delegateTarget": "dff8#5",
+          "subStateID": "q"
+        }
+      },
+      "q49": {
+        "id": "delegating",
+        "params": {
+          "delegateTarget": "dff8#6",
+          "subStateID": "q1"
+        }
+      },
+      "q5": {
+        "id": "delegating",
+        "params": {
+          "delegateTarget": "dff8#0",
+          "subStateID": "q5"
+        }
+      },
+      "q50": {
+        "id": "delegating",
+        "params": {
+          "delegateTarget": "dff8#6",
+          "subStateID": "q2"
+        }
+      },
+      "q51": {
+        "id": "delegating",
+        "params": {
+          "delegateTarget": "dff8#6",
+          "subStateID": "q3"
+        }
+      },
+      "q52": {
+        "id": "delegating",
+        "params": {
+          "delegateTarget": "dff8#6",
+          "subStateID": "q4"
+        }
+      },
+      "q53": {
+        "id": "delegating",
+        "params": {
+          "delegateTarget": "dff8#6",
+          "subStateID": "q5"
+        }
+      },
+      "q54": {
+        "id": "delegating",
+        "params": {
+          "delegateTarget": "dff8#6",
+          "subStateID": "q6"
+        }
+      },
+      "q55": {
+        "id": "delegating",
+        "params": {
+          "delegateTarget": "dff8#6",
+          "subStateID": "q7"
+        }
+      },
+      "q56": {
+        "id": "delegating",
+        "params": {
+          "delegateTarget": "dff8#6",
+          "subStateID": "q8"
+        }
+      },
+      "q56-49": {
+        "id": "delegating",
+        "params": {
+          "delegateTarget": "dff8#6",
+          "subStateID": "q"
+        }
+      },
+      "q57": {
+        "id": "delegating",
+        "params": {
+          "delegateTarget": "dff8#7",
+          "subStateID": "q1"
+        }
+      },
+      "q58": {
+        "id": "delegating",
+        "params": {
+          "delegateTarget": "dff8#7",
+          "subStateID": "q2"
+        }
+      },
+      "q59": {
+        "id": "delegating",
+        "params": {
+          "delegateTarget": "dff8#7",
+          "subStateID": "q3"
+        }
+      },
+      "q6": {
+        "id": "delegating",
+        "params": {
+          "delegateTarget": "dff8#0",
+          "subStateID": "q6"
+        }
+      },
+      "q60": {
+        "id": "delegating",
+        "params": {
+          "delegateTarget": "dff8#7",
+          "subStateID": "q4"
+        }
+      },
+      "q61": {
+        "id": "delegating",
+        "params": {
+          "delegateTarget": "dff8#7",
+          "subStateID": "q5"
+        }
+      },
+      "q62": {
+        "id": "delegating",
+        "params": {
+          "delegateTarget": "dff8#7",
+          "subStateID": "q6"
+        }
+      },
+      "q63": {
+        "id": "delegating",
+        "params": {
+          "delegateTarget": "dff8#7",
+          "subStateID": "q7"
+        }
+      },
+      "q64": {
+        "id": "delegating",
+        "params": {
+          "delegateTarget": "dff8#7",
+          "subStateID": "q8"
+        }
+      },
+      "q64-57": {
+        "id": "delegating",
+        "params": {
+          "delegateTarget": "dff8#7",
+          "subStateID": "q"
+        }
+      },
+      "q65": {
+        "id": "delegating",
+        "params": {
+          "delegateTarget": "dff8#8",
+          "subStateID": "q1"
+        }
+      },
+      "q66": {
+        "id": "delegating",
+        "params": {
+          "delegateTarget": "dff8#8",
+          "subStateID": "q2"
+        }
+      },
+      "q67": {
+        "id": "delegating",
+        "params": {
+          "delegateTarget": "dff8#8",
+          "subStateID": "q3"
+        }
+      },
+      "q68": {
+        "id": "delegating",
+        "params": {
+          "delegateTarget": "dff8#8",
+          "subStateID": "q4"
+        }
+      },
+      "q69": {
+        "id": "delegating",
+        "params": {
+          "delegateTarget": "dff8#8",
+          "subStateID": "q5"
+        }
+      },
+      "q7": {
+        "id": "delegating",
+        "params": {
+          "delegateTarget": "dff8#0",
+          "subStateID": "q7"
+        }
+      },
+      "q70": {
+        "id": "delegating",
+        "params": {
+          "delegateTarget": "dff8#8",
+          "subStateID": "q6"
+        }
+      },
+      "q71": {
+        "id": "delegating",
+        "params": {
+          "delegateTarget": "dff8#8",
+          "subStateID": "q7"
+        }
+      },
+      "q72": {
+        "id": "delegating",
+        "params": {
+          "delegateTarget": "dff8#8",
+          "subStateID": "q8"
+        }
+      },
+      "q72-65": {
+        "id": "delegating",
+        "params": {
+          "delegateTarget": "dff8#8",
+          "subStateID": "q"
+        }
+      },
+      "q73": {
+        "id": "delegating",
+        "params": {
+          "delegateTarget": "dff8#9",
+          "subStateID": "q1"
+        }
+      },
+      "q74": {
+        "id": "delegating",
+        "params": {
+          "delegateTarget": "dff8#9",
+          "subStateID": "q2"
+        }
+      },
+      "q75": {
+        "id": "delegating",
+        "params": {
+          "delegateTarget": "dff8#9",
+          "subStateID": "q3"
+        }
+      },
+      "q76": {
+        "id": "delegating",
+        "params": {
+          "delegateTarget": "dff8#9",
+          "subStateID": "q4"
+        }
+      },
+      "q77": {
+        "id": "delegating",
+        "params": {
+          "delegateTarget": "dff8#9",
+          "subStateID": "q5"
+        }
+      },
+      "q78": {
+        "id": "delegating",
+        "params": {
+          "delegateTarget": "dff8#9",
+          "subStateID": "q6"
+        }
+      },
+      "q79": {
+        "id": "delegating",
+        "params": {
+          "delegateTarget": "dff8#9",
+          "subStateID": "q7"
+        }
+      },
+      "q8": {
+        "id": "delegating",
+        "params": {
+          "delegateTarget": "dff8#0",
+          "subStateID": "q8"
+        }
+      },
+      "q8-1": {
+        "id": "delegating",
+        "params": {
+          "delegateTarget": "dff8#0",
+          "subStateID": "q"
+        }
+      },
+      "q80": {
+        "id": "delegating",
+        "params": {
+          "delegateTarget": "dff8#9",
+          "subStateID": "q8"
+        }
+      },
+      "q80-73": {
+        "id": "delegating",
+        "params": {
+          "delegateTarget": "dff8#9",
+          "subStateID": "q"
+        }
+      },
+      "q9": {
+        "id": "delegating",
+        "params": {
+          "delegateTarget": "dff8#1",
+          "subStateID": "q1"
+        }
+      }
+    }
+  },
   "version": "0.1.5"
 }
\ No newline at end of file
diff --git a/net.mograsim.logic.model.am2900/src/net/mograsim/logic/model/examples/GenerateDff80HighLevelStateHandler.java b/net.mograsim.logic.model.am2900/src/net/mograsim/logic/model/examples/GenerateDff80HighLevelStateHandler.java
new file mode 100644 (file)
index 0000000..7a16134
--- /dev/null
@@ -0,0 +1,74 @@
+package net.mograsim.logic.model.examples;
+
+import java.util.ArrayList;
+
+import net.mograsim.logic.model.am2900.Am2900Loader;
+import net.mograsim.logic.model.model.LogicModelModifiable;
+import net.mograsim.logic.model.model.components.submodels.SubmodelComponent;
+import net.mograsim.logic.model.serializing.DeserializedSubmodelComponent;
+import net.mograsim.logic.model.serializing.IdentifyParams;
+import net.mograsim.logic.model.serializing.IndirectModelComponentCreator;
+import net.mograsim.logic.model.snippets.highlevelstatehandlers.standard.StandardHighLevelStateHandler;
+import net.mograsim.logic.model.snippets.highlevelstatehandlers.standard.atomic.BitVectorSplittingAtomicHighLevelStateHandler;
+import net.mograsim.logic.model.snippets.highlevelstatehandlers.standard.atomic.BitVectorSplittingAtomicHighLevelStateHandler.BitVectorSplittingAtomicHighLevelStateHandlerParams;
+import net.mograsim.logic.model.snippets.highlevelstatehandlers.standard.atomic.DelegatingAtomicHighLevelStateHandler;
+import net.mograsim.logic.model.snippets.highlevelstatehandlers.standard.atomic.DelegatingAtomicHighLevelStateHandler.DelegatingAtomicHighLevelStateHandlerParams;
+
+public class GenerateDff80HighLevelStateHandler
+{
+       public static void main(String[] args)
+       {
+               Am2900Loader.setup();
+               LogicModelModifiable model = new LogicModelModifiable();
+               DeserializedSubmodelComponent comp = new DeserializedSubmodelComponent(model, null, null, null);
+               IndirectModelComponentCreator.createComponent(comp.getSubmodelModifiable(), "dff8", "dff8#0");// LSB
+               IndirectModelComponentCreator.createComponent(comp.getSubmodelModifiable(), "dff8", "dff8#1");
+               IndirectModelComponentCreator.createComponent(comp.getSubmodelModifiable(), "dff8", "dff8#2");
+               IndirectModelComponentCreator.createComponent(comp.getSubmodelModifiable(), "dff8", "dff8#3");
+               IndirectModelComponentCreator.createComponent(comp.getSubmodelModifiable(), "dff8", "dff8#4");
+               IndirectModelComponentCreator.createComponent(comp.getSubmodelModifiable(), "dff8", "dff8#5");
+               IndirectModelComponentCreator.createComponent(comp.getSubmodelModifiable(), "dff8", "dff8#6");
+               IndirectModelComponentCreator.createComponent(comp.getSubmodelModifiable(), "dff8", "dff8#7");
+               IndirectModelComponentCreator.createComponent(comp.getSubmodelModifiable(), "dff8", "dff8#8");
+               IndirectModelComponentCreator.createComponent(comp.getSubmodelModifiable(), "dff8", "dff8#9");// MSB
+
+               StandardHighLevelStateHandler hlsh = new StandardHighLevelStateHandler(comp);
+               comp.setHighLevelStateHandler(hlsh);
+               BitVectorSplittingAtomicHighLevelStateHandlerParams p = new BitVectorSplittingAtomicHighLevelStateHandlerParams();
+               p.vectorPartLengthes = new ArrayList<>();
+               p.vectorPartTargets = new ArrayList<>();
+               for (int i = 0; i < 10; i++)
+               {
+                       addHandlersForByte(comp, hlsh, i, p);
+               }
+               hlsh.addAtomicHighLevelState("q", new BitVectorSplittingAtomicHighLevelStateHandler(comp, p));
+
+               System.out.println(comp.getHighLevelStateHandler().getParamsForSerializingJSON(new IdentifyParams()));
+       }
+
+       private static void addHandlersForByte(SubmodelComponent comp, StandardHighLevelStateHandler hlsh, int LSByteIndex,
+                       BitVectorSplittingAtomicHighLevelStateHandlerParams p2)
+       {
+               // TODO remove the "+ 1" as soon as HighLevelStates count from 0
+               // Also replace the 1 in "bitIndexInByte = 1" below with a 0
+               int LSBitIndex = LSByteIndex * 8 + 1;
+               int MSBitIndex = LSBitIndex + 7;
+               String dffThisByte = "dff8#" + LSByteIndex;
+               String thisByteHLSID = "q" + MSBitIndex + "-" + LSBitIndex;
+
+               p2.vectorPartLengthes.add(0, 8);
+               p2.vectorPartTargets.add(0, thisByteHLSID);
+
+               DelegatingAtomicHighLevelStateHandlerParams p = new DelegatingAtomicHighLevelStateHandlerParams();
+               p.delegateTarget = dffThisByte;
+               p.subStateID = "q";
+               hlsh.addAtomicHighLevelState(thisByteHLSID, new DelegatingAtomicHighLevelStateHandler(comp, p));
+               for (int bitIndexOuter = LSBitIndex, bitIndexInByte = 1; bitIndexOuter <= MSBitIndex; bitIndexOuter++, bitIndexInByte++)
+               {
+                       p = new DelegatingAtomicHighLevelStateHandlerParams();
+                       p.delegateTarget = dffThisByte;
+                       p.subStateID = "q" + bitIndexInByte;
+                       hlsh.addAtomicHighLevelState("q" + bitIndexOuter, new DelegatingAtomicHighLevelStateHandler(comp, p));
+               }
+       }
+}
\ No newline at end of file