Testing the PC and immediate unit
Posted on Sun 12 May 2024 in MUPS16
I combined the PC and immediate units into one board since the immediate unit has three outputs (data, B bus, and PC), and combining the imm and PC units onto one board saved 16 lines on the backplane for the imm->PC connection. Techincally, there's a LUI 'unit' here too, but it's a couple of output buffers that mix 8 bits of the immediate unit output with 8 bits of the A bus to implement the lui (load upper immediate) instruction.
On this board I added a debug jumper that disables output from the RAM chip so that I can drive the control lines directly from my tester card and Arduino, which simplifies testing a lot. Everything seems to work fine. The program counter counts fine, and can be set from immediate values, the data bus or the current exception index. I haven't tested the loading of the RAM yet, though, since I don't actually have a card with the ROM yet (that's going to be on the next card I lay out).
Improvements
- label the card sides A and B
- make debug controllable from the IO board, not just a jumper, so we can ensure it's on during tests, and run both sets of tests (direct control of signals, and RAM-driven ones) in one run