Electrical – How to ‘Shift in Parallel’ in a shift register

calculatordigital-logicshift-register

I am trying to design a basic calculator that can add, sub, mul and div with Logisim. To store the operands I am going to use shift registers. I have recently learned about them and I understand what is serial input and parallel load. I also know how to shift the bits. I have copied this universal shift register from my text book. (Digital Design by Morris Mano)
Universal Shift Register

The calculator will work on 4 digits only. That's why I have combined 4 Universal Shift Registers in the following way4 Word Memory

Here, every time I shift the value (Left or Right) the register shifts only 1 bit. What I need is to be able to shift 4 bits at a time. Because I am storing my digits in BCD, so I need to be able to move all the 4 bits to right or left together on a single clock pulse.

I have searched this on google and all I could find were:
Serial In Serial out Shift Register,
Serial In Parallel out Shift Register,
Parallel In Serial out Shift Register,
Parallel In Parallel out Shift Register.

But all these registers can shift only one bit per clock pulse. So, to be able to store my BCD representations, how can I shift the bits in parallel (4 bits at a time) ?

Or should I somehow control the clock to make it pulse only 4 times? (If yes, please explain me how)

Please mention if there is a better way to store my operands.

Best Answer

I don't what the rest of your design looks like but the operands have to come from somewhere. I assume that is the 4-bit bus in the lower left corner.

To shift 4 bits backwards and forward you have to put four shift registers in parallel. You have put them in series.

Putting two shift register in series doubles the depth.
Putting two shift register in parallel doubles the width.