stardance has been extended another month! the new deadline is october 31 :)

You are browsing as a guest. Sign up (or log in) to start making projects!

BOLT-16 CPU

  • 12 Devlogs
  • 24 Total hours

A custom CPU to do CPU things with a compiler and assembly language to go with it.

Ship #2

New and improved BOLT-16 CPU

I made a custom CPU, emulator, compiler, and assembly language.

Challenges

The hardest part was making sure all of the systems work together. This includes the clock timings and wiring.

What I’m proud of

I’m really proud of completing such a big and ambitious project. It took a lot of work (the hours are not correct bc I started logging really late).

What’s new

I added a new screen component and the ability to draw things on that screen. This took a lot of time.

  • 5 devlogs
  • 10h
  • 17.22x multiplier
  • 171 Stardust
Try project → See source code →
Open comments for this post

2h 6m logged

Finished screen!

I finally finsished making the screen compnent. It finally works in logisim now. Turns out the problem was my compiler bc it wasn’t compiling the RGB correctly, there were also a few small issues in the circuit.

0
0
27
Open comments for this post

2h 43m 10s logged

Added screen and drawing to emulator

I added a screen component to the emulator and allowed drawing to it. I also added an example code that draws a rectangle and square.

I still have to test it for Logisim, I added it to the compiler but I know something is going to go wrong and I don’t want to debug for hours today.

0
0
33
Open comments for this post

53m 14s logged

Added a screen

I added a screen component to my project because I wanted a way to see the CPU in action without looking at the vague data memory.

I still have to test it and integrate it into my assembly language and compiler.

0
0
42
Open comments for this post

1h 46m 41s logged

Worked on feedback!

  • Thanks for the feedback! I worked on some of it like a thoughtful comment which pointed out a little bug in my label storage and jump code. (I stored labels with $ but looked them up without $). This also led me to finding out another bug where my code didn’t actually start at label $start. That was a 5-second fix.

  • I also worked on the README.md after recieving feedback about it.

  • I plan to work on some more feedback later (specifically updating my website UI). I thought it was fine because I have barely any experience with JS/HTML/CSS, but there’s no excuse for bad UI.

PS - I also added comment functionality to my Assembly

0
0
31
Ship #1

I made a custom CPU from scratch in a logic simulator along with an emulator and a compiled assembly language to go with it. This was my most challenging project by far. It required a lot of research and background knowledge along with patience. I’m really proud of what it ended up as and I’m really happy seeing my months of hard work turn into something presentable and enjoyable. Through this project, I learned a lot more about boolean algebra, logic gates, computer processes and components, and assembly languages. You can try out my project too at the demo link both in the project info and on my Github repo.

  • 7 devlogs
  • 14h
  • 14.62x multiplier
  • 203 Stardust
Try project → See source code →
Open comments for this post

1h 21m 35s logged

One final change

I said there wouldn’t be any more devlogs but this is the last one I promise. There was a little problem in my jump logic in the CPU, so I had to tweak the compiler a bit, but that I had to completely rewrite the compiler in the style of the emulator so I could make the changes easily.

0
0
32
Open comments for this post

4h 40m 35s logged

Emulator website finished!

I’ve just finished with the emulator website. It’s really simple with not much graphical design, but it works well so I’m happy. I had to convert the CPP code into JS using AI because I started and it deleted my progress and it would have taken too much time for a simple but tedious task.

You can try it out at the demo link! I’m going to ship now thanks for reading!

0
0
20
Open comments for this post

1h 35m 32s logged

Some big and small changes

I’m just going to list these out:

  1. Changed emulator an compiler into two pass systems (first pass reads labels, second pass is normal) and altered them to be able to jump to labels appearing before the jmp command.
  2. Replaces swp with sb (store byte), which stores a byte directly to RAM
  3. Added a new command clear, which clears the value stored in a register.
0
0
12
Open comments for this post

3h 25m 11s logged

Built an emulator!

I just finished building a simple emulator for the BOLT-16. The reason I did this was because I needed an easy way for someone to try out the CPU without having to download Logisim. Now all you have to do is write your code in the assembly folder and run emulator.cpp to see the values of the CPU RAM!

Next time I plan to build a website that you can test out the CPU with the emulator running in the background.

0
0
15
Open comments for this post

1h 3m 24s logged

Fixed a big problem! -and other good news

I have spent so long trying to figure out why my CPU stops every time I try to increment my PC (Program Counter) by 1 to go to the next instruction. I finally decided today to sit down and have a full session just trying to fix that. With the help of ChatGPT to learn some Logisim ROM quirks, I was able to figure it out. Turns out I only needed to allow misaligned addresses in ROM settings.

Some more good news:

  1. The new ALU design is working smoother than expected, I think this will be my first and final redesign of it.

  2. The new compiler is ready! It now uses the new instruction set.

0
0
9
Open comments for this post

1h 3m logged

Beforehand Progress

This is my progress before uploading this to Stardance.

  1. Researched CPU design using Nand2Tetris and Google

  2. Planned out CPU using Nand2Tetris style HDL language

  3. Built CPU parts according to original specification in Logisim-Evolution

  4. Updated CPU part to be more efficient, changed them significantly from the default versions.

  5. Built main CPU circuit

  6. Tested, debugged, made changes, repeat.

P.S. This is very simplified. This took me a month of continues work for hours a day that were not logged unfortunately :(

Thanks for reading!!

1
0
122
Open comments for this post

42m 39s logged

Progress up until now

So I’ve been working on a custom CPU for about a month over the summer. I’ve spent about 3 hours everyday working on researching and designing it.

I have just uploaded the project to Stardance so I don’t have any devlogs yet. I also haven’t started much coding until recently so I don’t have much time spent. I’ll make a couple more devlogs about the design process until now.

0
0
33

Delete project?

Are you sure you want to permanently delete this project? This action cannot be undone.

All devlogs, followers, and associated data will be removed.

Followers

Loading…