mirror of
https://github.com/hneemann/Digital.git
synced 2025-09-23 04:11:54 -04:00
reversed order of multi-bit inputs and outputs in TableDialog. See #108
This commit is contained in:
parent
d5fbff081b
commit
b0efe643cc
@ -130,11 +130,11 @@ public class ModelAnalyser {
|
|||||||
try {
|
try {
|
||||||
Splitter sp = Splitter.createOneToN(bits);
|
Splitter sp = Splitter.createOneToN(bits);
|
||||||
sp.setInputs(s.getValue().asList());
|
sp.setInputs(s.getValue().asList());
|
||||||
int i = 0;
|
|
||||||
for (ObservableValue out : sp.getOutputs()) {
|
final ObservableValues spOutputs = sp.getOutputs();
|
||||||
outputs.add(new Signal(s.getName() + i, out));
|
for (int i = spOutputs.size() - 1; i >= 0; i--)
|
||||||
i++;
|
outputs.add(new Signal(s.getName() + i, spOutputs.get(i)));
|
||||||
}
|
|
||||||
s.getValue().fireHasChanged();
|
s.getValue().fireHasChanged();
|
||||||
} catch (NodeException e) {
|
} catch (NodeException e) {
|
||||||
throw new AnalyseException(e);
|
throw new AnalyseException(e);
|
||||||
@ -163,12 +163,12 @@ public class ModelAnalyser {
|
|||||||
out.fireHasChanged();
|
out.fireHasChanged();
|
||||||
|
|
||||||
ObservableValues.Builder builder = new ObservableValues.Builder();
|
ObservableValues.Builder builder = new ObservableValues.Builder();
|
||||||
for (int i = 0; i < bits; i++) {
|
for (int i = bits - 1; i >= 0; i--) {
|
||||||
ObservableValue o = new ObservableValue(s.getName() + i, 1);
|
ObservableValue o = new ObservableValue(s.getName() + i, 1);
|
||||||
builder.add(o);
|
builder.add(o);
|
||||||
inputs.add(new Signal(s.getName() + i, o));
|
inputs.add(new Signal(s.getName() + i, o));
|
||||||
}
|
}
|
||||||
sp.setInputs(builder.build());
|
sp.setInputs(builder.reverse().build());
|
||||||
} catch (NodeException e) {
|
} catch (NodeException e) {
|
||||||
throw new AnalyseException(e);
|
throw new AnalyseException(e);
|
||||||
}
|
}
|
||||||
|
@ -2,10 +2,7 @@ package de.neemann.digital.core;
|
|||||||
|
|
||||||
import de.neemann.digital.core.element.ImmutableList;
|
import de.neemann.digital.core.element.ImmutableList;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.*;
|
||||||
import java.util.Arrays;
|
|
||||||
import java.util.Collection;
|
|
||||||
import java.util.Iterator;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @author hneemann
|
* @author hneemann
|
||||||
@ -58,6 +55,16 @@ public class ObservableValues extends ImmutableList<ObservableValue> {
|
|||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Reverses the order of the values
|
||||||
|
*
|
||||||
|
* @return the builder
|
||||||
|
*/
|
||||||
|
public Builder reverse() {
|
||||||
|
Collections.reverse(values);
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @return the {@link ObservableValues} instance
|
* @return the {@link ObservableValues} instance
|
||||||
*/
|
*/
|
||||||
|
@ -111,10 +111,10 @@ public class ModelAnalyserTest extends TestCase {
|
|||||||
checkTable(tt.getResult("Q0n+1"), one, zero, one, zero);
|
checkTable(tt.getResult("Q0n+1"), one, zero, one, zero);
|
||||||
checkTable(tt.getResult("Q1n+1"), zero, one, one, zero);
|
checkTable(tt.getResult("Q1n+1"), zero, one, one, zero);
|
||||||
|
|
||||||
assertEquals("Y0", tt.getResultName(2));
|
assertEquals("Y1", tt.getResultName(2));
|
||||||
assertEquals("Y1", tt.getResultName(3));
|
assertEquals("Y0", tt.getResultName(3));
|
||||||
final BoolTable y0 = tt.getResult(2);
|
final BoolTable y1 = tt.getResult(2);
|
||||||
final BoolTable y1 = tt.getResult(3);
|
final BoolTable y0 = tt.getResult(3);
|
||||||
for (int i = 0; i < 4; i++) {
|
for (int i = 0; i < 4; i++) {
|
||||||
assertEquals((i & 1) > 0, y0.get(i).invert().bool());
|
assertEquals((i & 1) > 0, y0.get(i).invert().bool());
|
||||||
assertEquals((i & 2) > 0, y1.get(i).invert().bool());
|
assertEquals((i & 2) > 0, y1.get(i).invert().bool());
|
||||||
@ -136,8 +136,8 @@ public class ModelAnalyserTest extends TestCase {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private void checkIdent(TruthTable tt) {
|
private void checkIdent(TruthTable tt) {
|
||||||
checkTable(tt.getResult("B0"), zero, zero, one, one);
|
checkTable(tt.getResult("B1"), zero, zero, one, one);
|
||||||
checkTable(tt.getResult("B1"), zero, one, zero, one);
|
checkTable(tt.getResult("B0"), zero, one, zero, one);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void checkTable(BoolTable table, ThreeStateValue... expected) {
|
private void checkTable(BoolTable table, ThreeStateValue... expected) {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user