Debugging the ALU v 1.1

Posted on Wed 31 July 2024 in MUPS16 • Tagged with alu, pcb

Notes:

  • low-temperature solder paste does not flow nearly as well as original version. Maybe because it's not thermally stable, and I'm not storing it at a constant temperature?

  • short between VCC and GND after assembly and soldering. Removed 48 of 60 capacitors before finding the culprit on the 49th.

  • bug …


Continue reading

Fixing mistakes in rev. 1 of the ALU

Posted on Sun 19 April 2020 in MUPS16 • Tagged with alu, pcbs

Well, it turned out that there were more problems with the first revision of the ALU than I thought:

  • I knew I'd left three pairs of inputs floating across two ICs in the comparison unit, but it turned out I'd also completely neglected to wire up power or ground. Both …


Continue reading

ALU PCB assembled, finally

Posted on Sat 11 April 2020 in MUPS16 • Tagged with alu, pcb

I finally got time to assemble the ALU PCB, after having been away for 6 weeks, waiting for components to arrive, then dealing with the start of the lockdown.

Overall, I'm pretty happy with the result. I had a few problems:

  • I ordered the wrong size of component for all …

Continue reading

Converted ALU from breadboard to PCB

Posted on Sun 29 December 2019 in MUPS16 • Tagged with alu, pcb

The ALU PCB design is finished, finally. It's similar in design to the breadboard implementation, but with a few changes:

  • a full shifter in place of the fixed right-shift-by-one element on the breadboard
  • support for addc and subb instructions, in case I want to add them later
  • no dedicated zero …

Continue reading

Adding ADDC and SUBB instructions

Posted on Sun 22 December 2019 in MUPS16 • Tagged with alu, instructions

Currently we don't have add-with-carry or subtract-with-borrow instructions, but they would be useful for doing 32-bit maths, and easy to implement. If nothing else, the ALU should support them in case I want to add them later.

Control unit changes

We need to add a carry flag to the control …


Continue reading

Redesigning the BZ/BNZ/SEQ/SNE instructions

Posted on Sun 22 December 2019 in MUPS16 • Tagged with alu, instructions

There are four instructions that need to do some kind of equality comparisons of registers:

  • BZ (branch if input register is zero)
  • BNZ (branch if input register is not zero)`
  • SEQ (set output register to 1 if both input registers are identical)
  • SNE (set output register to 1 if both …

Continue reading