VR16 CPU Home Page

Ideal working of VR16 🔗

So, it all starts with a simple clock pulse.

  1. Program counter’s counter_reg increments on the 1st clock pulse.
    • This essentially points to a memory address.
  2. Instruction memory holds all the instructions.
    • A simple .mem file for now.
  3. Instruction decoder further parses all the information and sends out data accordingly.
  4. Control unit takes care of reading and writing and letting the ALU to work.
  5. ALU does arithmetic and logical operations alone.
  6. Results are further stored in 1 of 4 general purpose registers [R0, R1, R2, R3]

Reality 🔗

As per the latest commit things still don’t work entirely.

Top module is present, one can update the mem file to view the output in waveform.

I’ve mentioned the exact problem in dev-blog 3, which is the output is being stored in the wrong register despite correct assembly code. So there’s either wrong connections in the top module or somewhere else.

If it’s somewhere else, I’m in for a ride.

If you have time, and you’re willing to help please do drop in a PR 🗿 I shall be thankful.