mirror of
https://github.com/hneemann/Digital.git
synced 2025-09-13 14:56:29 -04:00
improved model analyzer variable naming
This commit is contained in:
parent
0a3dac09cf
commit
05d3477dcd
@ -155,14 +155,17 @@ public class ModelAnalyser {
|
|||||||
SplitPinString pins = SplitPinString.create(s);
|
SplitPinString pins = SplitPinString.create(s);
|
||||||
|
|
||||||
final ObservableValues spOutputs = sp.getOutputs();
|
final ObservableValues spOutputs = sp.getOutputs();
|
||||||
|
String name = s.getName();
|
||||||
|
if (!name.contains("_"))
|
||||||
|
name += "_";
|
||||||
for (int i = spOutputs.size() - 1; i >= 0; i--)
|
for (int i = spOutputs.size() - 1; i >= 0; i--)
|
||||||
outputs.add(new Signal(s.getName() + i, spOutputs.get(i)).setPinNumber(pins.getPin(i)));
|
outputs.add(new Signal(name + i, spOutputs.get(i)).setPinNumber(pins.getPin(i)));
|
||||||
|
|
||||||
s.getValue().fireHasChanged();
|
s.getValue().fireHasChanged();
|
||||||
|
|
||||||
ArrayList<String> names = new ArrayList<>(bits);
|
ArrayList<String> names = new ArrayList<>(bits);
|
||||||
for (int i = 0; i < bits; i++)
|
for (int i = 0; i < bits; i++)
|
||||||
names.add(s.getName() + i);
|
names.add(name + i);
|
||||||
|
|
||||||
modelAnalyzerInfo.addOutputBus(s.getName(), names);
|
modelAnalyzerInfo.addOutputBus(s.getName(), names);
|
||||||
|
|
||||||
@ -194,10 +197,13 @@ public class ModelAnalyser {
|
|||||||
|
|
||||||
SplitPinString pins = SplitPinString.create(s);
|
SplitPinString pins = SplitPinString.create(s);
|
||||||
ObservableValues.Builder builder = new ObservableValues.Builder();
|
ObservableValues.Builder builder = new ObservableValues.Builder();
|
||||||
|
String name = s.getName();
|
||||||
|
if (!name.contains("_"))
|
||||||
|
name += "_";
|
||||||
for (int i = bits - 1; i >= 0; i--) {
|
for (int i = bits - 1; i >= 0; i--) {
|
||||||
ObservableValue o = new ObservableValue(s.getName() + i, 1);
|
ObservableValue o = new ObservableValue(name + i, 1);
|
||||||
builder.add(o);
|
builder.add(o);
|
||||||
inputs.add(new Signal(s.getName() + i, o).setPinNumber(pins.getPin(i)));
|
inputs.add(new Signal(name + i, o).setPinNumber(pins.getPin(i)));
|
||||||
}
|
}
|
||||||
final ObservableValues inputsList = builder.reverse().build();
|
final ObservableValues inputsList = builder.reverse().build();
|
||||||
sp.setInputs(inputsList);
|
sp.setInputs(inputsList);
|
||||||
|
|||||||
@ -188,8 +188,8 @@ public class ModelAnalyserTest extends TestCase {
|
|||||||
checkTable(tt.getResult("Q_0^{n+1}"), one, zero, one, zero);
|
checkTable(tt.getResult("Q_0^{n+1}"), one, zero, one, zero);
|
||||||
checkTable(tt.getResult("Q_1^{n+1}"), zero, one, one, zero);
|
checkTable(tt.getResult("Q_1^{n+1}"), zero, one, one, zero);
|
||||||
|
|
||||||
assertEquals("Y1", tt.getResultName(2));
|
assertEquals("Y_1", tt.getResultName(2));
|
||||||
assertEquals("Y0", tt.getResultName(3));
|
assertEquals("Y_0", tt.getResultName(3));
|
||||||
final BoolTable y1 = tt.getResult(2);
|
final BoolTable y1 = tt.getResult(2);
|
||||||
final BoolTable y0 = tt.getResult(3);
|
final BoolTable y0 = tt.getResult(3);
|
||||||
for (int i = 0; i < 4; i++) {
|
for (int i = 0; i < 4; i++) {
|
||||||
@ -205,10 +205,10 @@ public class ModelAnalyserTest extends TestCase {
|
|||||||
checkIdent(tt);
|
checkIdent(tt);
|
||||||
|
|
||||||
TreeMap<String, String> p = tt.getModelAnalyzerInfo().getPins();
|
TreeMap<String, String> p = tt.getModelAnalyzerInfo().getPins();
|
||||||
assertEquals("i1", p.get("A0"));
|
assertEquals("i1", p.get("A_0"));
|
||||||
assertEquals("i2", p.get("A1"));
|
assertEquals("i2", p.get("A_1"));
|
||||||
assertEquals("o1", p.get("B0"));
|
assertEquals("o1", p.get("B_0"));
|
||||||
assertEquals("o2", p.get("B1"));
|
assertEquals("o2", p.get("B_1"));
|
||||||
}
|
}
|
||||||
|
|
||||||
// test with non zero default values set
|
// test with non zero default values set
|
||||||
@ -219,8 +219,8 @@ public class ModelAnalyserTest extends TestCase {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private void checkIdent(TruthTable tt) {
|
private void checkIdent(TruthTable tt) {
|
||||||
checkTable(tt.getResult("B1"), zero, zero, one, one);
|
checkTable(tt.getResult("B_1"), zero, zero, one, one);
|
||||||
checkTable(tt.getResult("B0"), zero, one, zero, one);
|
checkTable(tt.getResult("B_0"), zero, one, zero, one);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void checkTable(BoolTable table, ThreeStateValue... expected) {
|
private void checkTable(BoolTable table, ThreeStateValue... expected) {
|
||||||
@ -270,11 +270,11 @@ public class ModelAnalyserTest extends TestCase {
|
|||||||
ModelAnalyserInfo mai = new ModelAnalyser(model).analyse().getModelAnalyzerInfo();
|
ModelAnalyserInfo mai = new ModelAnalyser(model).analyse().getModelAnalyzerInfo();
|
||||||
|
|
||||||
assertEquals(2, mai.getInputBusMap().size());
|
assertEquals(2, mai.getInputBusMap().size());
|
||||||
checkBus(mai.getInputBusMap(), "A", "A0", "A1", "A2", "A3");
|
checkBus(mai.getInputBusMap(), "A", "A_0", "A_1", "A_2", "A_3");
|
||||||
checkBus(mai.getInputBusMap(), "B", "B0", "B1", "B2", "B3");
|
checkBus(mai.getInputBusMap(), "B", "B_0", "B_1", "B_2", "B_3");
|
||||||
|
|
||||||
assertEquals(1, mai.getOutputBusMap().size());
|
assertEquals(1, mai.getOutputBusMap().size());
|
||||||
checkBus(mai.getOutputBusMap(), "S", "S0", "S1", "S2", "S3");
|
checkBus(mai.getOutputBusMap(), "S", "S_0", "S_1", "S_2", "S_3");
|
||||||
}
|
}
|
||||||
|
|
||||||
private void checkBus(HashMap<String, ArrayList<String>> busMap, String name, String... names) {
|
private void checkBus(HashMap<String, ArrayList<String>> busMap, String name, String... names) {
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user