Register File Port PCB - Superscalar 8-Bit CPU #40

  Рет қаралды 3,639

Fabian Schuiki

Fabian Schuiki

Күн бұрын

With the ALU finished it is finally time to move most of my homebrew CPU's breadboards onto dedicated PCBs. In this video we sketch out the first two backplanes of the CPU and plan which breadboards get turned into PCBs. We then design, layout, assemble, and test a first PCB for the register file ports.
This video series explores the concepts and techniques that make modern computer processors so incredibly fast and powerful. I build my very own 8-bit processor from individual logic gates and gradually evolve it to become a superscalar out-of-order machine. Along the way, we take a deep dive into contemporary computer architecture in a hands-on fashion and rediscover some of the foundations of modern computing.
Previous Video: • Adding Labels to My As...
Series Playlist: • Build a Superscalar CPU
GitHub Repository: github.com/fabianschuiki/supe...
Music:
- Korobeiniki by NoToneTyrone ( / free-epic-orchestral-t... ) licensed under CC BY-SA 3.0 (creativecommons.org/licenses/b...)
00:00 - Intro
01:33 - Backplane Planning
12:43 - Schematic
15:09 - Layout
19:29 - Assembly
21:29 - Soldering
22:40 - Testing
24:57 - Outro
#homebrew #8bit #breadboard #superscalar #computer

