From: Christian Femers Date: Thu, 18 Jul 2019 15:29:59 +0000 (+0200) Subject: Added single Bit constants X-Git-Url: https://mograsim.net/gitweb/?a=commitdiff_plain;h=4afd7c9afe4333815a488f90bdc3c3b9991028f4;hp=e8e95e2e345f4d9c5927aa78f5c0fb607d352a97;p=Mograsim.git Added single Bit constants --- diff --git a/net.mograsim.logic.core/src/net/mograsim/logic/core/types/BitVector.java b/net.mograsim.logic.core/src/net/mograsim/logic/core/types/BitVector.java index cce83f43..74375210 100644 --- a/net.mograsim.logic.core/src/net/mograsim/logic/core/types/BitVector.java +++ b/net.mograsim.logic.core/src/net/mograsim/logic/core/types/BitVector.java @@ -18,8 +18,22 @@ import java.util.function.UnaryOperator; */ public final class BitVector implements StrictLogicType, Iterable, RandomAccess { + public static final BitVector SINGLE_U = new BitVector(Bit.U); + public static final BitVector SINGLE_X = new BitVector(Bit.X); + public static final BitVector SINGLE_0 = new BitVector(Bit.ZERO); + public static final BitVector SINGLE_1 = new BitVector(Bit.ONE); + public static final BitVector SINGLE_Z = new BitVector(Bit.Z); + + private static final BitVector[] SINGLE_BIT_MAPPING = { SINGLE_U, SINGLE_X, SINGLE_0, SINGLE_1, SINGLE_Z }; + private final Bit[] bits; + private BitVector(Bit single) + { + Objects.requireNonNull(single); + bits = new Bit[] { single }; + } + private BitVector(Bit[] bits) { this.bits = Objects.requireNonNull(bits); // do this first to "catch" bits==null before the foreach loop @@ -30,11 +44,15 @@ public final class BitVector implements StrictLogicType, Iterable, Iterable, Iterable, Iterable, Iterable