Backplane Troubleshooting - Making an 8 Bit pipelined CPU - Part 103

  Переглядів 8,595

James Sharman

James Sharman

День тому

I didn’t like leaving the last video with a broken build. In this video I finish the process of find the fault and explore a number of different ways that problems can be patched.
0:00 Introduction
0:31 Troubleshooting
4:19 My Most Expensive Mistake Yet!
5:35 Breadboard Patch
9:21 Bodge Assessment
10:15 Rom Patch
14:01 Design Fix
17:58 Adapter Board Design
19:35 Adapter Soldering
23:29 Adapter Test
25:08 Outro
25:45 Post Credits Testing
Sections of the console output in the early part of this video didn’t record, I did my best to reproduce them for continuity.

КОМЕНТАРІ: 201
@weirdboyjim
@weirdboyjim Рік тому
Join us on Discord: discord.gg/jmf6M3z7XS Follow me on Twitter: twitter.com/WeirdBoyJim Support the channel on Patreon: www.patreon.com/JamesSharman
@TheGunnarRoxen
@TheGunnarRoxen Рік тому
I think that you are so transparent about your mistakes is really great, James. It is super helpful and encouraging to see how you find and solve those mistakes. Everyone makes mistakes, but how you fix them is the important bit. Thanks for letting us see 😊
@weirdboyjim
@weirdboyjim Рік тому
It’s the only way to do it. This was never a “here is exactly how to build this thing I’ve already made” video series, it’s a project log. We can all just be happy I never hit a brick wall that needed a total rethink.
@JanBruunAndersen
@JanBruunAndersen Рік тому
James does not make mistakes. He gains experience.
@DavidLindes
@DavidLindes Рік тому
@@JanBruunAndersen Heh, something like that. Though I see no reason for it not to be a "yes and", instead. ;) (i.e. James makes mistakes, and from hem, gains experience!)
@AndersAstrand
@AndersAstrand Рік тому
So happy to see that you found such a non-intrusive fix! It makes sense to hold off on ordering a new expensive back plane. You'll probably discover more that could be a little better when playing around more with peripherals. Thank you for bringing us along on this amazing project!
@weirdboyjim
@weirdboyjim Рік тому
Glad you liked it! It was easier to explore possibilities once I'd confirmed it was the only serious issue.
@BillySugger1965
@BillySugger1965 Рік тому
Well done! He who never made a mistake never made anything. You’ve done well getting so far without such a howler! It happens. Onwards…
@weirdboyjim
@weirdboyjim Рік тому
He who never made a mistake is just better at hiding it! 😉
@Darryl_Frost
@Darryl_Frost Рік тому
SO much harder to fault find on a new design, as opposed to something that was once working, even more so with analogue (linear) electronics, and RF work. So well done.
@weirdboyjim
@weirdboyjim Рік тому
It’s very similar to program debugging once you get in the right frame of mind.
@NuttySwiss
@NuttySwiss Рік тому
I absolute love how this series shows the interplay between software and hardware. 😎👍
@weirdboyjim
@weirdboyjim Рік тому
Glad you enjoy it!
@DavidLindes
@DavidLindes Рік тому
Indeed. That software "bodge" [I think of bodge as a hardware term, somehow, so hence the quotes] was great! :)
@rauljvila
@rauljvila Рік тому
Very clever (and educational) Rom Patch! Thank you very much for showing these parts. I know mistakes can be painful, especially this one, but it was awesome to see the 2 ways of working around it, the software and the hardware paths. That last shot with the full setup working with the VGA is something to be proud of!
@weirdboyjim
@weirdboyjim Рік тому
The most painful thing about making mistakes in this project is having to edit the video watching yourself make the mistake in slow motion! :-)
@renaissanceman5847
@renaissanceman5847 Рік тому
basically Ben eater showed up to the science fair with bread mold and you showed up with a nuclear reactor. one of the best home brew 8 bits that scales up very well with meticulous attention to detail and progressed from concept to bread board to PCB with SMD components... outstanding work. Reminds me Sam Zeloof ( also here on youtube) that has gone as far as making his own silicon chips and ICs out of his own home fabrication shop.
@weirdboyjim
@weirdboyjim Рік тому
Very kind words. I'm aware of Sam's stuff and Jeri Ellsworth's earlier work. Scary chemicals in those processes though so I'm happy build from discrete logic!
@jurgisbrigmanis5477
@jurgisbrigmanis5477 Рік тому
You're going to need a bigger Frame of Shame 😂
@weirdboyjim
@weirdboyjim Рік тому
I’m thinking that the adapter might make a good proxy for it, but I also have half a mind to mount this backplane and then stick all the other mistakes into it. I wonder how many boards I’d. we’d to make to get a second working build.
@rimmersbryggeri
@rimmersbryggeri Рік тому
Must say your error rate is amazingly low even if this one was slightly painful.
@weirdboyjim
@weirdboyjim Рік тому
Yes! I was overdue a mistake. Thanks!
@gabor7928
@gabor7928 Рік тому
When I have a solder bridge somewhere that I want to get rid of (like in that hole), I simply heat it up, and holding the PCB in my hand, I simply bump my fist holding the PCB to the table. That little impact is always enough to make the molten solder fly out of a hole like that (make sure you have a table surface that doesn't get damaged by the hot solder, of course). This little trick helps all the time.
@kepanoid
@kepanoid Рік тому
I heat up the solder and blow with my mouth. Of course, neither of these solutions are "professional", but they work. Your note about the table surface applies...
@weirdboyjim
@weirdboyjim Рік тому
Interesting. I'll have to give that a try.
@your_utube
@your_utube Рік тому
Lateral thinking done right! Solutions to mistakes can cause still be innovatively engineered.
@weirdboyjim
@weirdboyjim Рік тому
Yeah, I could see a bunch of ways to solve a problem like and it was worth showing different ways to do it.
@Guineh76
@Guineh76 Рік тому
A small step toward the respin of that backplane. Thanks for this series! I’ve learned a lot and every time I see a new episode I feel inspired to go at my own cpu project… now if only I could carve out some time to do it. lol.
@weirdboyjim
@weirdboyjim Рік тому
Very generous of you! Glad to hear you are enjoying it.
@fabianmerki4222
@fabianmerki4222 Рік тому
software fixes hardware issues is very common. I would never have bothered and just be happy about the your bits fix
@weirdboyjim
@weirdboyjim Рік тому
But the led's wouldn't have been right!
@wouterdebie6754
@wouterdebie6754 Рік тому
I absolutely love your videos and I'm always looking forward to the next episode. It's great that you show your mistakes and give us insight into your thought process and share different options!
@weirdboyjim
@weirdboyjim Рік тому
Good to hear you are finding them interesting! I'd find it disingenuous to hide mistakes, this is a project log after all!
@RealEngineer
@RealEngineer Рік тому
We are closer and closer getting crysys running my friend 🎉
@weirdboyjim
@weirdboyjim Рік тому
Lol! In the same I get close to Mars when I climb the stairs! (At the right time of year)
Рік тому
Grate video! I needed a good distraction and saw your video so jumped on it. When you you realized what the problem was I was thinking about the adapter you later made in the video, but then you make an awesome software hack patch the hardware instead and I was like, thats clever! Then you make the adapter anyways, the TWIST in the PLOT expanding! Anyways was engaging how one can follow along your thinking in the howl video, your approach to problem solving and prioritizing whats important is impressive! Thanks for the vid!
@weirdboyjim
@weirdboyjim Рік тому
Glad you enjoyed it! The honest truth is I wouldn't enjoy this kind of stuff as much if there were never any problems to figure out!
@opensourceisfreedom
@opensourceisfreedom Рік тому
Really enjoy your work.
@weirdboyjim
@weirdboyjim Рік тому
Thank you very much!
@GORF_EMPIRE
@GORF_EMPIRE Рік тому
I've been watching these episodes and I'd say you have a rather high success rate. Bodges happen! Good show ol' boy!
@weirdboyjim
@weirdboyjim Рік тому
Thanks gorf, always appreciate your support!
@bobfish7699
@bobfish7699 Рік тому
Nice save James. Hope the creative way you reprogrammed the ROM to fix circuit board design mistake has given you a boost. I would certain pat myself on the head if I had come up with that.. Looking forward to the next video..
@weirdboyjim
@weirdboyjim Рік тому
Thanks! I get a kick out of solving problems so the highs and lows of "it's broken" & "I've fixed it" are often better than if all just works first time.
@pipsqueak2009
@pipsqueak2009 Рік тому
Thanks for sharing. Glad you got it working!
@weirdboyjim
@weirdboyjim Рік тому
You're welcome!
@LockFarm
@LockFarm Рік тому
I feel your pain, but great to see an honest assessment and working fix.
@weirdboyjim
@weirdboyjim Рік тому
I'll finish it eventually!
@LockFarm
@LockFarm Рік тому
@@weirdboyjim This stuff always takes twice as long as you'd planned, and three times as long as you hope.
@ZeroStatic
@ZeroStatic Рік тому
James, Great work, always best to show your mistakes and how to fix them, I had the same idea to invert the bit ordering in the rom to fix the bug temporarily. Often a mistake is more interesting than something that works perfectly on the first try. 😊
@weirdboyjim
@weirdboyjim Рік тому
I agree! If you never make mistakes you are probably not pushing yourself!
@jerril42
@jerril42 Рік тому
Sorry that you had this problem. Fantastic job of sleuthing, patching, recoding and coming up with an excellent interim solutilon. At least you can approach this knowing another backplane is coming: you can make improvements if you recognize the opportunity. Thanks James, take care.
@weirdboyjim
@weirdboyjim Рік тому
Thanks! I’ve already done a bit of a tidy up of some signals that might have been a little vulnerable to cross talk.
@benjaminmiller3620
@benjaminmiller3620 Рік тому
Any chance that'll bump up the stable clockspeed a percent or so? Or are you strictly limited by the speed of your ICs?
@grege6402
@grege6402 Рік тому
very clever solutions for this mistake, both software and hardware wise 👍
@weirdboyjim
@weirdboyjim Рік тому
Thanks!
@Yeoman35
@Yeoman35 Рік тому
Thank you, I always enjoy your projects. Watched this video while repairing my jeans; seemed appropriate.
@weirdboyjim
@weirdboyjim Рік тому
Glad you like it! Try not to put any buttons on backwards!
@TheEmbeddedHobbyist
@TheEmbeddedHobbyist Рік тому
Only 16 wires that bode would be a doddle. Just cut the tracks close to the connector and run a wire links, a twenty min’s job. It’s much more fun when you have to drill through a multilayer PCB to break an internal track this is when prototyping gets fun. I used to do this quite a lot when we wanted to convert a system for a new customer requirement, and there was a need to make a prototype to demonstrate before going to all the expense of making a new PCB. Happy days! Otherwise you had to wait years for a PCB to be laid out with a fault, the PCB folk were about 99.8% perfect in converting a schematic in to a PCB layout.
@weirdboyjim
@weirdboyjim Рік тому
Behind the scenes: I worked out the connector issues before I finished editing the previous video, I designed the adapter board and ordered it before the main troubleshooting ad a just in case. If there had been a longer wait I might have been more biased towards the bodge.
@TheEmbeddedHobbyist
@TheEmbeddedHobbyist Рік тому
@@weirdboyjim I've always loved the dodge; it's pitting your mind against the problem at hand. It’s was one of the things that helped with my move from production test into R&D. way too many years ago. 😞 I used to take rejected production boards and rework them in to test jigs as an extracurricular activity to speed up testing. The technical director in the end said that as I was borrowing their kit so often to reprogram parts etc that I might as well move over and become a design engineer. So bodging has always been in the blood and something i love to do.
@andymouse
@andymouse Рік тому
Wicked result !....cheers.
@weirdboyjim
@weirdboyjim Рік тому
Thanks andymouse!
@lasersimonjohnson
@lasersimonjohnson Рік тому
Absolutely love all you do. 😁
@weirdboyjim
@weirdboyjim Рік тому
Thanks so much 😊
@AmauryJacquot
@AmauryJacquot Рік тому
that's a well thought out bodge method !
@weirdboyjim
@weirdboyjim Рік тому
Thanks Amaury!
@Philip8888888
@Philip8888888 Рік тому
Nice job on the fix. On the bright side it made for some interesting additional videos. I just made a huge expensive mistake on my project: I connected the wrong voltage power supply in and fried every component on my board. Some long evenings ahead desoldering and resoldering replacements.
@weirdboyjim
@weirdboyjim Рік тому
Ouch on that Board! I've been fortunate my mistakes haven't caused any extra damage.
@LeoBerardino
@LeoBerardino Рік тому
This is very cool and sad at same time. This is the problem working with hardware, it's not easy to fix bugs like e do in software. Your CPU is amazing. Thank you for your awesome work James.
@weirdboyjim
@weirdboyjim Рік тому
Thanks! I'll keep going, it'll all be done eventually.
@edgeeffect
@edgeeffect Рік тому
Yeah.... if only you could do a fix in easyEDA and as soon as you click "save" it's fixed.
@ElectricGears
@ElectricGears Рік тому
If you are contemplating a redesign, one feature I would suggest is to separate the ground and power lines (depending if the logic chips source or sink) for the LEDs. This would provide more stability to the chips and allow you to have some sensitive analog meters to show the difference in current from computation versus the display.
@weirdboyjim
@weirdboyjim Рік тому
Being able to turn all the led's off might be handy, but I really like having them there!
@ElectricGears
@ElectricGears Рік тому
@@weirdboyjim I think the LEDs should definitely stay, just that they have a separate return path to the USB connector (like a star ground system).
@ivanscottw
@ivanscottw Рік тому
I am as always absolutely stunned by James' creativity whether it be in creating things as well as solving things ! I understand maybe 10% of what's going on, but I'm absolutely fascinated by the thought process, the way he always seems to be thinking outside of the box, find clever hacks to do things efficiently, incorporate fixes that actually go beyond fixing but make things better while he is at it... And the soothing voice, the humility (Whether this is faked or not is still up in the air for me - but that's fine, he is allowed).
@weirdboyjim
@weirdboyjim Рік тому
Kind words! I'm sure the apparent humility is just a by product of trying to slow myself down, I can barely understand myself when I talk too fast!
@ivanscottw
@ivanscottw Рік тому
@@weirdboyjim When I'm talking about the humility it's more like - You are the first one to admit making mistakes (and it makes you relatable, believe me). But then it becomes something positive because 1) You try to determine WHY you made the mistake, which can be just, oh well, wasn't focused on what you were doing (s..t happens) or something more profound that allows you to adjust your thought process (more like, not that you didn't do it right, but rather that it was the way you thought about it that needed some adjustment) 2) Gain something from that mistake, devise a plan to circumvent it with the less effort possible 3) come up with an even better or more clever solution than the original plan ! So any of those mistake may wind up as a game changer.. Or maybe a honest to god brain fart 😄
@weirdboyjim
@weirdboyjim Рік тому
​@@ivanscottw Video editing gives you a new perspective on this, you get to watch yourself make mistakes in slow motion over and over again! On the plus side I have almost grown immune to cringing at my own voice! 🤪
@kirknelson156
@kirknelson156 Рік тому
Don't be too hard on yourself, we all have done it, working on a project or a repair and make some simple mistake we all feel should not have happened. some times its simple and quickly identified like installing a diode backwards (oh the shame). But lets face it your project is a bit more complicated than most and you worked logically to identify the problem. and considering the scope of the build and that was the only mistake, my hats off to you sir, well done. 😀
@weirdboyjim
@weirdboyjim Рік тому
Thanks! I've been fortunate with how few serous mistakes I've made so far.
@OscarSommerbo
@OscarSommerbo Рік тому
The reversing of the ROM was very cool and slightly dizzying, as I never worked much with bit shifting. But it was pretty clear what was happening. My first thought of a fix was some sort of adapter. I am unsure which fix I like best, pros and cons on both of them.
@weirdboyjim
@weirdboyjim Рік тому
I won't be entirely happy until I have a new backplane but at least this version lets me get on.
@richardlincoln886
@richardlincoln886 Рік тому
Fascinating - I like the software angle - you're really chanelling C64 cash strapped engineers with Tramiel in the background there! The concept is cool though - how simple can you make the PCB with fixes in firmware/microcode changes (ideally I guess CPU firmware rather than software)?
@weirdboyjim
@weirdboyjim Рік тому
If it wasn't for the led's displaying the status on the pipeline then the fix would have been fine on it's own!
@JoneKone
@JoneKone Рік тому
=) Amazing stuff.
@weirdboyjim
@weirdboyjim Рік тому
Thanks!
@m1geo
@m1geo Рік тому
I know how much those PCBs cost! Have a few quid to help with the cost! I very much enjoy your series (as you know). 😁
@weirdboyjim
@weirdboyjim Рік тому
You really don’t have to! But I appreciate the sentiment more than you realise!
@m1geo
@m1geo Рік тому
@@weirdboyjim You're very welcome! I don't think you appreciate how much of a resource you're providing for others! People will be able to watch these for years to come! Just wish I had more free time! 😁
@MarkSinclair
@MarkSinclair Рік тому
I do so badly want to go back to the beginning and follow this project with you. But I would also love to create my own version but I just don't have the skillset right now. I have tried a few things, however.
@weirdboyjim
@weirdboyjim Рік тому
Best way to learn is to experiment yourself!
@PetRatty
@PetRatty Рік тому
What a boo boo, thought that meant a big mistake, 4 year daughter informs me it's when they hurt themselves. Glad you sorted it
@weirdboyjim
@weirdboyjim Рік тому
I was very relieved when I realized I was going to be able to fix it.
@JanBruunAndersen
@JanBruunAndersen Рік тому
In this case, the journey is as interesting as the destination.
@weirdboyjim
@weirdboyjim Рік тому
Always the way!
@electronash
@electronash Рік тому
4:19 - You did very well there, to stop yourself swearing. lol I can't tell you how many times I've made mistakes like that, but it's all part of the process. :P Good you found it, though.
@electronash
@electronash Рік тому
Your project could make for a fantastic learning tool btw, at a computer museum. (like a far more compact version of James Newman's megaprocessor at Cambridge.)
@weirdboyjim
@weirdboyjim Рік тому
In some ways finding mistakes and fixing them is more rewarding than never making them!
@electronash
@electronash Рік тому
@@weirdboyjim Yes, my projects tend to be very "rewarding" in that way, too. haha
@gork42
@gork42 Рік тому
Use a thin pcb with scalloped edge vias board-on-boar if you want to bodge like a pro. You could potentially fit the bodge entirely within a few mm distance from the header pins.
@weirdboyjim
@weirdboyjim Рік тому
I did think about putting this adapter board directly onto the backplane, I'd have needed to de solder the existing headers though.
@TheRealBobHickman
@TheRealBobHickman Рік тому
Beautifully brilliant bodging! BTW: How much does that instantaneous JLC manufacture & shipping cost? :P
@weirdboyjim
@weirdboyjim Рік тому
Why thank you Bob! When I realized the connector was reversed I paused what I was doing and designed that adapter board immediately. I didn't go for ultra fast delivery so I actually got away with an order total of $5.34 (including the once a month $8 discount). I half expected to not use it. Much cheaper than rushing into a new back plane (which will cost much more than that in connectors to go on it).
@cussuol
@cussuol Рік тому
@@weirdboyjim it wouldn't the same cost to rebuild the pipeline board?
@cussuol
@cussuol Рік тому
@@weirdboyjim nevermind. Just read the "less satisfatory" answer below.
@weirdboyjim
@weirdboyjim Рік тому
@@cussuol Getting the pipeline board remade would be a similar price, but I'd have to get new components AND have an annoying routing job if I'm going to keep the Led's in the intended places.
@petesapwell
@petesapwell Рік тому
I have a small collection of (thankfully inexpensive) PCB howlers, miss numbered headers like this, grounds connected across lines… last one was exactly this, I reversed the LSB-MSB on a header data upside down.
@weirdboyjim
@weirdboyjim Рік тому
I was a little embarrassed by this one.
@m1geo
@m1geo Рік тому
James, I know you're probably not concerned with it, but I wondered if you've ever considered length matching of traces? It may help if you try to push the speed of the design. Probably not much, but the way you reversed the connector will have really screwed with the control line timing slack across the signals. 😬
@weirdboyjim
@weirdboyjim Рік тому
I actually spent time calculating the timing implications of trace length difference and it really isn’t much at these clock rates. Much more import to iterate the design away from long dependency chains.
@m1geo
@m1geo Рік тому
@@weirdboyjim Absolutely. I know it doesn't matter. Just makes me twitch, what with my professional high speed PCB background. 😁
@arcorner1811
@arcorner1811 Рік тому
good project .continue till can install OS
@weirdboyjim
@weirdboyjim Рік тому
The monitor is slowly evolving towards an OS.
@renaissanceman5847
@renaissanceman5847 Рік тому
Thats why I use wire wrap.... yes its ancient... but mistakes like this can be fixed. however wire wrap will never be as beautiful as a colorful well designed Circuit board. keep it up. mistakes are part of the journey
@JohnDlugosz
@JohnDlugosz Рік тому
Wire-wrap has its own kind of beauty. A minicomputer with 18-inch boards spaced well apart with the area between filled with wire-wrap lets you envision how the circuits are woven like the pattern on a sweater.
@weirdboyjim
@weirdboyjim Рік тому
I can see how this might have been easy to solve with wirewrap, but what if those connections were done early and lots of others crossed on top? I have no experience of how that scales.
@renaissanceman5847
@renaissanceman5847 Рік тому
@@weirdboyjim its not that difficult to make a change. essentially just unwind the 2 or 3 levels above (should it be on the bottom), then move them. The only issue I've come across is that wire wrap wire is solid and about 0.007 inch diameter (30awg) so it only tolerates being wound and unwound about 4 - 5 times before it breaks. of course you must have enough slack else you'll find yourself replacing the entire wire from point to point. the other issue is wire wrap IC sockets are rather expensive.
@khatharrmalkavian3306
@khatharrmalkavian3306 Рік тому
Suggestion: If you do revise the backplane, it may be useful to add a latching pushbutton power switch so you don't have to mess with the cable as much.
@weirdboyjim
@weirdboyjim Рік тому
It would have been handy here in hindsight!
@PaulHuininken
@PaulHuininken Рік тому
Thank you 4 you
@weirdboyjim
@weirdboyjim Рік тому
You are so welcome!
@PaulHuininken
@PaulHuininken Рік тому
@@weirdboyjim I really love the way you operate. Good man!
@kestergreen3844
@kestergreen3844 Рік тому
Have you considered the signal delays when routing traces? A 90 degree bend in the traces will result in the bend's outer trace having a slight delay compared to the inner trace on the bend. It'd be interesting to know how much of a delay is caused on your system and a good follow up to your video on the critical path. Modern motherboards have some interesting patterns to ensure traces are the same length between two IC's.
@benjaminmiller3620
@benjaminmiller3620 Рік тому
Modern motherboards have 2-3 orders of magnitude tighter timings though. I doubt James has to worry about trace length just yet.
@kestergreen3844
@kestergreen3844 Рік тому
@@benjaminmiller3620 I agree with you. The signal will travel along the trace at the same speed regardless of the clock speed so it's a concern when overclocking or on the speeds of modern hardware. I still wonder about the signal timing. The motherboard has been overclocked before and the chips were operating successfully outside their documented timings. I'm just curious about the latency and if a new backplane revision is coming why not investigate latency and incorporate modern practices as a learning exercise?
@weirdboyjim
@weirdboyjim Рік тому
I did run some maths on this stuff in response to another comment. At these clock rates it's not a big deal, one day I might need to worry about it. I really like the modular look of this build but the extra trace length probably wouldn't help if you push the clock a lot higher.
@kestergreen3844
@kestergreen3844 Рік тому
​@@weirdboyjim Seeing your processor already push the limits of it's chips was really impressive. Back when you had the processor on breadboards you had a stable build. It's great you can reach a high clock speed. You make building a processor look easy and that's a credit to your skill and knowledge.
@DustinWatts
@DustinWatts Рік тому
Nice fix! :) Did you mention what the backplane PCB costed and did I miss it or didn't you mention it?
@weirdboyjim
@weirdboyjim Рік тому
I think it was onscreen on the previous video. It was $79.70
@DustinWatts
@DustinWatts Рік тому
@@weirdboyjim Pricey, but for me it would be worth doing again. But that is probably my autism talking :)
@theoriginalrecycler
@theoriginalrecycler Рік тому
James, when I acquire a final version of this I will expect the leds to function correctly. So fix the issue. 👍
@weirdboyjim
@weirdboyjim Рік тому
I shall indeed!
@vmiguel1988
@vmiguel1988 Рік тому
With better signal integrity it may be possible to increase the clock speed, it would be nice to test it!
@weirdboyjim
@weirdboyjim Рік тому
If you watch my critical path I can account for the clock rate limit just by the latency of some of the circuits, so I'm not inclined to push it much harder.
@TomStorey96
@TomStorey96 Рік тому
I'd have done the bodge wires. But then, you've probably seen my ISA prototype board. 😄
@weirdboyjim
@weirdboyjim Рік тому
I know you would have!
@Stabby666
@Stabby666 Рік тому
Just wondering, why not move to 4 layers for the backplane? It really simplifies routing (I use Eagle but I'm sure it's the same with EasyEDA) and you will have unbroken GND and VCC planes, removing issues with signal integrity. The cost is virtually identical at JLC (I have 4 to 8 layer boards made all the time). The general stack-up would be top routing, GND, VCC, bottom routing.
@weirdboyjim
@weirdboyjim Рік тому
I’ve thought about it, I’ve checked and it’s actually about 50% more which is not as bad as I expected. The bus control board was something like 5x but It’s obviously not a linear scale.
@Stabby666
@Stabby666 Рік тому
@@weirdboyjim Ok cool, it seems to be going ok so far. I'm just worried you're going to have intermittant problems with noise with such a large board with no GND plane, as routing GND using tracks could result in the return path from some daughter-boards taking extremely circuitous routes back to source (can cause ground loops). In your case you don't have any really high speed signals, but a multi-layer setup can also help reducing EMI. You can then also use stitching vias next to the faster signals to maintain ground reference integrity when transitioning between layers. I'm going on a bit, as it's a subject I have to contend with daily (work on a lot of RF designs). Anyway, great work, looking forward to the next stages of the VGA implementation!
@kokodin5895
@kokodin5895 Рік тому
thinking outside the box leavebackplane as is and rework the pcb that plug in to kave reversef connectors? or replace the header on both with 90 degree pin headers pointing down the board and hyst reverse the ribon cable between the backplare and the board
@weirdboyjim
@weirdboyjim Рік тому
That was one of my early ideas, it would work but it wouldn't be very satisfactory.
@GeorgeGordonNCA
@GeorgeGordonNCA Рік тому
Is there a VHDL representation of the CPU available somewhere? I think, it would be interesting to see this CPU-Design be implemented in either an FPGA, or an actual ASIC via one of the open IC projects.
@khatharrmalkavian3306
@khatharrmalkavian3306 Рік тому
Thanks for mentioning that. I was not previously aware of these projects. This is definitely where tech needs to go next!
@weirdboyjim
@weirdboyjim Рік тому
A couple of people have been trying to get FPGA versions up and running but it's not one of my goals.
@ninehundredollarydoos
@ninehundredollarydoos Рік тому
Any plans on adapting the VGA section to an expansion card? Maybe something off the shelf like ISA or PCI?
@weirdboyjim
@weirdboyjim Рік тому
Well it will end up on it’s own board that plugs into the expansion port. You could do something like isa but it would be a lot of effort so I wouldn’t do it without an additional goal in mind.
@naveenchavali8488
@naveenchavali8488 Рік тому
Hey James, I was just curious won't it be way more economical to flip the connections on the pipeline stage-2 board and fit it into the existing backplane?
@weirdboyjim
@weirdboyjim Рік тому
Economical yes, but far less satisfactory!
@edgeeffect
@edgeeffect Рік тому
I think that is THE most elegant bodge I've ever seen.... but (sorry) you're going to need a bigger Frame of Shame (sorry).
@weirdboyjim
@weirdboyjim Рік тому
I’ve been thinking this pcb once I’ve replaced it can become the host for all my other bodged boards. How many will I need to remake in order to have it working I wonder.
@galchenko61
@galchenko61 Рік тому
You should to make a Power button and Debug port with all signals on next mainboard revision 😉
@weirdboyjim
@weirdboyjim Рік тому
Hmm, power button. A physical switch would be easy but a digital toggle using fets would be more interesting.
@galchenko61
@galchenko61 Рік тому
​@@weirdboyjim (Digital Button && relay switch) || (button + powerful mosfet transistor) 😉
@fintux
@fintux Рік тому
There's no shame in making mistakes. The only people who don't do mistakes are those who don't make anything at all.
@weirdboyjim
@weirdboyjim Рік тому
Good outlook!
@peddersoldchap
@peddersoldchap 9 місяців тому
Are you going to implement this on silicon?
@weirdboyjim
@weirdboyjim 8 місяців тому
No plans for that, it's very much designed to be sat on a desk with it's gut's exposed. I may do some designs in the future that would be more suited for conversion to an fpga, that would make it easier to play with concepts such as multi-core without needing to double the circuit up.
@keyogen
@keyogen Рік тому
Question. Would you get better performance from the backplane if all the bus traces where the same length?
@weirdboyjim
@weirdboyjim Рік тому
Good question, it isn't making a difference here. The CPU is clocked at 4Mhz and signals will go through a wire at about 90% of light speed. At most my bus traces are a couple of centimeters different so if you multiply it all out that track variance is about 0.03% of a clock cycle. Not something we need to worry about but at higher clock rates it can become significant.
@sjwatt
@sjwatt Рік тому
Have you considered having the footprints for your entire submodules instead of just each pin header?
@weirdboyjim
@weirdboyjim Рік тому
On the backplane? I suppose I could but it's not going to be seen very much.
@Jarko1401
@Jarko1401 Рік тому
If you are redoing backplane, why don't you add power switch? And maybe USB-UART converter?
@weirdboyjim
@weirdboyjim Рік тому
Power switch isn't the worst idea, had to plug/unplug this a few times during the troubleshooting.
@sdjhgfkshfswdfhskljh3360
@sdjhgfkshfswdfhskljh3360 Рік тому
It's great that mistake didn't fried some chips.
@weirdboyjim
@weirdboyjim Рік тому
Yes, but would be difficult with that header, as long as things are just outputting a standard signal I don’t think there is any way to trigger anything bad.
@CodeBallast
@CodeBallast Рік тому
Hi. I'm trying to buy chips. But the HCT chips are hard to get a hold of. I can get the LS chips. But aren't they slower than HC/HCT? I can also get HC chips. But they cannot get input from LS. HC can drive input to LS. Can HC chips output pins drive both LEDs and other input pins on other HC chips? Do you need resistors on LEDs? What fanout do the HC have compare to LS. I read all kinds of things, but I'm not getting any wiser :0) Any inputs are welcome...
@weirdboyjim
@weirdboyjim Рік тому
LS are actually a little faster than HC/HCT. I've not had any difficulty getting either from the larger suppliers, mostly mouser.
@CodeBallast
@CodeBallast Рік тому
I'm buying from china. It's easier with tax and customs. I'll check your references. Why don't you use LS if they are faster than HCT? Nice videos BTW. I've seen almost all of them ;0)
@peter.stimpel
@peter.stimpel Рік тому
Nice bodge by replacing a board :)
@weirdboyjim
@weirdboyjim Рік тому
Thanks Peter.
@TheTkiller9999
@TheTkiller9999 Рік тому
care to have a suggestion? just redo the Pipeline stage 2 board... flip the connector..? it will cost a lot less and frankly the back plain is very nice as it is.
@weirdboyjim
@weirdboyjim Рік тому
I did mention that as a possibility in the video. I'd either have to do some very tricky routing or accept the led's being in a different order than I'd like.
@Bob_Burton
@Bob_Burton Рік тому
Is there a reason why you are not sponsored by JLCPCB ?
@weirdboyjim
@weirdboyjim Рік тому
I've had various offers from multiple pcb vendors (including them) but nothing has quite felt right. I'm very hesitant to take on commitments.
@c0d3w4rri0r
@c0d3w4rri0r Рік тому
these little mistakes are becoming costly and time consuming enough as the project gets more complex that it might be nice to have some sort of circuit emulator you could run some test code on before ordering parts.
@weirdboyjim
@weirdboyjim Рік тому
I have a simulator for testing code on but I don't think there are any tools that would have protected me from this mistake.
@c0d3w4rri0r
@c0d3w4rri0r Рік тому
@@weirdboyjim nor do I. Ideally you'd want code to verify that the pcb layout matches your circuit diagram by firing test signals into the pcb and associated circuit diagram and making sure you get the same output. Then presumably if you integrated all your circuit diagrams into one logic simulator you could test code on it. I'm guessing its the PCB to circuit diagram testing that's not available?
@keyogen
@keyogen Рік тому
Well at less you can fit the other board on it in the frame of shame. That if it fits.
@weirdboyjim
@weirdboyjim Рік тому
_We're going to need a bigger frame_
@RooMan93
@RooMan93 Рік тому
I find these kind of mistakes Always happen just before lunchtime.
@weirdboyjim
@weirdboyjim Рік тому
I think this one was late evening
@nolan412
@nolan412 Рік тому
I release magic smoke whenever I get any hardware backwards.
@nolan412
@nolan412 Рік тому
This series needs a financial recount like the gold mining and crab boat reality shows have at the end.
@nolan412
@nolan412 Рік тому
Did notice "transparent pcb" was an option at one PCB printer the other day. Back plane? Blinken front plane!
@weirdboyjim
@weirdboyjim Рік тому
Fortunately that connector was just signal outputs. One with power on would be trouble!
@benjaminargenziano5851
@benjaminargenziano5851 Рік тому
Add HW timers and a real-time clock to this computer.
@weirdboyjim
@weirdboyjim Рік тому
Those wouldn't be too tough to add as peripherals. I did actually get myself an RTC chip for some testing ukposts.info/have/v-deo/qJ6lg494b499mas.html
@benjaminargenziano5851
@benjaminargenziano5851 Рік тому
@@weirdboyjim Can a Timer/Counter and RTC be made and implemented from such logic components? - Similar to the other CPU Components.
@JohnDlugosz
@JohnDlugosz Рік тому
Your reverse bits function makes me cringe. Maybe on some platforms shifting by a variable is just as fast as shifting by a constant 1? Or on the modern x86-64 you can't really tell. But, you only have to shift by one: shift the input right, and shift the result left. Here's the function as written by ChatGTP: uint16_t reverse_bits(uint16_t x) { uint16_t result = 0; int i; for (i = 0; i < 16; i++) { result = 1; } return result; } although it took some coaching, I only gave it English directions.
@weirdboyjim
@weirdboyjim Рік тому
If you want the fastest possible bit reverse I'd do it with a divide and conquer strategy swapping neighboring bits, then pairs, then fours and finally swapping the high and low byte. It would out perform the code you posted by quite a margin. The code you posted is better than what I wrote on the fly but that was on the spot code while focusing on a circuit problem just to test something. Your implementation looks ok at first glance but the compiler will never turn it into an optimal implementation.
@alejandroalzatesanchez
@alejandroalzatesanchez Рік тому
you need to label the pins so badly, to get around of this mistakes
@weirdboyjim
@weirdboyjim Рік тому
If you ever get access to a time machine please sent that to me a few weeks ago!
@pissmilker2313
@pissmilker2313 Рік тому
You should've called the adapter just "Ghetto-fix"
@weirdboyjim
@weirdboyjim Рік тому
Surely that would apply better to the breadboard version with messy wires?
@Fuq_you
@Fuq_you Рік тому
I’ve always wondered, what programming language do you use when creating and/or editing the computer’s ROM’s?
@weirdboyjim
@weirdboyjim Рік тому
Do you mean the ROM's in the pipeline or the program code roms? For the former I wrote some custom code in c/c++, it's a bit rough around the edges but gives me a simple way to generate the data. The program code I generate with my own assembler.
@DAVIDGREGORYKERR
@DAVIDGREGORYKERR 4 місяці тому
what about... unsigned long long int AES::REVERSEW(unsigned long long int A) { unsigned long long int B=A,RESULT; B=(((B&0xaaaaaaaaaaaaaaaa)>>1)|((B&0x5555555555555555)2)|((B&0x3333333333333333)4)|((B&0x0f0f0f0f0f0f0f0f)8)|((B&0x00ff00ff00ff00ff)32)|(B
@weirdboyjim
@weirdboyjim 4 місяці тому
Your REVERSEW() uses what I call a divide and conquer strategy. It’s fun to play around with clever bit operations like that but you have to be careful. I’ve written a lot of very tightly optimised functions of this sort over the years (I have a reputation for it) but they take time to get right and tend to involve lots of care and debugging to be sure all the cases are right. Your implementation for example would not have worked, it would have set all the control outputs to zero (the word length was wrong). The function I wrote was not great from a performance perspective, but it was just a bit of quick test code written on the fly while recording a video to a prove the issue. I was balancing both confidence, speed of writing but also clarity of what I was doing to the user. I ran it once as a test and then threw it away so I think not writing optimal code was justified . If you are interested, here is the d&c version of the function I wrote: unsigned int BitReverse16(unsigned int rhs) { unsigned int out; out=((rhs&0xaaaa)>>1)|((rhs&0x5555)2)|((out&0x3333)4)|((out&0x0f0f)8)|((out&0xFF)
@DAVIDGREGORYKERR
@DAVIDGREGORYKERR 4 місяці тому
@@weirdboyjim that is the 16bit version of the 32bit version but there is other bitreverse() is actually part of the FFT(long double[],long double[],int,int); and has to be very fast, I have since rewritten the whole FF() routing in machine code and is again order of magnitude faster.
@weirdboyjim
@weirdboyjim 4 місяці тому
@@DAVIDGREGORYKERR the one you posted was actually 64 bit. One of the reason's you have to be very careful with this stuff is 64bit "clever" operations like this on a 32bit cpu often create terrible code depending on the compiler and architecture.
@DAVIDGREGORYKERR
@DAVIDGREGORYKERR 4 місяці тому
@@weirdboyjim i can use the statement short unsigned int A.
Final Peripherals Backplane - Making an 8 Bit pipelined CPU - Part 104
45:26
New CPU Backplane - Making an 8 Bit pipelined CPU - Part 102
42:42
James Sharman
Переглядів 10 тис.
😨Новая Война в GTA 5 Online #shorts
00:40
King Dm
Переглядів 1,6 млн
Історія загиблого Назара Небожинського
00:54
Суспільне Рівне
Переглядів 705 тис.
The 8-bit home computer from 1975 you've never heard of
30:13
Adrian's Digital Basement
Переглядів 194 тис.
Introduction to CPU Pipelining
10:29
Merlin Wellington
Переглядів 32 тис.
The world's worst video card?
32:47
Ben Eater
Переглядів 6 млн
Best OS for programming? Mac vs Windows vs Linux debate settled
8:41
Tile Data - VGA from Scratch - Part 13
1:00:34
James Sharman
Переглядів 15 тис.
The BIG Agon light™ REVEAL! Meet the FASTEST and CHEAPEST 8-bit computer ever built
1:03:09
Why build an entire computer on breadboards?
28:43
Ben Eater
Переглядів 3,1 млн
Output PCB - VGA from Scratch - Part 18
1:22:14
James Sharman
Переглядів 9 тис.
Игровой ноутбук за 100тр в МВИДЕО
0:58
KOLBIN REVIEW
Переглядів 398 тис.
Android top🔥
0:12
ARGEN
Переглядів 337 тис.
Что еще за обходная зарядка?
0:30
Не шарю!
Переглядів 1,3 млн