resolve() {
        if (this.controlSignalInput.value === 0) {
            this.output.value = ((this.inp1.value) & (this.inp2.value));
            simulationArea.simulationQueue.add(this.output);
            this.carryOut.value = 0;
            simulationArea.simulationQueue.add(this.carryOut);
            this.message = 'A&B';
        } else if (this.controlSignalInput.value === 1) {
            this.output.value = ((this.inp1.value) | (this.inp2.value));

            simulationArea.simulationQueue.add(this.output);
            this.carryOut.value = 0;
            simulationArea.simulationQueue.add(this.carryOut);
            this.message = 'A|B';
        } else if (this.controlSignalInput.value === 2) {
            const sum = this.inp1.value + this.inp2.value;
            this.output.value = ((sum) << (32 - this.bitWidth)) >>> (32 - this.bitWidth);
            this.carryOut.value = +((sum >>> (this.bitWidth)) !== 0);
            simulationArea.simulationQueue.add(this.carryOut);
            simulationArea.simulationQueue.add(this.output);
            this.message = 'A+B';
        } else if (this.controlSignalInput.value === 3) {
            this.message = 'ALU';
        } else if (this.controlSignalInput.value === 4) {
            this.message = 'A&~B';
            this.output.value = ((this.inp1.value) & this.flipBits(this.inp2.value));
            simulationArea.simulationQueue.add(this.output);
            this.carryOut.value = 0;
            simulationArea.simulationQueue.add(this.carryOut);
        } else if (this.controlSignalInput.value === 5) {
            this.message = 'A|~B';
            this.output.value = ((this.inp1.value) | this.flipBits(this.inp2.value));
            simulationArea.simulationQueue.add(this.output);
            this.carryOut.value = 0;
            simulationArea.simulationQueue.add(this.carryOut);
        } else if (this.controlSignalInput.value === 6) {
            this.message = 'A-B';
            this.output.value = ((this.inp1.value - this.inp2.value) << (32 - this.bitWidth)) >>> (32 - this.bitWidth);
            simulationArea.simulationQueue.add(this.output);
            this.carryOut.value = 0;
            simulationArea.simulationQueue.add(this.carryOut);
        } else if (this.controlSignalInput.value === 7) {
            this.message = 'A<B';
            if (this.inp1.value < this.inp2.value) { this.output.value = 1; } else { this.output.value = 0; }
            simulationArea.simulationQueue.add(this.output);
            this.carryOut.value = 0;
            simulationArea.simulationQueue.add(this.carryOut);
        }

        this.setOutputsUpstream(true);
    }
@memberof ALU
resolve output values based on inputData