projects
/
Mograsim.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (parent:
4f042bf
)
Improved addition loops in GUIAm2910RegCntr and GUIinc12
author
Daniel Kirschten
<daniel.kirschten@gmx.de>
Sun, 11 Aug 2019 08:13:11 +0000
(10:13 +0200)
committer
Daniel Kirschten
<daniel.kirschten@gmx.de>
Sun, 11 Aug 2019 08:14:46 +0000
(10:14 +0200)
net.mograsim.logic.model.am2900/src/net/mograsim/logic/model/am2900/components/GUIinc12.java
patch
|
blob
|
history
net.mograsim.logic.model.am2900/src/net/mograsim/logic/model/am2900/components/am2910/GUIAm2910RegCntr.java
patch
|
blob
|
history
diff --git
a/net.mograsim.logic.model.am2900/src/net/mograsim/logic/model/am2900/components/GUIinc12.java
b/net.mograsim.logic.model.am2900/src/net/mograsim/logic/model/am2900/components/GUIinc12.java
index
0b94583
..
cbd1f9f
100644
(file)
--- a/
net.mograsim.logic.model.am2900/src/net/mograsim/logic/model/am2900/components/GUIinc12.java
+++ b/
net.mograsim.logic.model.am2900/src/net/mograsim/logic/model/am2900/components/GUIinc12.java
@@
-1,6
+1,5
@@
package net.mograsim.logic.model.am2900.components;
package net.mograsim.logic.model.am2900.components;
-import static net.mograsim.logic.core.types.Bit.ONE;
import static net.mograsim.logic.core.types.Bit.U;
import static net.mograsim.logic.core.types.Bit.X;
import static net.mograsim.logic.core.types.Bit.Z;
import static net.mograsim.logic.core.types.Bit.U;
import static net.mograsim.logic.core.types.Bit.X;
import static net.mograsim.logic.core.types.Bit.Z;
@@
-51,19
+50,8
@@
public class GUIinc12 extends SimpleRectangularHardcodedGUIComponent
for (int i = 11; i >= 0; i--)
{
Bit a = ABits[i];
for (int i = 11; i >= 0; i--)
{
Bit a = ABits[i];
- Bit z;
- if (a.isBinary() && carry.isBinary())
- {
- boolean aBool = a == ONE;
- boolean carryBool = carry == ONE;
- z = aBool ^ carryBool ? ONE : ZERO;
- carry = aBool && carryBool ? ONE : ZERO;
- } else
- {
- carry = carry.join(a);
- z = carry;
- }
- YBits[i] = z;
+ YBits[i] = a.xor(carry);
+ carry = a.and(carry);
}
}
readWriteEnds.get("Y").feedSignals(YBits);
}
}
readWriteEnds.get("Y").feedSignals(YBits);
diff --git
a/net.mograsim.logic.model.am2900/src/net/mograsim/logic/model/am2900/components/am2910/GUIAm2910RegCntr.java
b/net.mograsim.logic.model.am2900/src/net/mograsim/logic/model/am2900/components/am2910/GUIAm2910RegCntr.java
index
baf456a
..
ec228c1
100644
(file)
--- a/
net.mograsim.logic.model.am2900/src/net/mograsim/logic/model/am2900/components/am2910/GUIAm2910RegCntr.java
+++ b/
net.mograsim.logic.model.am2900/src/net/mograsim/logic/model/am2900/components/am2910/GUIAm2910RegCntr.java
@@
-63,19
+63,8
@@
public class GUIAm2910RegCntr extends SimpleRectangularHardcodedGUIComponent
for (int i = 11; i >= 0; i--)
{
Bit a = QC[i];
for (int i = 11; i >= 0; i--)
{
Bit a = QC[i];
- Bit z;
- if (a.isBinary() && carry.isBinary())
- {
- boolean aBool = a == ONE;
- boolean carryBool = carry == ONE;
- z = !aBool ^ carryBool ? ONE : ZERO;
- carry = aBool || carryBool ? ONE : ZERO;
- } else
- {
- carry = carry.join(a);
- z = carry;
- }
- QC[i] = z;
+ QC[i] = a.xnor(carry);
+ carry = a.or(carry);
}
}
}
}
}
}