I built my own 16-Bit CPU in Excel
Вставка
- Опубліковано 26 січ 2024
- 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.
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/InkboxSoftware/exc...
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.
Interviewer: How good are you with Excel?
Inkbox:
Dude's resume is just a link to this video
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
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 😭😭
"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?
🤓
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.
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!
But can it run Doom?
Yes, google “excel doom game”
Port it from graphics calculator?
Or Wolfenstein 3Diagram 📈 ?
@@axelkidd9850no, doom
Yes
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:
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.”
After all of the insane job, I still felt so anxious about the "MANAGEMNET" thing at 14:34 Lol
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.
now we wait for the Doom ports, and the Bad Apple animations
www
This
Hahahaha
I was here ☕
And the rickroll music
If this doesn’t go viral, I’m actually gonna be mad
That requires running doom on it
@@killpidone my god, a genius!
Same.
@@user-cs8qq5vt4v ik
fr
This is one of the craziest projects I've ever seen, and explained so well at that. Great video! Earned my sub.
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.
'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 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
One word: OUTSTANDING!! Cant wait to see how you improve on it. Well done, sir!
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
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
if my college teachers used this shit to teach computers architecture I would have been hooked instantly back than
great job
Bravo. Genuinely brilliant. I'm going to show this to my students.
Been Sys Engineer for 8 years and it was a struggle to follow and understand everything, very complex but cool. Awesome video!
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.
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
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!
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
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!
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!
Simply, insanely, brilliant. Subscribed!
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 ❤
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 😆
Absolutely insane. I love it. It should be shown at the begining of any computer / software course.
This is super cool! Well done, and thank you for sharing!
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
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
Great video. Instant subscriber. Hope you get the recognition you deserve and your channel blows up.
Very very impressive. Thanks for sharing all the files
That seems like a very good project if you're learning about computer architectures.
You didn't write a compiler, you wrote an assembler :)
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
This is insane. I could never build this myself, but I understand it enough to understand just how bonkers what you’ve done is. Bravo! 🤯
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.
I'm going to rewrite Excel to run on your new CPU!
0:30 the “me at the zoo” video was a nice touch
The Begining! :)
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.
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!
As an Excel nerd this is insane and I want to see more
Hyper underrated, I've already said it, but more people need to see this.
This is equally useful for helping understand how computers work in general!
This is far beyond my knowledge. Very impressive dude. Interesting vid
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
noam nisan and shimon shocken
Most impressive and intriguing thing I've seen on YT this year!
Awesome job!
Understood almost half! Still yet, a solid like 👍 - for undertaking a most ambitious and certainly rewarding project.
Kawałek dobrej roboty, gratuluję cierpliwości.
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!
Thank you for providing actual human-written captions. Not many people do that anymore but it really helps.
Wow! This is insane! Fantastic work
Awesome! Congratulations on your work
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!!
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
Bravo very interesting build glad you kept your sanity as it will no doubt be useful to humanity you earned that sub keep up the good work!
While still technical, you've really knocked it out of the park on making something so complex so comprehensible! I have wondered how far spreadsheets can go after seeing some very complex ones (with VB doing all the heavy lifting). A sub from me no doubt
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.
This is a masterpiece! Thank you so much!
I am so impressed with this, It's amazing. Great work !!!!!
This is one of the most glorious thing I’ve seen on the subject in the entire UA-cam
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.
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
liked and subscribed when you said the power of excel formulas
we'll be watching your career with great interest
I've built "programs" in Excel, improving efficiancy at several workplaces ive been at.
This, however, is an entirely different level. Love it!
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.
4:29 - Literally this exact sort-of use case is why RISC exists, you've re-invented the wheel a wee bit there.
You are insane. I can't even begin to comprehend the genius required for this.
I like to make UIs and softwares based on excel sheets but you my friend has taken it to a whole new level.
This channel has become instant watch for me. Love love love these videos.
The moment the rom was loaded and the instructions appread was magical 👏👏👏
That's a great idea and a very nice implementation! Thank you for being such a nerd. ))) Pleasant video!
You sir are an absolute legend. Great job fantastic video!
Bro this is actually insane. Using pure excel to make an actual working 16-bit cpu
i barely understand what you're saying but it makes me want to learn about computer architecture
Fantastic work and end result! :-D
This is really cool, I'ma probably have to watch it a few more times to understand it though
I don’t often Like a video, but this deserves a Thumbs-up.
I hope that Computerphile come across this!
I look forward to you implementing a RISC5 version! But seriously, I'm impressed with what you've done.
Hahhaha
This was incredible, even if I didn't understand how any of this works. Stellar stuff!
just awsome. Thank you very much for sharing
Doom in Excel CPU when?
All I can say is "WOW!" I see no practical purpose for this but I appreciate the amount of talent and dedication that went into its creation! Thank you!
I love spreadsheets! This is brilliant!
There is an unfinished project of mine where I set about building a complex calculator system for a game mod with the goal of public release. The basis of it was to take simple arbitrary inputs (within a limited range) and the calculator would perform a series of operations and iterations to deliver a comprehensive breakdown of the results as the input relates to it's utilization in the game mod. Anytime I would talk to anyone about it they would act like Im performing alchemy and ask why I dont just use scripting or an actual programming language on an actual compiler or whatever...
All this is to say I appreciate what youve done here. 10:30 especially here. the power of iteration!
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.
That looks like a lot of work, almost feels wasted on a UA-cam video because you can’t include all the details for the sake of time. Glad you wrote full documentation as well. Also, are some of those background songs from HOME? Summoning Salt has those drilled into my brain, they’re great.
this is cool, great work, deserved sub!
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
恭喜!您又做到了!
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.
I am a computer science a level student. This surprising helps alot. It somewhat explains the Fetch execute cycle, obvs not exact to our course specification, but it still is useful!