Пікірлер: 86
@quazillionaire
@quazillionaire 21 күн бұрын
Ooh, I've been looking forward to the PCB-ification process. Also, loved the LED test haha. Great work!
@fabianschuiki
@fabianschuiki 21 күн бұрын
Thanks 😃! Can't wait to get everything onto PCBs such that I can focus on fancier new things.
@OscarSommerbo
@OscarSommerbo Ай бұрын
James Sharman started out with a hot air rework station but moved to a hotplate as it allows for finer heat control and the components don't go flying. Something to think about. And your LED function test was FANTASTIC!
@JaenEngineering
@JaenEngineering Ай бұрын
He could go full Marco Reps and do whatever the hell it is he does in this video kzbin.info/www/bejne/emObpoaweNhqY80si=2APRJA3AfDym_uC4
@fabianschuiki
@fabianschuiki Ай бұрын
Thanks 🙂! I'm definitely considering getting a hot plate for the soldering. Might do that sooner rather than later. And I had a lot of fun with the LED function test 😄
@fabianschuiki
@fabianschuiki Ай бұрын
I love Marco Reps' channel. So many crazy builds and precision electronics 🤓. Absolutely fantastic.
@OscarSommerbo
@OscarSommerbo Ай бұрын
I forgot, solder bridges on those resistor arrays, very common in James' videos.
@fabianschuiki
@fabianschuiki Ай бұрын
@OscarSommerbo Pretty sure my clumsy solder paste application didn't help with that either 🫣
@cherrymountains72
@cherrymountains72 28 күн бұрын
Very nice. Looking forward to the next episode comrade! 😜
@fabianschuiki
@fabianschuiki 28 күн бұрын
😃 Thanks!
@ke9tv
@ke9tv Ай бұрын
Style points for Korobeyniki! 😀
@fabianschuiki
@fabianschuiki Ай бұрын
I couldn't resist 😃
@awesomecronk7183
@awesomecronk7183 Ай бұрын
The led test was great, loved it!
@fabianschuiki
@fabianschuiki Ай бұрын
Haha thanks 😃 That was a lot of fun to do 😅
@tmbarral664
@tmbarral664 Ай бұрын
Thanks for the huge smile you made me have :D Very nice touch 😇
@tmbarral664
@tmbarral664 Ай бұрын
It’ll be interesting to watch you when this tiny computer of yours will make some sounds ;)
@fabianschuiki
@fabianschuiki Ай бұрын
😃 Maybe it *does* need some sound output...
@75slaine
@75slaine Ай бұрын
Simply wonderful, a master class in production 👏
@fabianschuiki
@fabianschuiki Ай бұрын
Thank you very much 🙂!
@mrshodz
@mrshodz Ай бұрын
great work.
@fabianschuiki
@fabianschuiki Ай бұрын
Thanks! 🙂
@cate9541
@cate9541 Ай бұрын
Thanks
@OscarSommerbo
@OscarSommerbo Ай бұрын
New post for sanity. @weirdboyjim did use shadow ram in his build, he started talking about it in part 91 and then implemented it in parts 96 & 97. Assuming worst case scenario it takes 4.5 ish seconds to copy 64kb at 70ns, which might be acceptable, then James approach is simple and a very reasonable path to take. I wouldn't describe his method as DMA, at least not in the conventional sense, he just uses 4 counter ICs to step through the address range and copying as the counter race through the addresses. Using a battery powered SRAM chip, I think, is a more elegant solution, but it adds complexity, no doubt about that. Either way, I think it is a good approach to reduce the access time for the much slower EEPROM.
@fabianschuiki
@fabianschuiki Ай бұрын
😃 That would be a very neat approach. I guess initially the 70ns ROM would also work directly as the decoder/program memory. And as soon as we get to some performance analysis and tweaking, an upgrade to an SRAM decoder would make sense.
@OscarSommerbo
@OscarSommerbo Ай бұрын
@@fabianschuiki Looking into SRAM chips, apparently the leakage has almost been eliminated, negating the need for a battery backup to keep the data alive. But using the "Always copy on boot" like James does can be done rapidly using the ghetto DMA circuit he built. I really go back and forth on the checking the SRAM for correct data. There are some fun stuff that can be made, like grouping functions by type in different regions and only update the regions that have changed. But for simplicity, at the cost of a few seconds of boot time the "always copy the entire rom" is hard to beat, and an additional benefit is that if we step through the entire address range we zero out the ram and put the computer in a known state. Which is nice when debugging the hardware.
@fabianschuiki
@fabianschuiki Ай бұрын
@OscarSommerbo Yeah I really do like the ghetto DMA 😂👍👍👍
@somethingnonsense5389
@somethingnonsense5389 Ай бұрын
funny idea for testing! I know i'd have hooked up an arduino mega, and make it do a cylon eye (galactica) or kitt effect! haha
@fabianschuiki
@fabianschuiki Ай бұрын
Haha, that would have been pretty neat as well 😃!
@Eugensson
@Eugensson Ай бұрын
You can save some space there! Have you considered redesigning your register files so they slot on the edge, like a. NES cartridge? You can move the LEDs to the top edge so they are still visible, and use the L-shaped through hole jumper arrays so you can plug the register daughter boards into the back plane vertically.
@fabianschuiki
@fabianschuiki Ай бұрын
That is a fantastic idea! 😀 I'm not entirely sure how bad things will get once we go dual-issue, but the number of chips for each register will roughly triple. That'll get a bit unwieldy in this flat build style, so making them vertical as you suggest would be a very nice solution. I do like the fact that you can see all ICs in this flat layout, but there's nothing too interesting about 16+ copies of the exact same set of register ICs... So maybe vertical it shall be? 😏
@phookadude
@phookadude Ай бұрын
@@fabianschuiki The RC2014 uses 90 degree bent pins, rather than a slot. Might be cheaper and easier than card slots.
@Eugensson
@Eugensson Ай бұрын
@@phookadude yeah card slots are difficult to comply with. Gold edge treating, precise PCB thickness etc. L-pins are easier
@JaenEngineering
@JaenEngineering Ай бұрын
I wonder if you can get 45° pins? Then you could kind of "shingle" them and get the benefit of both a lower footprint while still being able to somewhat see the boards and ICs 🤔
@fabianschuiki
@fabianschuiki Ай бұрын
My mind also immediately went to card edge connectors and card slots, but yeah, they can be pretty annoying. I like the idea of a 90° pin header though, or the shingles for extra awesomeness and style points 😎. For dual issue out-of-order execution, the registers will need 4 read ports and 4 write ports. That's 64 data lines... might be worth taking a regular two-row pin header and sandwich the PCB in between the rows, soldering have the connections on to one side, and the other half onto the other 🤔
@JaenEngineering
@JaenEngineering Ай бұрын
Excellent 👌 Also, when you get round to the clock PCB, if you want to go with a pure logic build you can do it with just a pair of 2-input quad NAND gate ICs plus a few passives.
@OscarSommerbo
@OscarSommerbo Ай бұрын
I think that given he is aiming for a superscalar design, the clock needs to be stable and predicable. While a Pierce oscillator could work, Fabian have already built the classical clock generator, that Ben Eater and James Sharman uses.
@JaenEngineering
@JaenEngineering Ай бұрын
​​​​@@OscarSommerbonot even that complicated. Do away with the crystal and output cap, and use the 74hc132 Schmitt input NAND and you have a very stable relaxation oscillator that also has a very handy enable input. You can then use another one of the gates to debounce a push button for stepping (again with a ready built in enable) and you still handily have a gate left over for combining the outputs. And those oscillators are every bit as stable as the 555 based circuits as they basically use the same idea.
@ArneChristianRosenfeldt
@ArneChristianRosenfeldt Ай бұрын
@@JaenEngineeringevery home computer uses a Xtal. I don’t see why we need to do worse.
@fabianschuiki
@fabianschuiki Ай бұрын
A relaxation oscillator like the 555 or a Schmitt trigger as you point out would definitely be nice to have on the clock PCB. 🤩 I was thinking about diving a little bit deeper into the whole frequency synthesis topic at that point and build up a PLL from discrete components on that PCB. I'd love to figure out what exactly the criticial path and its length is through the CPU, and then tune a clock to run the build as close to that upper limit as possible. It would be really cool if the CPU could write to a bunch of PLL registers to configure its own clock speed 🤓! That will still need a crystal reference oscillator. Could be a simple 1 MHz one though, since the PLL can synthesize a wide range of frequencies from that. But that's just the free-running part. I'd still want to have a potentiometer-tunable oscillator and the manual stepping button. A Schmitt trigger might even be simpler or cleaner than a 555-based approach, because it can generate a nice triangle waveform compared to the 555's rather lopsided sawtooth-y wave.
@OscarSommerbo
@OscarSommerbo Ай бұрын
@@fabianschuiki A tuneable PLL based clock sounds super cool!
@pup4301
@pup4301 Ай бұрын
What tool is used for the layout?
@fabianschuiki
@fabianschuiki Ай бұрын
It's EasyEDA 🙂
@pup4301
@pup4301 Ай бұрын
@@fabianschuiki Thank you but I was asking about the tool you used for planning where component systems would go when using easyeda.
@fabianschuiki
@fabianschuiki Ай бұрын
@pup4301 Ah sorry, I misunderstood. That's draw.io / diagrams.net. It's pretty convenient for architectural sketches and block diagrams 🙂
@pup4301
@pup4301 Ай бұрын
@@fabianschuiki Its okay I should have been more specific have a good day night or evening. It is 1am where I am. Late night work and all.
@fabianschuiki
@fabianschuiki Ай бұрын
@pup4301 Oh yeah, 1am is definitely late 😴!
@VEC7ORlt
@VEC7ORlt 26 күн бұрын
Not sure why, but that is one ugly pcb, the way the everything was routed just irks me, somehow placing the resistor networks at the sides of the buffers seems wrong, placing them on top and moving leds up would have looked better, but thats just ocd talking, also moving to tssop package would have helped, but those are notorious for getting solder bridges...
@fabianschuiki
@fabianschuiki 26 күн бұрын
But all that beautiful space that would have been wasted by moving the LEDs up! 😏
Expanding the Register File - Superscalar 8-Bit CPU #21
44:09
Fabian Schuiki
Рет қаралды 1,7 М.
Encode Instructions in My Assembler - Superscalar 8-Bit CPU #25
21:53
Fabian Schuiki
Рет қаралды 1,5 М.
No empty
00:35
Mamasoboliha
Рет қаралды 10 МЛН
Mom's Unique Approach to Teaching Kids Hygiene #shorts
00:16
Fabiosa Stories
Рет қаралды 36 МЛН
Slow motion boy #shorts by Tsuriki Show
00:14
Tsuriki Show
Рет қаралды 10 МЛН
Program Counter PCB - Superscalar 8-Bit CPU #15
1:10:01
Fabian Schuiki
Рет қаралды 2,5 М.
Can you get 80K out of your 48K ZX Spectrum with just one extra chip??
39:13
How a CPU Instruction Decoder and Instruction Execution Works
14:21
Porting Bad Apple to the Homebrew CPU!
30:56
James Sharman
Рет қаралды 10 М.
How to Fetch 16 Bits from an 8 Bit Memory - Superscalar 8-Bit CPU #13
30:35
My CPU Does 16 Bit Jumps Now - Superscalar 8-Bit CPU #22
20:03
Fabian Schuiki
Рет қаралды 1,5 М.
Poor Man's Conditional Jump - Superscalar 8-Bit CPU #36
44:36
Fabian Schuiki
Рет қаралды 1,4 М.
Teaching My CPU Addition - Superscalar 8-Bit CPU #28
49:31
Fabian Schuiki
Рет қаралды 1,6 М.
Build Your Own Logic Analyzer - Superscalar 8-Bit CPU #18
1:01:01
Fabian Schuiki
Рет қаралды 7 М.
Register PCB - Superscalar 8-Bit CPU #20
54:56
Fabian Schuiki
Рет қаралды 2,4 М.
8 Товаров с Алиэкспресс, о которых ты мог и не знать!
49:47
РасПаковка ДваПаковка
Рет қаралды 174 М.
Мой новый мега монитор!🤯
1:00
Корнеич
Рет қаралды 126 М.
iPhone 15 Pro Max vs IPhone Xs Max  troll face speed test
0:33
Nokia 3310 top
0:20
YT 𝒯𝒾𝓂𝓉𝒾𝓀
Рет қаралды 3,7 МЛН