resolve() {
        if (this.isResolvable() === false) {
            return;
        }
        if (this.inp1.value !== undefined && this.inp1.value !== this.prevInpValue) {
            let bitCount = 1;
            for (let i = 0; i < this.splitCount; i++) {
                const bitSplitValue = extractBits(this.inp1.value, bitCount, bitCount + this.bitWidthSplit[i] - 1);
                if (this.outputs[i].value !== bitSplitValue) {
                    if (this.outputs[i].value !== bitSplitValue) {
                        this.outputs[i].value = bitSplitValue;
                        simulationArea.simulationQueue.add(this.outputs[i]);
                    }
                }
                bitCount += this.bitWidthSplit[i];
            }
        } else {
            let n = 0;
            for (let i = this.splitCount - 1; i >= 0; i--) {
                n <<= this.bitWidthSplit[i];
                n += this.outputs[i].value;
            }
            if (this.inp1.value !== (n >>> 0)) {
                this.inp1.value = (n >>> 0);
                simulationArea.simulationQueue.add(this.inp1);
            }
            // else if (this.inp1.value !== n) {
            //     console.log("CONTENTION");
            // }
        }
        this.prevInpValue = this.inp1.value;
    }
@memberof Splitter
resolve output values based on inputData