Reset board PCBs arrived!

Posted on Tue 18 August 2020 in MUPS16 • Tagged with memory, reset, pcb

A big batch of PCBs arrived last week from China (7 different boards!), and I decided to have a go at the reset board first. This is a straightforward conversion of my breadboard prototype, so I thought it would be quick and easy to assemble and test, and I could …


Continue reading

Interrupt and syscall handling

Posted on Fri 19 June 2020 in MUPS16 • Tagged with interrupts, control

My first attempt at implementing interrupt, syscall and exception handling in MUPS/16 currently has 4 types of traps:

  • interrupts (currently 4, with equal priority)
  • page faults
  • syscalls
  • privilege errors

Syscalls are handled slightly differently as they are completely syncronous, and so can be treated just as another instruction (R-type …


Continue reading

Detour: copying ROM to RAM on startup

Posted on Sat 30 May 2020 in MUPS16 • Tagged with memory

I've been toying with the idea of trying to use serial ROM chips in my build for quite a while, but I couldn't find anyone else who had done something similar, and wrote it off as too complicated. A couple of weeks ago, however, I started working on the PCB …


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

Gremlins in the Registers

Posted on Tue 17 December 2019 in MUPS16 • Tagged with registers, pcbs

I finished soldering the remaining components onto the register boards last night, and started running a more comprehensive set of tests than I had before, and I've found some of the problems I was worried about.

Firstly, there's a simple mistake in the schematic, in which I swapped pins 14 …


Continue reading

First life on the register boards

Posted on Wed 11 December 2019 in MUPS16 • Tagged with registers, pcb

The register board is way more complicated than my first PCB, so I'm a little reluctant to solder everything on it until I'm given it a bit of testing, so I just assembled the control logic and two of the 13 non-zero registers. And it works! I'm very pleased and …


Continue reading

Register boards arrived

Posted on Sat 23 November 2019 in MUPS16 • Tagged with registers, pcb

My register boards arrived from JLPCB! Overall, pretty happy with them, but the quality is definitely lower than PCBWay. Three of the five boards have defects in the solder mask (none of which look fatal, though the bare copper you can see in the second photo above might be a …


Continue reading