},
"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
--- /dev/null
+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