No video

Building a 6800 CPU on an FPGA with nMigen (part 1)

  Рет қаралды 25,609

Robert Baruch

Robert Baruch

Күн бұрын

6800 CPUs are getting rare. Let's build one on an FPGA with nMigen, a Python-based Hardware Description Language.
nMigen tutorial: github.com/RobertBaruch/nmige...
Alltek Bally CPU replacement boards: allteksystems.com/

Пікірлер: 62
@vimalsheoran8040
@vimalsheoran8040 4 жыл бұрын
This is the gold that youtube never recommends but, wants you to find out
@emrahe468
@emrahe468 4 жыл бұрын
I'm feeling the same most of the time. And its algorithm "intentionally" directs you to crappy content with a higher bias.
@fathomisticfantasy2681
@fathomisticfantasy2681 4 жыл бұрын
Right? Where has this been all my life?
@TheBodgybrothers
@TheBodgybrothers 4 жыл бұрын
Comes for FPGAs; gets pinball history
@gsuberland
@gsuberland 4 жыл бұрын
You have no idea how perfectly timed this is! I've recently been complaining about the lack of tutorials that focus on Migen / nMigen for folks who haven't got a ton of FPGA experience. I'm very much looking forward to following this series.
@johalun
@johalun 4 жыл бұрын
Welcome back! Interesting project 👍🏻
@ratinthetub5048
@ratinthetub5048 4 жыл бұрын
Oh, this is something I'm really interested in. I'll most likely be following on with this and trying to implement one alongside
@TomStorey96
@TomStorey96 4 жыл бұрын
Will you be doing more on your RISC V project? That was really cool, but it seems to have been replaced with new interests? :)
@bernard2735
@bernard2735 4 жыл бұрын
Awesome project. I still have my MEK6800D2 from 1978, it will be nice to follow along with you as you build this.
@kevincozens6837
@kevincozens6837 3 жыл бұрын
I was checking out some of your other videos when I saw the reference to 6800 so that brought me here. nMigen sounds like a similar idea to MyHDL.
@pixelflow
@pixelflow 4 жыл бұрын
I for one welcome our fpga-running-8-bit-cpus-with-5volt-level-converters-on-DIP-adapter overlords!
@Lazrdo
@Lazrdo 4 жыл бұрын
Actually Sir. your project aren't pointless at all. Keep it up. People like me are learning so much from you even if you aren't an organized teacher in your lessons. BUT GREAT GREAT LEARNING EXPERIENCE FROM YOU Sir. Wish you all the best in the life Sir.
@christophernetherton9389
@christophernetherton9389 4 жыл бұрын
Thank you for the link to your notes. Have never used anything other than Verilog and am very interested in this!
@julian7333
@julian7333 4 жыл бұрын
Once you have a working 6800, you could add the instructions and IO for the 6801 and 6303 processors (and do the minor flags change for the CPX instruction).
@vincei4252
@vincei4252 4 жыл бұрын
Hi Robert, very cool to see the latest project. Looking at the lazy edges on signals on the datasheet and considering the high clock frequencies in current components with their fast edges, I'm wondering whether you'll need to make accommodations for the fast clock edges when interfacing the FPGA solution to the the 6800 socket and the long transmission lines it will drive. I remember watching a video somewhere where one of the old hands was talking about receiving newer CPU chips from a vendor years after their board had been designed and the newer chips not working at all because the CPU vendor had significantly improved rise times for all edges which caused the old circuit board to be unusable because it was a spitball design that depended on the clock edges to be pretty slow. Just a thought. I'll try to track down the video in question - I think it was from one of the guys that guested on EEVBlog and the AmpHour.
@vincei4252
@vincei4252 4 жыл бұрын
Here you go. Jack Ganssel is his name. Here's the link just in time for Christmas :-) kzbin.info/www/bejne/g3vTdXmkh7aqbtU Yes, I do have a copy of the Handbook of Black Magic.
@RogerBarraud
@RogerBarraud 4 жыл бұрын
@@vincei4252 Jack Ganssle. You can select slew rates on many FPGA output drivers nowadays.
@JacklapottTv
@JacklapottTv 4 жыл бұрын
Nooo dude the project is not pointless at all, i'am super excited :'(
@BobCollins42
@BobCollins42 4 жыл бұрын
Thanks for an interesting overview. The operation would be much clearer to me if you started with the state machine.
@AkatlaLet
@AkatlaLet 4 жыл бұрын
Yap!
@surprisingstuff
@surprisingstuff 4 жыл бұрын
Brilliant!. Subscribed.
@schr4nz
@schr4nz 4 жыл бұрын
It's interesting that you decided to show off the pinball machine, not 3 days after I was watching pinball machine videos, specifically about the Xenon machine, because KZbin recommended me videos about Suzanne Ciani, who is a synthesizer musician and wrote the sounds for it. It's not like KZbin recommended me this video based on that, I was already subscribed to you, just a strange/interesting coincidence.
@PeterCCamilleri
@PeterCCamilleri 4 жыл бұрын
Cool idea. On that note, what became of your project to build a RISC-V without using an FPGA?
@meredithcaveney1209
@meredithcaveney1209 4 жыл бұрын
Hey Robert, Thanks for posting these videos! It's great to see all the tools being used together. To anyone that could help: Is it possible to combine a project mostly finished that is written in Vivado using Verilog with an nMigen module? For example, could you use nMigen to import numbers from a text file and feed them into the Verilog project? And would it be any easier to use one or the other? Thanks again!
@MichaelFJ1969
@MichaelFJ1969 3 жыл бұрын
@Robert Baruch : Thank you for making this video series. You have introduced me to the world of formal verification, and the rabbit hole is very deep indeed! Anyway, thank you for being such an inspiration! I'm now writing up my own experiences (using VHDL) here: github.com/MJoergen/formal
@EngineeringVignettes
@EngineeringVignettes 4 жыл бұрын
I started out with VHDL, moved to Verilog and am now at SystemVerilog. The last option makes the most sense to me as a firmware engineer... Good for simulation testbenches as well. There was a C based FPGA language kicking around about 12 years ago, never seemed to become popular though... I have never heard of the Python based language that you are going to use I will check it out. It's up against tough competition though, the 2 V's are like the thing that would not die 😋 Cheers,
@EngineeringVignettes
@EngineeringVignettes 4 жыл бұрын
@MrMagooo - Thats what I get for typing this late at night... mixing my SystemVerilogs with my ActiveHDLs... fixed.
@EngineeringVignettes
@EngineeringVignettes 4 жыл бұрын
(Update) - Found those older C-based languages; they were System-C and Handel-C. Both are defunct projects now. A new C-based HDL Synthesis tool, out of the University of Toronto (LegUp), seems to be the new kid on the block for representing C.
@robertf981
@robertf981 4 жыл бұрын
@@EngineeringVignettes SystemC is hardly defunct; Mentor's Catapult and Cadence's Stratus are High Level Synthesis tools that work best consuming SystemC. NEC Cyberworkbench and Xilinx VivadoHLS also work with SystemC. It provides the conceptual parallelism that C or C++ based implementations cannot. I've used the Mentor and Cadence tools.
@davidclift5989
@davidclift5989 4 жыл бұрын
@@robertf981 but that's the issue with all these software languages being used to design hardware, they are not inherently parallel in execution. Both VHDL and Verilog/SystemVerilog are written on the backbone of parallel execution. People should stop confusing software languages with hardware description languages.
@mathlevr
@mathlevr 4 жыл бұрын
Hey Robert. Cool shirt. ;)
@RogerBarraud
@RogerBarraud 4 жыл бұрын
Pretty sure the Data bus contents on a read cycle are latched on the falling edge of phase 2, not the rising edge of phase 1... but I might be 6502-ising here?
@craigmanning2439
@craigmanning2439 4 жыл бұрын
6800 Well nice for any one who wants to repair a Bally or Stern pinball MPU. Ten of then sitting in my parts supply. Now getting 5101 memory. That is a different question.
@w.maximilliandejohnsonbour725
@w.maximilliandejohnsonbour725 4 жыл бұрын
Interesting...!!!!!.
@vasili1207
@vasili1207 4 жыл бұрын
Do you programme for the MISTer project? If you do not maybe you could look it up and see if its up you're street
@Aemilindore
@Aemilindore 4 жыл бұрын
Howly shit. This is changing my world
@UpcycleElectronics
@UpcycleElectronics 4 жыл бұрын
A rather beginner 101 question, but is the hand drawn description at the end considered a "pipeline?"
@teitoklien
@teitoklien 4 жыл бұрын
First ! Glad to see your new video Robert Have a great day !
@MeSlimyboi
@MeSlimyboi 4 жыл бұрын
with only 3 comments, I can agree with you being the first
@TheBodgybrothers
@TheBodgybrothers 4 жыл бұрын
Being the first is the highest of skill
@duality4y
@duality4y 4 жыл бұрын
what level shifters did you use, i want to use some in a project and am currently doing research to see which fit within my project :)
@RobertBaruch
@RobertBaruch 4 жыл бұрын
Looking at the 74LVC8T245 (8-bit) and the '16T245 (16-bit). These may turn out to be overkill. For example, the address lines are 16-bit tristate output, 3v3, so I don't have to care about dropping a 5v signal to 3v3. If the thresholds are with me, I can just use an ordinary TTL tristate buffer (such as the 74LS541) for these.
@RogerBarraud
@RogerBarraud 4 жыл бұрын
11:20 Pretty sure that only works if it's fabbed on a spherical die...
@dsodso1664
@dsodso1664 4 жыл бұрын
Any chance to make a faster x86 core faster than ao486?
@douro20
@douro20 4 жыл бұрын
flipperservice.at makes replica replacement boards for Bally pinball machines.
@williamskiba6786
@williamskiba6786 3 жыл бұрын
what ever happened to the rest of the zork cpu videos? I see only up to #6
@tonupif
@tonupif 2 жыл бұрын
Спасибо тебе дорогой американский друг.
@MrGeorge1896
@MrGeorge1896 4 жыл бұрын
So it took me 6 mins to figure out you are NOT talking about the 68000. Maybe I need some glasses...
@duality4y
@duality4y 4 жыл бұрын
Verilog ugly?
@esra_erimez
@esra_erimez 4 жыл бұрын
What are the differences between a 6800 and 6809/6811? I'm genuinely curious.
@TomStorey96
@TomStorey96 4 жыл бұрын
The Wikipedia entry for the 6809 has some detail on the differences between the 6800 and 6809, perhaps that will answer for at least some of the differences. Otherwise, see if you can find the datasheets for both and have a quick skim through.
@tommythorn1336
@tommythorn1336 4 жыл бұрын
Funny, I was thinking about this too. I spent my youth on a Z-80, but I think the 6809 had the best ISA from the programming/compiler point of view. I did build a dev board for the 68HC11 (surprisingly easy), but I never really did much with it, bummer.
@esra_erimez
@esra_erimez 4 жыл бұрын
@@tommythorn1336 I learned on a TRS-80 with a Z80, but like you I agree that the 6809 had the best ISA.
@EddieSheffield
@EddieSheffield 4 жыл бұрын
@@esra_erimez I had a TRS-80 as well, but it was the CoCo with the 6809. Doing assembly on it was so clean. Then I got to college and did some 68000 (which was wonderful and just felt like a suped up 6809) and 8086 which was a complete mess. I've always wondered what the PC landscape would look like today if IBM had used the 68K instead for their first PC.
@MickeyD2012
@MickeyD2012 4 жыл бұрын
I can't believe a new 6802 costs more than the average new Intel chip. What has the world come to?
@smunaut
@smunaut 4 жыл бұрын
Watch out ... auto-direction bidirectional level converters never work properly ... avoid at all cost.
@thomaschu4812
@thomaschu4812 4 жыл бұрын
I don’t think 8k LUTs is not enough to emulate a 6800. You need to simulate the design first.
@irgski
@irgski 4 жыл бұрын
Seem to be having trouble installing the python extensions “pip” and “venv”. Any clues or help?
@AntneeUK
@AntneeUK 4 жыл бұрын
I'm gonna be _that guy_ who questions pronunciation. Sorry... I've always known it as g-eye-gher, not g-ee-gher. Which is right? I'm sure it doesn't matter, mind you...
@JensAndree
@JensAndree 4 жыл бұрын
It's G-ee-ger. I'm a multi-lingual Swede with extensive knowledge in the Germanic languages, for reference. Most Europeans pronounce it correctly but for some reason the British pronounce it like a Geiger counter, which is incorrect in the case of H.R. Giger. If he'd been born in the UK it'd been pronounced like a Geiger counter though...
@AntneeUK
@AntneeUK 4 жыл бұрын
See, now I'm glad that I asked, @@JensAndree! Thanks
@bennguyen1313
@bennguyen1313 10 ай бұрын
I understand migen became nMigen which became Amaranth HDL.. but any thoughts how it compares to Chisel? I have a SmartFusion2 device, so technically it's not officially supported by LiteX.. so I'm kinda starting from scratch. Unfortunately, much of the learning material is a bit dated* *2016 whitequark Implementing a UART in Verilog and Migen LambdaConcept tutorial from 2020 is only accessible via internet archive lab-sticc mic-sec-2022 2020 vivonomicon Learning FPGA Design with nMigen RobertBaruch / nmigen-tutorial libre-soc HDL_workflow/
Building a 6800 CPU on an FPGA with nMigen (part 2)
1:29:14
Robert Baruch
Рет қаралды 19 М.
Can You Forge Tungsten?
16:14
Alec Steele
Рет қаралды 563 М.
IQ Level: 10000
00:10
Younes Zarou
Рет қаралды 13 МЛН
SCHOOLBOY. Последняя часть🤓
00:15
⚡️КАН АНДРЕЙ⚡️
Рет қаралды 8 МЛН
EVOLUTION OF ICE CREAM 😱 #shorts
00:11
Savage Vlogs
Рет қаралды 14 МЛН
How I reverse engineer a chip
5:10
Robert Baruch
Рет қаралды 445 М.
What Was This Creepy Guy in MythBusters S2?
8:11
Adam Savage’s Tested
Рет қаралды 209 М.
XDC 2019 | Everything Wrong With FPGAs - Ben Widawsky
1:03:20
X.Org Foundation
Рет қаралды 12 М.
FPGA based CPU designs from the 90s, PART I
16:43
joe smith
Рет қаралды 432 М.
27c3: Reverse Engineering the MOS 6502 CPU (en)
51:57
Christiaan008
Рет қаралды 435 М.
LMARV-1: A RISC-V processor you can see. Part 1: 32-bit registers.
41:43
Open-Source Tools for FPGA Development
38:27
The Linux Foundation
Рет қаралды 46 М.
Driving a VGA Display?! Getting started with an FPGA! (TinyFPGA)
11:26