I built my own 16-Bit CPU in Excel
Вставка
- Опубліковано 21 лис 2024
- To try everything Brilliant has to offer-free-for a full 30 days, visit brilliant.org/.... The first 200 of you will get 20% off Brilliant’s annual premium subscription.
I designed my own 16-Bit Computer in Microsoft Excel without using Visual Basic scripts, plugins, or anything other than plain Excel. This system on a spreadsheet is based off of a custom Instruction Set Architecture that has a total of 23 instruction mnemonics and 26 opcodes.
The main design of the CPU is broken into a fetch unit, control unit, arithmetic logic unit, register file, PC unit, several multiplexers, a memory control unit, a 128KB RAM table, and a 128x128 16-color display.
Try it out down below:
github.com/Ink...
This video was sponsored by Brilliant
computer chip by MITHUN T M from Noun Project
Memory by Alvida from Noun project
Calculator by Uswa KDT from Noun Project
To try everything Brilliant has to offer-free-for a full 30 days, visit brilliant.org/Inkbox. The first 200 of you will get 20% off Brilliant’s annual premium subscription.
Okeydokey
Next do “installing Windows 98 in Excel”
The are some channels that have been running this offer for years. How do you know if you're going to be one of the lucky "first 200?"
NO! SHOVE YOUR SPONSOR RIGHT WHERE IT FITS!!
Automatic thumbs down for putting the sponsor in the middle.
I love the restraint of not using VBA. I'm always more impressed when people make things in Excel and PowerPoint and don't just transform everything using Macros.
Like that one guy that made PowerPoint Turing complete...
Excel on non-Windoze platforms is crippled, but this would work.
Yea I did a raytracer only using Excel formulae. Much more fun having to work out solutions that don’t use VBA.
I'd have been tempted to add some VBA right at the end to generate the clock, but I can see that would open the door to more stuff. So yes impressive restraint indeed and a great video!
It might also make it more cross-platform compatible. Open Office sometimes has issues with Macro import, but cell formulas should be easier to import.
"The best kind of possible - theoretically possible" - I'm stealing that
i love how that looks as if the source of the quote is "I'm stealing that"
@@NotHumanPerson””The best kind of possible - theoretically possible”
- I’m Stealing That”
- Michael Scott
yeah this is one of the best jokes i've ever heard
Slight adjustment to the Futurama meme innit?
🤓
Next episode: Excel running on Excel
*at 0.00000000000148 FPS
Minecraft on excel. Doom on excel.. mario! Emulation! The possibilities!
@@absolutetruth9975Yes if you give it enough time and memory 😏
This is so cliche and annoying. However, its better than the comments that are like “oH My gOodNeSS hE iS lIkE a gEnIus hE sHoUlD gEt a nObEL PEacE pRize”
If one were able to implement an 8086 and simple VGA, it’d be the best kind of possible.
this man basically made a VM in excel. This is a level of genius i cant even understand
Turing completeness is so beautiful
Finally a Zoomer worth his salt
@@Breakfast_of_Champions ok boomer
can it run doom
Technically it's an emulator
Dude I lost it when you said "I designed my own assembly language." Because of course you did lol. You're a genius.
7:09 “most of the operations are simple” that is the most complex excel formula I’ve seen lol
It’s pretty much just some simple code for doing math but in a really really unreadable way. Pretty much it’s like “okay is the clock tickin? Yeah? Ok then so like do I add, subtract, multiply, divide, etc…? Ok so you want me to add? Ok I’ll add these two numbers together.” In other words, “b30 is the clock tick and this cell is equal to a value dependent on the clocks tick as well as d30 which controls which operand is being done.”
@@feixin_duke The Excel equipment of writing an entire Java program in one line
Interviewer: How good are you with Excel?
Inkbox:
Dude's resume is just a link to this video
@@SamethokThe resume is also made in excel.
@@prateekpanwar646 The entire video is made in Excel.
@@AestheticalMinimalism we are made in Excel
@@slimeslayer5195 Planet Earth is made in Excel.
It's the year 2100, super computing became the consumer norm. Humans managed to emulate the performance of a 4090ti on Space-Excel and managed to run old games such as Starfield and GTA 6 with native Windows 11 support in a Windows 48 machine
Lol
jajajaj
They are waiting for Gta 7
@@zrayx7214 and Portal 3🤣
@@galacticviper4453 and half life 3 😭😭
That CPU design is awesome - for sure. But can we talk about the documentation, i. e. this video? So fabulously made and with the huge fonts and graphics an absolute joy to watch. Thanks for taking the time to create such a gem!
Ikr
I took a microcomputer architecture class in college 30 years ago. I clearly have forgotten a lot about that class. Outstanding execution here. Thanks for sharing!
This is incredible. I’ve been teaching “computer repair” for 25 years. Over the years there have been a few students that actually asked “but how does the cpu move data? How does it process the instructions?” I always gave a simplified explanation, as it doe snot fall into the scope of building and troubleshooting desktop PCs. Now I can show them this video to get an idea on the logic. :-) Thankfully there are also videos out there on “building your own CPU.” Thank you for sharing this! Incredible work!
you ruined many student's life
There is a great book that really explain the principles and logic of a cpu. Its called "But how do it know"
I strongly recommend it
Code by Charles Petzold is also rly good
Flip flops
@@PeacfullReal
As a computer science graduate specializing in databases, I appreciate the brilliance here. This project would be a great introduction to CPU design in a comp sci course. Amazing.
You arr so right, that was my thinking
I learnt more in this than my actual computer science course
this dude literally made a full course in cpu design in a 15 minutes video
@@miguelelgueta5830Pipelining is an important part of CPU design and rightfully made up the last third of my university's basic course on the matter. The alu was also cut short in the videos explanation and is way easier to implement in Excel.
Overall it's a nice video but by no means a course.
Excuse me, this would be the INTRODUCTION??
damn
now we wait for the Doom ports, and the Bad Apple animations
www
This
Hahahaha
I was here ☕
And the rickroll music
4:21 "Writing high level assembly code" is by far the best line
After all of the insane job, I still felt so anxious about the "MANAGEMNET" thing at 14:34 Lol
Just what I like to see on my CPU!
If this doesn’t go viral, I’m actually gonna be mad
That requires running doom on it
@@killpidone my god, a genius!
Same.
@@Механизм-ж9я ik
fr
if my college teachers used this shit to teach computers architecture I would have been hooked instantly back than
great job
'High level assembly code'
**Bursts into tears as someone that has never gone lower than C++**
assembly is not that hard, its pretty simple language, a lot simpler than c++
@@jordixboyI used to think assembly was complicated, but really it's just a simple functional language, in a way. You can get really creative with your solutions for problems instead of doing bulk things, like maybe leaving Y register untouched in this function specifically so the calling function can forgo saving it.
Most assembly languages are just the same basic principles but with some different commands or limitations, some need more instructions to do the same function as an x86 one, for instance. That's why macro assemblers exist.
Sure, it's probably not a good idea to do anything substantial in it, but at least knowing what decent assembly looks like, so your most used functions can be assessed for optimization. Could also have fun with a 6502 or z80 retro computer as a learning experience.
@@jordixboy assembly isn't hard in itself but the trickiness starts arising when you start doing everything in it, at that point you pretty much have to manage everything yourself, which is pretty fun actually
I found 6502 assembly was really fun. It was designed to be used by humans. Even with as difficult as it is, there is something really enjoyable and simplistic about it.
@@ireallydontknowifiamhonest yeah, bookkeeping in a way gets hard, or if your code block gets so big that directly indexed jumps aren't far enough.. and then you have to push and pop registers awkwardly and whatnot.
This would be crazy to put on a resume.
I work in IT and I've seen some cool things done in Excel. But this is unbelievable. You have a remarkable skill set. Wish you the best of luck in succeeding and achieving your dreams.
That’s cool and all, but when you realize that all of that is happening right now on the device that you’re watching it (and on servers, routers, switches etc) is MIND BLOWING.
And we take it for granted.
At billions of times a second
The one bit of VBA that I think might be justified is a completely optional script that can "click" the clock cycle button for you, seeing how fast you can get it to run.
100%. I think you can evaluate if a worksheet is calculating, so just monitoring that would be enough. Then you could have it clock the system. I think if someone is writing a compiler in Python, then using VBA for this sort of operation is an acceptable application. I think it would also be justifiable to apply the cell coloring for the screen pixels in the same way, allowing 16.7 M true color output... This is just because Excel has a restriction for modifying the color of cells programmatically, but it unlocks a lot of potential that conditional formatting can't. For the sane reason, VBA could be used for loading the ROM. This wouldn't be all that different than using an EPROM burner, which still doesn't diminish or detract from the Excel CPU.
Yeah, that would be a whole lot better than doing ALL of it manually.
I'll have to play with it next time I'm at my computer but I think you might be able to get some sort of iterative calculation going (there is a setting in excel to allow it). Might just end up in an infinite loop that will crash Excel but it would be so neat to have a fast clock powered by formulas to keep the whole thing as pure as possible. Not even sure my version of Excel supports them but I've heard there is a lambda formula that can call other formulas so there may be a solution to be had there as well.
I guess you could also implement a function (not a sub) in VBA that toggles a cell in a loop and then use that function in the formula bar (excel treats VBA functions as custom formulas since they both take some parameter(s) and return a result). Still cheating to me (especially since you'd likely wouldn't be using the return value but rather the loop and a direct reference to a cell) but I guess slightly less than just banging out VBA and running it as a macro.
Pretty sure the limitation is not how fast you push the button but how long it takes excel to process the formulas. That’s what he demonstrated at the end where each press of the button takes a couple of seconds to process the clock cycle, so any automation there just means you can leave the program running while you run some errands and it finishes in an hour
@@Eji1700 He said it runs at a few hertz, which is about how fast you can click. But, yeah, it's possible it can't run any faster.
The moment your CPU notices you have been cheating on it with Excel
it is more like a poly relationship really. Your cpu is totally in on it
@@gooseloose682 reddit cuck cpu
Emulators and VMs be like:
@@gooseloose682
Imagine getting your gf pregnant and dating the fetus
@@poka26ev2sooo, just like what dad did with me?
This is maybe the greatest video i have seen in the last few years. This video and your project would have helped me a lot to explain to my students of computer architecture. I will download all the files and analize them carefully.
its insane just by showing how complex it was to create the cpu- it made sense of how cpus work in the first place. essentially cylinders firing from an initial blast. awesome.
Emulating physical circuitry with excel is really cool. Great video!
Excel is already powerful so this wasv rudimentary at best...
Should be taught on cs
This is literally the best thing I've ever watched. It's really great to see others appreciate the power of excel WITHOUT using Visual Basic! The use of iterative calculation is genius, and the way you route everything together is truly splendid. Wonderful video, I'd love to see more videos elaborating on all these cool ways to utilize the functions!
I was so disappointed seeing other Excel videos just write Basic programs, I had to undo an injustice.
@@InkboxSoftware EXACTLY! 😄
Wow
@@InkboxSoftware I personally would have just wrote nothing but VBA except for rendering the screen which is benefitted by =MAKEARRAY since VBA is not nearly quick enough to handle all those cells. Though, I do understand the challenge aspect, but when I did challenge myself to use almost exclusively formulas except for the one function making sure the player didn't have to manually hold F9, it was pretty boring even after I had completed it, it just wasn't very fun for me, but to each their own!
This is absolutely beautiful. I am an Electronics Engineer, and am good with excel also.
I still can't imagine how much of time and patience it takes to do this...
Keep up the great work brother ❤
You deserve my subscription ❤
Been Sys Engineer for 8 years and it was a struggle to follow and understand everything, very complex but cool. Awesome video!
Absolute nuts, genius. Didn't understand 99% of it! But quality.
there are so many people that have crazy titles like this and then just use shortcuts and produce a simplified result then. but you, you stayed true, used no shit, made an interesting video and even explained well what you're doing. keep on doing this, you earned my sub
Ah yes, an average task in university: Build your own CPU, RAM, Display and make your own Assembly Language for it in Excel. What a classic!
All jokes aside, this actually taught me a lot about how CPUs work and I am even more grateful now for being able to run something as insane as Doom Eternal on my pretty old pc
That seems like a very good project if you're learning about computer architectures.
You didn't write a compiler, you wrote an assembler :)
Honestly insane. The fact you made a program that was essentially only made for documentation and somehow got it to be a 16-bit pc is impressive as hell. How you managed to figure this out is crazy impressive as well.
Very well done.
This is highly educational, it's not just writing an emulator for the functionality, it's implementing excel analogues for the actual digital logic level constructs.
Dude. That was pretty cool.
But the most important question:
CAN. IT. RUN. DOOM?
Theres a guy on youtube who sees if every device can run doom. Somebody needs to tell him about this.
Sad ... Kinda cant in this condition, they need to finish the CMD, but as he say ... In theory, yes we can ... Just couple of more steps
Not without rewriting Doom itself. It was designed for 32-bit systems, and in this video, a very limited instruction set is used. It would not be possible to capture and react to keyboard input from an Excel spreadsheet simply with formula either. Would be cool though.
@@jamieevans5979but can it ***fake*** running DOOM?
@@Akira-Aerins Sure. Just use a screen recorder and embed the video on the spreadsheet 😆
Brilliant!!
I'm sure you're going to inspire many old fellas like me. Computer architecture was by far my favorite. We designed 16bit CPU's using the proper software. Ended up taking design VLSI... Of course this was early 90's.
Now I really want to load Excel and start designing the flip-flops, counters, multiplexors, etc!!
Thank you!! Very inspiring!!
Have you done some projects on Excel? Is it possible to show them?
As an Excel nerd this is insane and I want to see more
That was one hell of a ride !
My gosh ! I am fond of PCs inner working, but wow ! The complex parts are so well-made ! And the concept is just mind-blowing !
Very good video :D
This is one of the craziest projects I've ever seen, and explained so well at that. Great video! Earned my sub.
Thank you for providing actual human-written captions. Not many people do that anymore but it really helps.
It's funny how as a programmer, my family assumes i know that kind of stuff.
Like, no, you don't need to know the inner workings of something to use it, most people don't know how the keyboard works, yet they can use it to write
would be better for you if you did though
Front-end dev spotted
@@mmmmmmmmmmmmmmmmmmmmmmmmmmmm56 I make games and other programs, i don't make computers 🙃
If black boxes always worked exactly as you intend them too then I'd agree... But they don't and while I wouldn't recommend just opening everyone you find for the sake of it, it really does help to have some experience cracking a few cases because you will need to at some point.
I'd hazard to guess this attitude is one reason why most modern software is horribly optimized and tends to be a nasty soup of cobbled together packages. Sure that might be a simple and blissful way to do things but ignorance will never produce something of higher quality than true understanding. Not to mention it doesn't pass the "what if everybody did it" test because at some point somebody needs to be able to create and service black boxes or the consumers will have nothing to stitch together.
Im just a PLC Technician not a Programmer, but how a CPU Works was literally the first Thing i learned.
The First Code we wrote Was i Assembly, if you Understand how the Basics work, you can build on that
Between you and Ben Eater I think we have the best set of ‘how computers work’ resources ever made. Thank you so much for making this and giving it all away 🎉❤
Don't forget James Sharman
Bro, I've been writing my own unrelated concept to convert/encode any arbitrary binary data to an image format - just a bitmap of, not necessarily pixels, but small "boxes", which I call "cells". I watched this video a while back, which is part of my inspiration for this new project of mine. But now I'm watching it again, more carefully, because I think I can marry these two concepts together. Taking our concepts to the next level - an image-based computer. arrays of Image frames can contain anything - a binary program, a video, a text file... And not even just files either. This concept can hold memory in and of itself, in the form of an image.
So far, I've managed to stuff 16KB of data within a single image, using arrays of 4-bit colors in these cells. And I haven't even gotten around to a decoder yet, because the encoding part of it keeps changing :P
What are you going to do with the data in an image?
This is so cool we started to implement our own ISA by scratch with RISC-V in my computer org class. Thanks for a great video!
Well, technically, the moment you showed both a NOT and an AND bitwise operation being supported by excel it was all possible, though actually getting it to work would be another matter :P Great video!
I’m actively working on a full 3d cube renderer in excel and this has inspired me
Video when
@@xdasdaasdasd4787 im not all that good at making videos but i will maybe upload one once i finish
Show us when it's done
Already been done use google
I'm going to rewrite Excel to run on your new CPU!
I had a degree in electronics like 14 years ago and it's amazing to see this. you put a lot of work. nice job
Dude this guy is a mad man i can feel the sleepless nights
Hyper underrated, I've already said it, but more people need to see this.
The moment the rom was loaded and the instructions appread was magical 👏👏👏
But can it run Doom?
Yes, google “excel doom game”
Port it from graphics calculator?
Or Wolfenstein 3Diagram 📈 ?
@@axelkidd9850no, doom
Yes
I love the computer science world because you have stuff like this being made with the justification usually being "because I can"
Blown away! Coded in 360 assembler back in the 70's and have great respect with what you accomplished. You have a great future ahead.
This was the coolest thing I watched in a while, taking a computer architecture class right now and seeing some of the stuff we talk about made in excel is sick
This was hard enough with an HDL and a bunch of TAs to help us in class. Even though excel has a few tiny convenience features, this is awesome and I can't wait to see what else you have in store.
Most impressive and intriguing thing I've seen on YT this year!
Awesome job!
I don't think AI is going to take you job bro! hahaha, great stuff, keep it up!
3:45 I love how asm is “high level” lol
Exactly what I thought. I almost had a stroke and also laughed like crazy
Bro this is actually insane. Using pure excel to make an actual working 16-bit cpu
This is a masterpiece! Thank you so much!
Here’s an unsolicited Excel tip: you can give names to cells in the top-left corner so that you don’t need to remember what $D$3 means.
And this comes in handy even for medium sized projects! I use this all the time, it makes everything so much more maintainable!
You can also use the name manager to do the same thing. It's even more powerful because you can create a named value that doesn't exist on any sheet.
@@MichaelStubbs What do you call medium sized?
Oh wow, that is insanely useful for writing things that will be easier for my teammates to read. Thanks!!
This is the way.
You are insane. I can't even begin to comprehend the genius required for this.
Have seen this in the news a few days ago and today your video popped up in my YT feed. I just had to click it.
Amazing work, i expected some macro stuff but i never imagined this to even be possible just by formulas.
4:29 - Literally this exact sort-of use case is why RISC exists, you've re-invented the wheel a wee bit there.
Critiquing something for 'reinventing the wheel' in a video about building a CPU in excel is wild
@@WillKew Hah. I just meant that he could have cut out a portion of the work not actually related to the project by just going with with an appropriate instruction set in the first place.
I do sometimes read my old comments and wonder why I worded them a particular way though.
i barely understand what you're saying but it makes me want to learn about computer architecture
This is beyond amazing.
Edit: The only reason I understand all of this is because of Ben Eater's 8-bit computer build video series.
One word: OUTSTANDING!! Cant wait to see how you improve on it. Well done, sir!
Im gonna learn how to make cpu from scratch then i will come back to this video to understand it
This channel has become instant watch for me. Love love love these videos.
all thats left now is coding DOS in excel with this CPU and then running excel in that DOS
For irony, it would have to be lotus 1-2-3
@@killpidone that would be incredible
For pure "Microsoft-verse", it should be DOS and Excel. But just to annoy Microsoft, the operating system should be IBM OS/2 and the spreadsheet Lotus 123.
@@killpidone DOS is not done til Lotus won't run.
0:30 the “me at the zoo” video was a nice touch
The Begining! :)
And I was happy I could do the (sum)= function
There is a very specific group of people that will appreciate this video, but WOW, does that group appreciate it! Great job! Now just tur this into a semester-long assignment, and you'll tech at any computer science university!
I don’t often Like a video, but this deserves a Thumbs-up.
I hope that Computerphile come across this!
I think it might have been valuable to use some of the LOOKUP functions. You could have had a microcode sheet where the instructions are defined which would have probably made things easier to fix. The cell formula you then paste to all the cells would just have this LOOKUP indirection.
I struggle to implement a virtual CPU in Java, yet you've implemented one in a spreadsheet program. Amazing. :D
It's probably a little easier to write it in the Spreadsheet than Java, even though Java is better suited to it, practically Java is easier, but the very fact that Excel is harder makes it more interesting and so easier to write in, for Java you're just using the most basic level things to do it so it doesn't feel like writing a program since the end goal is something you already had to begin with. This is why it doesn't feel all too hard to write the potentially thousands of BrainF commands just for a simple task but that same task may feel dull to do in a higher level language.
I could write a virtual CPU in 5 lines of Python or Java or 5 excel cells. It might not look nice, but emulating using a very powerful high level language is extremely simple. The real interesting thing here was how he made it readable and interactive and extremely well presented. An expert at the end of the day can do this in far less.
@@gregorymorse8423 I have implemented CPUs in Java before, I just never got far enough in the project to write an assembler, and I never really accomplished what I wanted to. I do have plans to make a complete virtual console soon though.
@CreatorJo writing an assembler is pretty easy but it does involve tokenizing, lexing, and parsing. It is certainly more work than emulating a simple instruction set. But then it's just simple translation. Far simpler than the work a compiler needs to go through as you don't have variables.
@@gregorymorse8423 Speaking of assemblers, when an assembler has compiled assembly into machine code, how does it then tell the CPU to run that machine code on Windows, I'd imagine on most electronics it's not terribly difficult, but for Windows it really seems to hate people using machine code. They also got rid of the DEBUG command in command prompt, how rude!
bro took "i excel in it" to a whole new level
"But can it run doom?"
I would also like to see this
Doom has already been run on excel and on lower capacity programs. I'm sure it'd 100% run doom
but has it been run on a cpu written in excell?
First of all, insane stuff! I've implemented a few CPUs, but definitely not in Excel lol
- With the assembler being fairly small, wouldn't it be feasible to implement that in Excel functions (or at least macros) too?
- Wouldn't setting the max iteration count (at 2:31) to 100+ drastically speed up the CPU, or would that break it?
- Also, if the limitation on colors on the display is that you have to define a rule for each pixel, why not use RGB subpixels?
Excel: *no, don't make me Turing complete NOOOOOooooo*
You know what that means, don't you?
m.ua-cam.com/video/uNjxe8ShM-8/v-deo.html
You know what that means, don't you?
m.ua-cam.com/video/uNjxe8ShM-8/v-deo.html
You know what that means, don't you?
m.ua-cam.com/video/uNjxe8ShM-8/v-deo.html
You know what that means, don't you?
m.ua-cam.com/video/uNjxe8ShM-8/v-deo.html
You know what that means, don't you?
m.ua-cam.com/video/uNjxe8ShM-8/v-deo.html
I look forward to you implementing a RISC5 version! But seriously, I'm impressed with what you've done.
Hahhaha
When I see comments in communities I'm knowledgeable in, where people are hooked and watch despite not really understanding, I've always found it strange. Not any more. You lost me with the computer jargon, but I was still blown away. Have yourself a like.
I've built "programs" in Excel, improving efficiancy at several workplaces ive been at.
This, however, is an entirely different level. Love it!
Have you ever watched The Microsoft Excel World Championship? It's on ESPN each year when they become ESPN 8 the Ocho for a week.
Man, you're awesome!
Excel is great by itself, but this project is on another level.
Not only it's beautiful, but it's also a valuable tool to learn the internal processes of a CPU.
Instant subscribe!
Looking forward to part 17 of this series "I coded DOOM in Game of Life in a 16 bit computer in Excel"
Bro! I asked, does it run doom? :D I guess we both look forward to this.
This is one of the most glorious thing I’ve seen on the subject in the entire UA-cam
I'm glad people like you exist. We'd still be using vacuum tubes on really crappy computers if folks like you didn't exist years ago. I can only REALLY understand a few bits here and there, but I can still recognize talented people when I see their work.
Well... Now run DOOM
Lol true (it can if it was running an os)
Can it run DOOM?
No
@@Aligames5747 anything can run doom 😂 I would love you see him try it even if it is a failure.
@@noahorick986 but this is 16 bit and doom is 32 bit
Using Excel in this way to demonstrate modelling a CPU is unironically excellent and captivating
As a computer engineer, this is AMAZING. Very impressive hahaha. Your explanation was very good and gave a solid understanding of the basics
I like to make UIs and softwares based on excel sheets but you my friend has taken it to a whole new level.
There is always someone smarter than you. UA-cam show me some incredible people, I thought no one can achieve this level
Doom in Excel CPU when?
Hey look it’s the first video on UA-cam. 0:30
i honestly can't wait to get to my systems architecture course because it's incredible how simple a cpu is in its most basic sense
That was simple?🥲