VR16 Devblog 1

Written On: 28 Mar 2025

This will be a series of dev-blogs for my CPU development I’ve been working on.

Well … Intro

Click on this link to access the code: GitHub Link

VR16 is a simple CPU at the moment. I’m aiming this to become a full fledged SoC. Why? Cause I’m bored, I wanna do some actual stuff rather than read and you know be a book-worm trying to impress the faculty and be “THAT GUY” who reads.

I honestly don’t like reading, it’s boring. From an exam point of view. Reading to gain knowledge is fun. That’s why this entire endeavour started.

This gave rise to my beloved CPU which I’ve named

Specs

The following lay it all down:

  • 16-bit architecture
  • 4 general purpose registers namely R0, R1, R2, R3.
  • 4-bit immediate value support.
  • Very basic instruction set for now.

How is this being done / Guilt Conscious

NOW NOW, in the age of LLMs, GPT, AI, and more tools that help us do copy-pasta code, I have not copied a single line of code from AI.

The thing is, being a college student with lots of aspirations in different fields, personal commitments, and true lover of low-level stuff. It’s tough to manage time and give equal important to everything.

I want knowledge, not decoration. Proof, well I really can’t do that, but if we do get the chance to meet in person I can explain everything (get rekt I’ll document this in ventures once I’m done lol.)

I’m using AI to speed up the learning process that’s it. To be fair, even I feel guilty for using AI lol. It’s not genuine like learning from the textbooks, immense reading, watching endless youtube videos, reading from reddit, reading code on github and whatnot.

I comfort myself by watching this video a lot and remembering what Linus Torvalds, the man himself said!

Challenges faced so far / Status

Well, I’ve implemented the:

Eh, just understanding the GP registers (general purpose registers) was genuinely tough for me. Cause implementation wise is the key thing. We need to know WHAT a THING DOES, so that the code can be written accordingly.

I still have to do:

  • ALU
  • Control Signal

ALU is genuinely tough 😭. Control signal makes sense, cause as of now, everything is CLOCK-based. Nothing is “instruction based”. So that’s that.

Next?

I’m planning to make this a full-blown SoC. Backend for this all has to be done, so roadmap is like:

  • CPU front end
  • CPU back end
  • SoC front end
  • SoC back end

This is it for now, catch you guys till next time on dev-blogs!