Fixed a bug in Am2900; created dlatch8/80; relayouted some components
[Mograsim.git] / net.mograsim.logic.core / src / net / mograsim / logic / core / types / Bit.java
index da7b8c9..752fbb8 100644 (file)
@@ -34,18 +34,36 @@ public enum Bit implements StrictLogicType<Bit>
                return fromTable(AND_TABLE, this, other);
        }
 
+       public static void and(Bit[] dst, Bit[] src)
+       {
+               for (int i = 0; i < dst.length; i++)
+                       dst[i] = dst[i].and(src[i]);
+       }
+
        @Override
        public Bit or(Bit other)
        {
                return fromTable(OR_TABLE, this, other);
        }
 
+       public static void or(Bit[] dst, Bit[] src)
+       {
+               for (int i = 0; i < dst.length; i++)
+                       dst[i] = dst[i].or(src[i]);
+       }
+
        @Override
        public Bit xor(Bit other)
        {
                return fromTable(XOR_TABLE, this, other);
        }
 
+       public static void xor(Bit[] dst, Bit[] src)
+       {
+               for (int i = 0; i < dst.length; i++)
+                       dst[i] = dst[i].xor(src[i]);
+       }
+
        @Override
        public Bit not()
        {
@@ -69,6 +87,11 @@ public enum Bit implements StrictLogicType<Bit>
                return bits;
        }
 
+       public BitVector toVector()
+       {
+               return BitVector.of(this, 1);
+       }
+
        public BitVector toVector(int length)
        {
                return BitVector.of(this, length);
@@ -80,6 +103,12 @@ public enum Bit implements StrictLogicType<Bit>
                return fromTable(JOIN_TABLE, this, other);
        }
 
+       public static void join(Bit[] dst, Bit[] src)
+       {
+               for (int i = 0; i < dst.length; i++)
+                       dst[i] = dst[i].join(src[i]);
+       }
+
        @Override
        public String toString()
        {