The "Do Anything" Chip: FPGA

Поделиться
HTML-код
  • Опубликовано: 14 окт 2024
  • Learn about the FPGA, the reprogrammable silicon chip that can be made to do almost anything you can conceive of! For my book "Secrets of the Autistic Millionaire": amzn.to/3diQILq
    FPGA Starter Kit: amzn.to/3z7OIkq
    FPGA Dev Board: amzn.to/3ZaFePH
    Orange Crab FPGA: amzn.to/3LOMgXq
    Follow me on Twitter: @davepl1968
    Discord Chat w/ Myself and Subscribers: / discord
    Remember, any "Contact me on Telegram" comments are scams.

Комментарии • 535

  • @sveticus
    @sveticus Год назад +515

    As a Xilinx (now AMD) employee focusing on embedded software in the SoCs I am glad to see content like this finally happening. I have been a believer for a while that embedded FPGAs is the next frontier of hobbyist computing

    • @ZoeyR86
      @ZoeyR86 Год назад +14

      Agreed, I'm an engineer doing both hardware and embedded software. I enjoy the flexibility of fpga's but find myself using mcu or clpd more for costs

    • @jangelelcangry
      @jangelelcangry Год назад +17

      I wonder how much time will take until FPGAs are powerful enough to replicate the PS3.

    • @derekfoulk4692
      @derekfoulk4692 Год назад +19

      Yeah except for the price, that refuses to come down...

    • @sveticus
      @sveticus Год назад

      @@jangelelcangry check out the MiSTer project. I am pretty sure there is already a PS3 core for it.

    • @Rorschach1024
      @Rorschach1024 Год назад +18

      As an electronics hobbyist, when the hobby started moving into CPLD's and FPGA's I was stumped. Technology was leaving me in the dust, much the way older mechanics felt when computer controlled cars started coming onto the market in the 80's. A whole new set of tools and modes of thinking were required to work on them. Those of us who cut our teeth on 74ls logic and analog electronics were suddenly left scratching our heads. If someone can point me to a good tutorial on how to program these things and open source software or even inexpensive commercial software to build the VHDL/Verilog files needed and how to use the software, that would be great.

  • @repatch43
    @repatch43 Год назад +225

    FPGA engineer for over 20 years, you did a great job of summarizing what they are and what they are for!

    • @engjds
      @engjds Год назад

      Great, now tell me what is the correct format to create a VHDL counter, seems people have different opinions, like reset condition should come first, others say the increment and then a simple if condition to reset it, what do you think?

    • @repatch43
      @repatch43 Год назад +4

      @@engjds I think you should write your code in such a way that:
      1) it implements the hardware you expect
      2) the code leaves NO ambiguity as to how synthesis turns it into hardware
      3) the result is timing clean and complete
      What you describe doesn't sound like something that should have an impact, but I'm more a verilog person so when it comes to VHDL I've been surprised many times how 'specific' VHDL can be.

    • @engjds
      @engjds Год назад +1

      @@repatch43 Thanks, good tips, I have been playing with code and then viewing the RTL it generates and I can never get it to look how I think of it in hardware, it works ok, but for instance if I make a counter, it uses say a 25bit reg feeding back into itself through a sum block, problem is I work across platforms, currently on the nano littlebee 1k, but also used Altera, am I right in thinking you have to modify code for each fpga platform because of the CLB differences or is there standards out there that should compile efficiently on any fpga?
      I am confused as to how many processes I should have in my design as well, am I right in thinking you would have one process per clock type?

    • @repatch43
      @repatch43 Год назад +2

      @@engjds You shouldn't worry about the underlying architecture of the FPGA much when it comes to core logic, unless you're REALLY trying to optimize every last clock cycle or LUT out of it. It matters much more if you're trying to infer memories or math functions, since the same bit of RTL that infers say a block ram in one architecture might infer a see of flops in another (although if you stick with registered reads, writes and addressing you'll usually be fine). Also, keep your clock gating (if used) VERY simple, if you go at all complicated then you'll have to start writing architecture aware code to properly infer the clock control blocks relevant to that architecture (unless you like hunting down REALLY hard to figure out timing issues).
      I don't think the number of processes matters much, as long as each is exclusive (i.e. you're not driving the same reg in different processes). I personally prefer all the logic in a clock domain to be in a single block, and if that starts getting too big then start using modules to partition the logic appropriately (using modules in general is a good idea, makes code management and portability much better).
      And no matter what, FULLY constraint your design. Make sure all your clocks are properly constrained, and CDCs are handled properly, and all IO related timing is specified. You should have NO timing warnings at all if you want to have a good time.

    • @opotime
      @opotime Год назад +3

      All i can add are what i wish for the Future...The FPGA Lobby meets the Right to repair people and get a rule...if you Stop selling your Product, IC or Controller you have to give the VHDL Files to replicate and keep Things going.
      Greatz from Germany
      and have a nice Day
      opo

  • @robbybobbyhobbies
    @robbybobbyhobbies Год назад +101

    Used to work for a hedge fund (sorry). We used FPGAs in exchange-attached data-centers as custom network cards. They obeyed just enough of the network protocols to work with other devices, but stripped away any and all surplus code and functionality and trimmed every bit of timing down to the bone. All so that we could beat some other guy's trade onto the exchange by nanoseconds. Pointless arms race, but it kept a couple of large-brained coders busy for a year or two. Went to work for a health-oriented startup to cleanse my soul after this gig.

    • @honkhonk8009
      @honkhonk8009 11 месяцев назад

      Why would you say sorry to that?
      Maybe its a generational thing, but honestly jobs like finance, defence contracting, and whatnot, are genuinely good jobs that alot of young people would be in.
      Google and Facebook are the litteral antichrist.

    • @valdomero738
      @valdomero738 10 месяцев назад +9

      I hope you're healing well

    • @tommyshelby2020
      @tommyshelby2020 8 месяцев назад +4

      As someone who will be interning for a similar gig this summer, can i ask you few questions?

    • @robbybobbyhobbies
      @robbybobbyhobbies 8 месяцев назад

      @@tommyshelby2020 I was back-office (reconciliation, market info stuff etc) rather than on the HFT side. Our FPGA guys were recent maths graduates with encyclopedic knowledge of protocols. I never actually met them (they were 8 time zones away), but they were extremely focused! As far as my work, straightforward Postgres, web, FIX protocol parsing for reconciliation every day along with office support. Stay on your toes, be flexible, not all people in finance are alpha-males (but most are, even the females). Do the job well and you’ll go far, same as in any industry, but the bonuses can be fun if you ever get a paying gig.

    • @robbybobbyhobbies
      @robbybobbyhobbies 8 месяцев назад

      @@tommyshelby2020 tried to reply with general background stuff and it kicked my comment. I was only on the back-office server-side (and office support). The FPGA guys were recent maths graduates 8 time zones east of me with encyclopedic knowledge of protocols, timings etc. . Traders were all good-sorts, although the boss was a little intense, if brilliant. They'll expect you to put in the hours, solve things without thanks (at the time) and generally excel invisibly. Goes without saying, but the numbers are the most important thing - never do anything that risks the accuracy of the data, or stops users seeing their figures at all times. If you get a paying gig then the bonuses can be fun. I got to work inside some excellent facilities (like the London Stock Exchange data centre several floors below the streets), similar setups in Frankfurt and less exotically, Slough. Though I was never a part of it (chronically socially inept), the out of hours social side was active. I left the game in 2017 I think and maybe everything's really dull and by the books now.

  • @theRealRindberg
    @theRealRindberg Год назад +57

    In 2005 I took a course in VHDL which I found so amazing... when I started to understand that the order of some rows of the code you wrote didn't matter as they would be "executed" in parallel. My C++ brain had a hard time accepting the lines of code didn't "execute" in the order that I wrote them but could be "executed" at the same time.

    • @eastonsailer2223
      @eastonsailer2223 11 месяцев назад +2

      Currently taking my first Verilog course in University and this literally just clicked in my brain this week (8 weeks into class, our Professor didnt do much explaining and just threw us some half finished code lmao)

    • @Krishna-iy5wy
      @Krishna-iy5wy 9 месяцев назад

      Does anyone of explore how that works???

    • @ekon01cz
      @ekon01cz 8 месяцев назад +1

      Well even C++ code you do write is not executed in order. Most of the current cpu's does parallel pipelining so you can actually execute more instuctions in one clock.

    • @deang5622
      @deang5622 6 месяцев назад +2

      The purpose of VHDL is not to execute.
      It is NOT a sequence of instructions.
      It's a language to create hardware.

    • @atavusable
      @atavusable Месяц назад +1

      @@Krishna-iy5wy VHDL = VHSIC HArdware Description Language.
      You aren't making code that run on a target.
      You are creating an hardware architecture that will execute a function.

  • @Bushidounohana
    @Bushidounohana Год назад +138

    Thanks, Dave! FPGAs have also found a niche in the retro gaming community, often cited as the gold standard of “emulation” versus software emulation.

    • @big0bad0brad
      @big0bad0brad Год назад +15

      Yeah, doing emulation when multiple chips/processors are involved can be incredibly difficult to do both accurately and quickly at the same time without an approach like that.

    • @deang5622
      @deang5622 Год назад +1

      What's in the FPGA for emulation if not a microprocessor running code?

    • @big0bad0brad
      @big0bad0brad Год назад +24

      @@deang5622 The FPGA can emulate all the parts of the target system at the exact same time, so interactions between them that depend on the precise cycle things happened on still work properly. A software emulation approach usually has to make compromises in order to run fast enough, such as, for example, running a batch of CPU instructions in series, then emulating some of the GPU, then emulating some of the sound, etc.

    • @nocturnal0072
      @nocturnal0072 Год назад +20

      ​@@deang5622 It's more like "hardware" emulation. (Fpga) Basically makes real time cycle accurate emulation accessable.

    • @3nertia
      @3nertia Год назад +7

      That's ... a really excellent use case that makes a lot of sense; can't believe I hadn't realized this sooner lol
      Thank you for the edification!

  • @wictimovgovonca320
    @wictimovgovonca320 Год назад +99

    Excellent topic, would love to see a part II where you implement something using FPGAs. This reminds me of using bit-slice processors, certainly far more limited than FPGAs but allowed us to build custom systems with off-the-shelf chips.

    • @sparkfire1223
      @sparkfire1223 Год назад +3

      This would be awesome

    • @nolan412
      @nolan412 Год назад +2

      Starts with an LED bar spectrum driver and ends with a full soft ESP32.

    • @AZOffRoadster
      @AZOffRoadster Год назад

      Fellow AMD bit slicer? (circa mid '80s)

    • @deang5622
      @deang5622 Год назад +2

      It sounds like you've only just discovered FPGA's?

    • @IONATVS
      @IONATVS Год назад

      A similar technology from the 80s was called the Uncommitted Logic Array, where there would be a base chip made with a bunch of logic gates but no connections between them, so a company could cheaply customize it by creating a mask for JUST the connections they wanted. Was used to great effect in the ZX Spectrum, and was a powerful prototyping tool, but since it still required making new masks for each semi-custom design and they could only be used for their originally designed purpose, it was a much less powerful technique.

  • @RobCCTV
    @RobCCTV Год назад +19

    Yet again Dave delivers video content that I already know about, or at least 99% of it, but I watched because it is a masterclass of clarity and precision description. I am no longer involved in the electronics industry (in London's Met Police), but I never quite got to the stage of needing an FPGA in my designs. Wish I had got to that level though because if anything, FPGA really sound like a solution looking for a problem. Would have been fascinating to work with such devices.

    • @tainicon4639
      @tainicon4639 Год назад

      Real-time high performance imbedded devices…. They are pretty sick for that purpose. Currently on my list of things to learn in order to upgrade some medical devices.

  • @Craig1967
    @Craig1967 Год назад +22

    Hi Dave, I just wanted to tell you that your explanation of all the various logic gates is the best I have ever witnessed. Great Job! BTW, your mentioned in one of your earlier videos that one of the reasons you make them is an exercise to overcome some of the symptoms of Autism; I just wanted to let you know that you are doing great and I have noticed the change over the past years, and you have no issues communicating at all! Glad to see, and please keep up the great work.

    • @dosgos
      @dosgos Год назад +2

      This was a superb presentation.

    • @amb3cog
      @amb3cog Год назад +2

      Agreed! ✌️

    • @graemehoward4136
      @graemehoward4136 Год назад

      i didn't even realise you were on the spectrum till you mentioned it at the end. i am also on the spectrum.

    • @omar10wahab
      @omar10wahab 9 месяцев назад

      ​@@graemehoward4136a little bit of tism seems to help people excel but then you have to deal with the said effects

  • @Nedski42YT
    @Nedski42YT Год назад +16

    PCB designer here. In the 90's and early 2000's I layed out many boards with Altera FPGAs. 500 pins and up BGAs. The circuit design engineers were using Altera's rather expensive design software that was schematic based in addition to writing the Verilog/VHDL code.
    The biggest project I worked on was a Reflective Liquid Crystal Display for a HDTV projection TV. The design task for the engineers was to take a DVI signal and and condition it for the LCOS chip. There were, if I remember correctly, were 16 differential outputs from the FPGA to the LCOS drivers. The engineer let the Altera software autoroute the output signals.
    Recall that I said these were differential outputs. Differential signal pairs needed to be routed on the PCB with certain parameters to keep the signal timings and impedance correct.
    The output signals were routed to random pins on the FPGA. I asked if the output pins could be routed to fan out from one side of the FPGA and each pair would be on adjacent pins.
    The guy yelled at me "It WON'T work! The software picks the pinouts!"
    I persisted. I gave him the desired pinout and asked him to run the software with the output pins I assigned. He grumbled about how long it would take for the software to recompile the design.
    He ran it with the pinout I asked for and the simulation in the Altera software did not complain a bit!
    The PCB layout had no problems with signal integrity.

    • @jkf3169
      @jkf3169 5 месяцев назад

      What a shifty story that doesn't add any value to this comment section

    • @ProGamer1115
      @ProGamer1115 3 месяца назад

      ​@@jkf3169 *Shitty

    • @halchen1439
      @halchen1439 2 месяца назад

      @@jkf3169 im gonna touch you

  • @ejc4684
    @ejc4684 Год назад +16

    Thanks Dave! Glad more people are getting into FPGAs and hobbyists using them. Digilent also has some CMOD boards that are cheaper to get into and are bread board friendly. Altera (now Intel) has a MAX10 board on Digikey for about $50 that I’ve used in a project before.

  • @Campo_
    @Campo_ Год назад +4

    FPGAs are one of the most satisfying devices an electrical computer engineering can learn to use! They are the perfect interface between compute hardware and software!

  • @PeterCiesla
    @PeterCiesla Год назад +4

    This is one of the most significant inventions ever devised.

  • @techn1kal1ty
    @techn1kal1ty Год назад +14

    I've used several FPGAs as glitch chips for game console home brew projects, they're fascinating.

    • @usmanabdulsalamolanrewaju1435
      @usmanabdulsalamolanrewaju1435 Год назад +1

      Good evening, sir.
      I'm working on a FPGA project. it involves a machine learning model. I am thinking of burning a Linux OS onto the board so I can run python on the Linux. or is there any way around it.
      Thank you.

  • @johansteenkamp9214
    @johansteenkamp9214 Год назад +20

    Wow. I am subscribed to quite few RUclips channels covering different computing topics, including your channel of course. You are actually the first that went through the effort to produce a video of FPGA's.
    Do you have any plans to create some more in depth videos on the subject?
    I also like your approach on these kind of subjects.

    • @H0mework
      @H0mework Год назад

      Check out asianomety.

  • @MrEddieLomax
    @MrEddieLomax Год назад +5

    I used to work in ASIC (with Toshiba) now I work on Altera FPGA's, they are great chips and these days we are commonly working on designs running at 150 to 300Mhz. One comment to make, while we can optimise our designs for various logic gates in asic commonly we use 'standard cell' the technology in ASIC's is often full of frankenstein and-or gates that work better then individual cell gates that perform a single AND or OR, so I write the high level logic and let the compiler do the optimise it.
    I take the same approach on FPGA's - a good design architecture is the key to small/fast :)

  • @jwdory
    @jwdory Год назад +4

    One of the best introductions to FPGAs on RUclips! Thanks Dave!

  • @nima8071
    @nima8071 Год назад +55

    FPGAs are amazing, and I have had a very happy early career based on them. They are huge in trading, as well. Programming them is still a huge pain, unfortunately.
    One nitpick: FPGA CLBs do not actually contain logic gates - they contain lookup tables that can be configured to act as arbitrary combinations of logic gates with n inputs and 1 output. Modern FPGAs use 4- or 6-input lookup tables as their basic building blocks, often with some hardware to combine those lookup tables together to make wider functions.

    • @vitalyl1327
      @vitalyl1327 Год назад +2

      Not sure about the "huge pain", I'd take an FPGA instead of an MCU for most of the projects (well, besides the cost considerations), because it's easier to program.

    • @kayakMike1000
      @kayakMike1000 Год назад +3

      Oh.. that's what LUTs are.

    • @strehlow
      @strehlow Год назад +4

      In college, several times I just used an EPROM to implement moderately complex logic circuits by just storing the truth table. I couldn't (easily) use them for things with feedback, such as flip-flop circuits. But that is possible by looping one or more output lines back to an address input.

    • @big0bad0brad
      @big0bad0brad Год назад +4

      @@strehlow Yeah, it's kinda like, you could build a computer entirely out of SRAMs but you'd have a hell of a time booting it

    • @repatch43
      @repatch43 Год назад +1

      Hehe, I had the same nitpick.
      Also, CLB is not a standardized term, it's specific to Xilinx. Intel calls something similar an ALM.

  • @mikefochtman7164
    @mikefochtman7164 Год назад +3

    Worked with a company that used these extensively. We were building custom interfaces to some archaic main-frames. Back in the day, an interface board was a 19-inch rack board loaded with 7400 series chips to handshake with the bus (32-bit data, 24 bit address and a dozen or so other hand-shaking signals). We still used the 19 inch form factor, but was reduced to just a half-dozen chips, two or three being FPGA.
    During testing, have a glitch? slight timing issue? Tweek the design, attach the programming cable to upload the change and try again. Really fantastic devices.

  • @Nik930714
    @Nik930714 Год назад +15

    One interesting advantage FPGAs have over ASICs is the fact that fewer people and companies have contact with your design. This is extremely important in areas like military electronics, where you don't want a chip design falling in the hands of an enemy country trough the IC manufacturer.
    One place where FPGAs are often found is in the electronics lab equipment. Stuff like oscilloscopes, signal generators, spectrum analysers, etc. Those are relatively expensive and low volume products. In the past they were dominated by ASICs, but in time FPGAs took over.

    • @anonymouscoward9643
      @anonymouscoward9643 Год назад

      The enemy is within - humanity should be co-operating towards ending conflict by lifting each other up. There is nothing new under the sun - if you can think it, it’s been thought of by someone else as well. A midnight change to a foundry lithograph to backdoor some innocuous looking JTAG function could be used to disable the whole die on command. Evil people buying off less evil people with counterfeit currency is how the world is ending, plain and simple...

    • @nosuchthing8
      @nosuchthing8 Год назад

      Do people use them for block chain mining?

    • @Nik930714
      @Nik930714 Год назад +1

      @@nosuchthing8 You could, but the power draw would be higher than a graphics card or an ASIC miner.

    • @nosuchthing8
      @nosuchthing8 Год назад +1

      @Nikola Manolov good to know, thanks!

    • @ut4321
      @ut4321 8 месяцев назад +1

      I’ve seen several RUclips videos of missile internals recovered from battlefields. Hobbyists buy these “dud” missiles from Ukraine and other regions to take them apart to see how they work. You can see big FPGAs on the circuit boards. Hopefully the configuration code is heavily encrypted.

  • @TanjoGalbi
    @TanjoGalbi Год назад +5

    I have owned FPGA based computers for years now. My first was the MiST which is designed to be an Amiga or Atari ST computer (The name is a mix of the two computer names, Mi from the middle of Amiga). It can also be other computers like the BBC Micro, Sinclair Spectrum, C64, etc. by changing the FPGA configuration, known as cores.
    I then got an FPGA dev board to learn how to program FPGAs which I gave up on, not motivated enough these days I guess.
    My next one is the MiSTer which is the same idea as the MiST but uses a dev board instead of a custom board, though it does have custom boards to enhance the IO adding VGA output to use old CRT monitors for more authentic experiences. The dev board is the DE10-Nano from TerrasIC, those are very popular in retro computing and gaming these days and have many variations of addon boards including my latest the MiSTer Multisystem which turns it into a console.
    My next FPGA based computer is the Spectrum Next! The latest officially licensed Sinclair based computer. I am waiting for the second revision of that to be shipped too. It's a modern implementation of the Sinclair Spectrum computers, what they think the next version of them would have been with enhanced sound and graphics. It can also switch into Spectrum 48 or 128 modes for backwards compatibility. Being FPGA based it also supports other cores to become other machines, though you have to try to use them with a Sinclair keyboard! lol (It does have PS/2 keyboard and mouse support if you don't like the Sinclair keys)
    I also have a TerrasIC DE0-Nano dev board that I bought by mistake trying to order another DE10-Nano, I kept it anyway just in case I try again to learn on a simpler FPGA lol

  • @stephenelliott7071
    @stephenelliott7071 Год назад +5

    Thanks for the in-depth explaination, I have a FPGA in the form of the Spectrum Next Computer, a FPGA tuned to a Z80 based system.

  • @ac3_train3r_blak34
    @ac3_train3r_blak34 Год назад +9

    Great timing! I'm learning digital design right now in college!

  • @joelcorley3478
    @joelcorley3478 Год назад +13

    You mentioned ASICs compared to FPGAs. I'd point out that while FPGAs are highly configurable compared to ASICs, ASICs tend to be faster and smaller since they are dedicated solutions that lack the delays inherent in programable circuitry.
    I also think it would be interesting if you dived into how the logic blocks are implemented in differing FPGA architectures. Also an overview of PLDs / PALs / PLAs might be interesting as well.

  • @User-uk6rk
    @User-uk6rk Год назад +2

    This channel should be required for all Computer Science / Electronics students.

    • @stargazer7644
      @stargazer7644 2 месяца назад

      This is not an electronics channel.

    • @User-uk6rk
      @User-uk6rk 2 месяца назад

      @@stargazer7644 It is not a Computer Science channel either... but the information distributed here is value to young enthusiast despite it all.

  • @dcc1165
    @dcc1165 Год назад +3

    Definitely would like to see more like this. I've been interested in FPGAs for a while now but haven't had the time to dive into them the way I want -- I"m usually an all-in kind of learner...if I can't devote a lot of time to it, I wait until I can, otherwise I end up with a hodgepodge "patchy" knowledge I can't really use efficiently.

  • @guspaz
    @guspaz Год назад +2

    FPGAs and CPLDs have revolutionized the retro gaming community. They've enabled everything from optical drive emulators and flash carts to video output mods to analog video scalers to entire FPGA-based game consoles like the MiSTer and Analogue's product lineup. This is because the cost of small FPGAs has finally come down to the point where it's practical to use these for small-run consumer goods like this. Right now the state of the art for implementing consoles in affordable FPGAs is the Sony Playstation and Sega Saturn, though the Analogue Pocket handheld FPGA-based game console also deserves a shoutout for the form factor.

  • @hgbugalou
    @hgbugalou Год назад +3

    I really like the chips that combine a micro controller with a basic FPGA. This can give you the best of both worlds and can really open up your development options.

    • @scowell
      @scowell Год назад +2

      We find the Cypress PSOC indispensable in this regard.

  • @MaxParadiz
    @MaxParadiz Год назад +2

    Such a great timing! I just recently started learning about FPGAs and this is a fantastic introduction. Thanks a lot!

  • @ahmadalastal5303
    @ahmadalastal5303 Год назад +4

    I write C/C++, Assembly and Verilog now for around 4 years, I am happy that I have my own FPGA lab at home, I work as a C++ developer at my working day, but when I get home, this is my time, Thank you for this great content

    • @usmanabdulsalamolanrewaju1435
      @usmanabdulsalamolanrewaju1435 Год назад

      Good Evening sir.
      I'm working on a FPGA project. it involves a machine learning moel. i am thinking of burning a linux OS onto the board so i can run python on the linux. or is there anyway around it.
      Thank you

    • @ahmadalastal5303
      @ahmadalastal5303 Год назад

      @@usmanabdulsalamolanrewaju1435
      Just get a SoC FPGA board and you are ready to go

  • @JohnR436
    @JohnR436 Год назад +1

    Wow!! I love your videos so much, so comprehensive, scratches the pre-sleep learning itch quite well

  • @braveecologic2030
    @braveecologic2030 8 месяцев назад

    Thanks Dave. This is exactly what I was looking for to bring me back up to speed so that I can get myself onto a new learning curve. I like the simplicity in the way you can explain what you are talking about. It's how I can make this comment within the first two minutes. I appreciate the fact that you know what you are talking about.

  • @karmageddon9136
    @karmageddon9136 Год назад +1

    Great video, Dave. With all the videos about microcomputers and microcontrollers it seems as though the glue logic has been forgotten. 30 years ago I used the Xilinx FPGA's as modules to interface the PC bus to card specific functions.
    There are actually software libraries for FPGA's to emulate more complex hardware, microcontrollers being one group.
    Imagine downloading the microcontroller that you would like to use.
    This was 30 years ago. I'm just getting back into it now. Keep us posted with your great informative videos.

  • @smartwombat9116
    @smartwombat9116 21 день назад

    I was totally blown away by the Apollo GNC core computer in a single FPGA; that was so faithful a reproduction it even had exactly the same signal glitches as the real hardware.

  • @jlawrence71
    @jlawrence71 Год назад +4

    Very interesting. Thank you !! A great followup would be to compare FPGA's along with other items such as; SPLD, CPLD, ePROM, PLA, PAL, GAL. Cheers

  • @jonnyphenomenon
    @jonnyphenomenon Год назад +1

    Hey Dave! I have an old Digital Computer Corporation "Computer Lab" from 1968. it is a wooden frame wrapped around a sheet of glass with a bunch of holes in it where you have to insert jumper wires in appropriate locations in order to program it for various logical functions.
    Almost all of the "chips" on the board are quad input nand gates, and you have to use them in clever ways to make them behave like all of the other logic gates. I have a copy of the "computer lab workbook" that accompanies it, and in the book they explain the cost of discrete transistors at the time, and how a quad input nand gate was just under ten dollars (10$ in 1968!) and a single transistor that performed any of the other operations was around 15. It would appear that the process to create nand gates was relatively easy and cheap to do at the time, but any of the other logical operations was cost prohibitive...
    I have mine all wired up to demonstrate counting in binary, and I bring it off the shelf from time to time and show it to my students, especially when I start teaching them about IP addressing and bits and bytes.
    These things came with an obscene price tag in 1968 as well. My favorite part in the book is where it says that "some day there will be a computer in every city."
    Anyway, how's that laser tempest coming along? :D

  • @elikubler-ross5997
    @elikubler-ross5997 8 месяцев назад

    my favourite activity is watching Dave’s videos at 0.75 speed, you get all the usual eloquence and terseness combined with the jolly spirit of your uncle at the holiday banquette.

  • @SimSoma
    @SimSoma 6 месяцев назад

    Thank you very much for such a well structured and to-the-point introduction to the FPGAs!

  • @glitchy_weasel
    @glitchy_weasel Год назад

    About to complete my Digital Systems Lab course at college, we're learning about FPGA and Verilog. Glad you've made this video!

  • @sp3ktr3
    @sp3ktr3 Год назад +1

    On outdoor LED signage, it’s common to see Altera FPGAs for the main communication board as well as the distribution boards just before the LED driver boards.

  • @amb3cog
    @amb3cog Год назад

    I'm a big HiFi fan, and there's lots of new/newer gear using these. Like Chord from England makes really nice DAC's (digital to analog converter/external sound card) that use these for the whole process. And other companies, like Denafrips from China use them in their r2r DAC's (r2r uses resistor ladders to do the DAC) to basically control the resistors on the unit.
    And there's plenty of other examples too. Most are not cheap though. And I've only seen them used by smaller companies, like the two I mentioned.
    Either way. Thanks for the super video Dave. Very informative. You learn about these types of things, and you think that you know all about them. Until you watch a video like this, and realize there's a lot more to it. ✌️

  • @joelstyer5792
    @joelstyer5792 Год назад +1

    Great Explanation! I am glad to see someone give some promotion to FPGAs. I always believed they could be a great tool for hobbyists but until recently, the cost has been pretty steep. I've been using Alter (now Intel) devices since about 1990-ish, primarily for video controllers and occasionally some special interfacing functions. Last year, when FLGAs were all but unobtainable, I looked at doing a board with LVC logic to replace one PFGA. That was the point where I fully realized how much time FPGAs have saved me over the years and in the end they make for a far less expensive solution. I have designed a number of building blocks over the years and I still use some of the ones from 1990s unchanged hey just get compiled into new devices. Need to make a circuit change, just reprogram. It isn't uncommon for our first rev of a board to work and be production ready.
    For me, one of the things that defines needing an FPGA is when I need very precise timing, in my case video controllers are the main reason. While a few people have made general purpose processors produce video, it generally doesn't some close to meeting the stringent specs required or have good flexibility. FPGAs excel at this when a full blown GPU is overkill. They also work great when you have a lot of random logic that just needs to be condensed.
    From a hobbyist standpoint, I see two major issues. The learning curve can be very difficult to get up and running quickly. I believe with more people promoting FPGAs to hobbyists, that could change. To get something simple up and running on a device like a MAX10 is actually pretty simple once you learn the process. But navigating the initial settings for a project can be very intimidating. But it isn't much more difficult than using a new microcontroller for the first time, there just aren't as many public resources. Perhaps the most difficult part is the physical package itself. Most FLPGs these days are in Ball Grid Array packages, not exactly the easiest to work with. I'd like to see some small, affordable development boards become available for getting started. I've seen a few int he $50 range now but the ones I have seen have some quirks. Even if they required a separate programmer, I think a small starter board could be done for maybe $30 and still have considerable power.
    Thank you again for a great video!

  • @tommorgan8053
    @tommorgan8053 Год назад

    Looking through the comments it is great to see how many other fans of the MiSTer project commented on this video. This was my first introduction to and FPGA. With your love of classic computing I would think it would be very interesting for you to take a deeper dive into the project. I took a quick look and Tempest has not been added yet. It appears your surgery went well and as a father of a son on the Autistic spectrum I really appreciate your book. Great channel, thank you.

  • @Thrasherx85
    @Thrasherx85 Год назад +1

    Great video! Have you looked into MiSTer FPGA? It’s a classic computer, arcade and console project that uses the DE10-nano development board. Open source and always welcoming new talent.

  • @robertschoening7769
    @robertschoening7769 Год назад +1

    Nice overview, Dave. I'm a retired EE who has worked with microprocessors and microcontrollers but never FPGAs. Maybe I'll try one of your links below. Thank you!

  • @GantryG
    @GantryG Год назад +1

    Cool summary. I appreciate your channel’s info density 👍

  • @njprescott7640
    @njprescott7640 9 месяцев назад

    Extremely succinct introduction to FPGAs! Thank you Dave.

  • @MikaelLevoniemi
    @MikaelLevoniemi Год назад +1

    There have been some fascinating FPGA projects like the one in which an digital signal processing FPGA was developed iteratively with genetic algorithm and the resulting functional FPGA had internal circuitry that was not connected to any input or output, but if that extra circuitry was omitted the FPGA no longer functioned.

  • @inzyster
    @inzyster Год назад +1

    One of the classes I’ve had at the university was programming a Xilinx FPGA using things like 7 segmented display or a model elevator to make something more tangible happen.

  • @rafaelgcpp
    @rafaelgcpp Год назад

    Thank you Dave!! A friend of mine just asked me what an FPGA is, and your explanation is much better than the one I gave him!

  • @Fetterfly
    @Fetterfly 8 месяцев назад

    As a newer hobbyist exploring FPGAs this was by far my favourite intro video. Nice work, Dave! I’m keenly interested in running transformer models on FPGAs. Any suggestions for a robust intro kit that might get me there?

  • @v12alpine
    @v12alpine Год назад

    Brings back memories... I remember tinkering with these in college in the late 90's. Never touched one again but it's cool knowing they are still a thing.

  • @m.rei85
    @m.rei85 Год назад

    Great explanation and introduction to FPGAs.
    Even though I only do some hobby programming, your videos are more understandable than most of my computer science classes back in university.

  • @wacpas
    @wacpas Год назад

    Flashback to Uni, where we've implemented a MIPS processor on a Xilinx board and wrote some assembly for it. Best class that semester!

  • @PicaDelphon
    @PicaDelphon Год назад

    Dave you are Giving me 90's flash backs to the 90's hyper system I use to build, 68010-10MHz that used 8 FPGA chip to make a special CPU Core that ran at 50 MHz..
    I think I still have some old Boards laying around, maybe you would like to study then 4 cards, only thing I Don't have is the Back plane for the cards to plug into...

  • @mrwonk
    @mrwonk 5 месяцев назад

    Very cool. Thanks for the video. I'd always wondered why people used the more complicated and expensive FPGA's instead of just grabbing a microcontroller :)

  • @iSlammedMyKindle
    @iSlammedMyKindle 11 месяцев назад

    I like hearing about this - I work with JS on the daily, so opposite side of the spectrum, so hearing about it put in this fashion makes a lot of sense for how it can fundamentally help with re-creating entire processors if you really wanted to

  • @gblargg
    @gblargg Год назад +1

    7:04 I think that the only fundamental reason for an FPGA is speed. A microcontroller can do all the same things for cheaper, given enough I/O lines and lower speed requirements. At the extreme, it could simply simulate an FPGA and thus have the same functionality.

  • @kevincozens6837
    @kevincozens6837 Год назад

    Nice summary of FPGAs. Having Open Source tools to do the development work for these devices is fantastic.

  • @benjammin1001
    @benjammin1001 Год назад +1

    FPGA's are fun. I've been designing on Xilinx FPGAs since 2005 and the XIlinx Zynq Series since 2013. Lots-o-fun. :D

  • @michaelpezzulo4413
    @michaelpezzulo4413 Год назад

    Love the explanation of logic gates, wish I had so good of a lecture about them back in '83 when I started as a technician for Radio Shack.

  • @richardgeddes630
    @richardgeddes630 Год назад +3

    Worked with Xilinx FPGA's and Viewlogic dev tools for a signal processing application back in the day. The simulators particularly made production-ready prototypes a reality. Excellent.

  • @rv6amark
    @rv6amark Год назад

    About 10 years ago, there was a website that claimed you could configure an FPGA to be a rudimentary, but fast, oscilloscope. As I recall, they sold everything you needed to do it as a kit. I never pursued the idea even though I loved new electronics like that. Sadly, lost the url for the site, but it appears that RUclips has some videos suggesting similar things.

  • @geehaf
    @geehaf Год назад +1

    Great overview and content around FPGAs. They're also used in retro game & computer implementations, e.g. Mega65 & MiSTer and the Commander X16 is using one for its graphics chip (VERA). On the logic gate descriptions, I think I want to be an OR gate, i.e. high most of the time. hahaha. Thanks Dave.

  • @scrimpyd
    @scrimpyd Год назад

    Fantastic video. Answered so many questions I had about FPGAs. Your video are very good.

  • @pauldavis2108
    @pauldavis2108 Год назад +1

    I compare FPGAs as the compliment of a microprocessor. Processors are really good at doing random thing sequentially while FPGAs do a really good job of doing the same task simultaniously. As an example FPGAs are inefficient at doing one time tasks like initialization but great at repetative tasks like applying a transform to an image. Processors on the other hand can breeze through one time tasks but can quickly bog down on repetative tasks where you need to do the same operations over and over again.

  • @btaranto
    @btaranto Год назад

    Good to see you, your videos and your f*******ng shop! Tks!
    Nice t-shirt! Was in Hawaii?

  • @BusDriverRFI
    @BusDriverRFI Год назад +1

    I enjoyed programming FPGAs. I developed many single chip solutions for the telecom industry.

  • @jwc4520
    @jwc4520 Год назад

    Ha took me back to my first electronics projects , Fairchild gates flipflops , ittle round pills with eight legs , replaced a hand full of parts . You could build a digital clock the size of a shoe box but still needed driver cir units to control the nixie tube output. Gave off enough heat to toast bread. Take care.

  • @alexkindl861
    @alexkindl861 Год назад

    Excellent summary of the device. I was wondering if there was a follow up planned, or a recommendation, for how to set up a development environment. IDEs are always a PITA. Thanks for your sharing your experience!

  • @wolfcrossing5992
    @wolfcrossing5992 Год назад

    Thanks Dave...You've given an old man another avenue to explore. Excellent!!!

  • @fuzzy1dk
    @fuzzy1dk Год назад +1

    one reason FPGAs might become more common is that the extremely expensive NRE on modern processes can be spread over many many more chips, so they can take advantage of newer, faster, cheaper, processes

  • @lilhaxxor
    @lilhaxxor 10 месяцев назад

    Wow... 😮
    Are you my new hero ? This has to be the best video on the topic. Your shirt is epic. And you have a book on autism ? ❤

  • @whosonedphone
    @whosonedphone Год назад

    Wow. I really appreciate you gathering organizing and sharing all of this information. You are my hero!

  • @edwardfanboy
    @edwardfanboy Год назад +3

    I'm in the process of designing a microprocessor to go onto an FPGA. The processor architecture isn't directly comparable, but I think the performance would be roughly the same as an Intel 486SX.

  • @IMBlakeley
    @IMBlakeley Год назад

    My last but one job the initial development was done with FPGA but since we were shipping many many tens of thousands of boards the final design used ASIC, not only cheaper but also faster. The mantra with ASIC was no respins, ha if only. My last job a much smaller manufacturer where the number of units was maybe not more than 10,000 in total the final boards went out with the FPGA.

  • @GeeTrieste
    @GeeTrieste Год назад

    I was introduced to PLGAs (Programmable Logic Gate Arrays) a long time ago and found the concept intriguing, but I never quite got into them the same way I got into CPU controller circuits.
    The way I understood them was there was a bed of zillions of interconnected gates that could be selectively burnt so that the remaining active and interconnected gates achieved their final function; you would wind up with a chip with many inputs and many outputs that would behave according to the customized functionality compiling of the circuit.
    In a sense, from what I understood, it was like a hardware encoding of an excel spreadsheet, basically doing its work and calculations in one pass.
    However, from this video it seems like it can do iterative calculations, multi-level decision making, intermediate number/value storage and basically everything that programmed cpu could do. -- That I did not understand it could do.
    So there may be some fundamental I am not familiar about PGAs. Maybe because the technology has advanced from my first introduction to PGAs (Programmable Gate Arrays) to FPGAs (Field-programmable gate array), which may be an enhanced version of the original.

  • @carstenberggreen7509
    @carstenberggreen7509 Год назад

    Cool, as a C# software developer (starting in BASIC on C64 back then) - I finally got a better understanding of what FPGA's are programmed. Excellent and clear explanation as always Dave.

  • @zeroumus
    @zeroumus Год назад

    I have been really considering getting into FPGA's . As some of the engineers have noted below, its about time this makes its way into the hobby space.

    • @zeroumus
      @zeroumus Год назад

      Dave, do you still stand by the Digilent Basys 3 you suggested?

  • @seedmole
    @seedmole Год назад

    I first heard about FPGA chips maybe a year or two ago, in the context of audio synthesizers. More recently, got my hands on the Novation Peak, which uses an FPGA for its oscillators, among other things. I've used my share of hardware DSP chip based synthesizers and this thing has much less aliasing than what I'm used to -- one big resulting advantage is that it can accurately reproduce overtones much further into the harmonic series.

  • @claus7555
    @claus7555 Год назад

    I'm totally new to that, but I've found a couple of resources to spend some of my time with the topic. Thanks for the great introduction!

    • @claus7555
      @claus7555 Год назад

      Remember, any "Contact me on Telegram" comments are scams. --> Thanks for clarifying!

  • @dr_jaymz
    @dr_jaymz Год назад

    Great video if I could hear it for my kids swinging from the curtains. Historically people used to use NAND gates because they are simple to make using early transistor logic - like two transistors and a resistor. Then you can make pretty much any combination of logic out of those, even state machines - and state machines are really the ancestors of the microprocessor. You can with a paper and pen minimise the Boolean logic and get an answer expressed as nand logic. Early on people twigged that if you have a huge array of these identical blocks and you could somehow wire the grid up by connecting or disconnecting the blocks to a large grid you could realise almost any combinatorial logic. Some are fuses which are blown at first program others are programable as mentioned in this video. I think nearly all load the "program" from serial flash on reset. They were less efficient than application specific designs because you might need to arrange your blocks in a convoluted way to achieve something that can be done in a proper design with a handful of transistors, and with NMOS all those gates were burning away power - even the unused ones, but today they contain all sorts of wonderful blocks and you can control the power usage precisely. You can even specify an FPGA derivative with a built in 8051 or ARM block so there is no compromise (except cost). The FPGA doesn't need an OS and complex outputs can respond immediately to inputs without having a "thinking" state machine in the middle. For most of us though, general purpose controllers are so cheap and so fast that FPGA's aren't necessary, you can get microcontrollers for 1 cent, and you can connect it directly to a 3v coin cell and off you go. But FPGA's are found in a lot of consumer equipment typically where signal processing is required in low power where a general purpose CPU would make a meal of it, tinkerers like to use them to realise replicas of long discontinued retro parts including entire processors complete with the bugs! They are however, in my opinion very hard to get started with and I reckon most of them tinkerers will already work with FPGA's as a day job. The minimum you'd need as an evaluation board, sdk and about a month free from interruptions and screaming kids. But, if you have an idea and you can come up with the design blocks you can take it to someone who would find it child's play.

  • @Nets-nutsBr
    @Nets-nutsBr Год назад

    Dave I really appreciate this video. Very clear and informative. Thank You

  • @PeranMe
    @PeranMe Год назад

    Thanks Dave, as always great information! Your work is much appreciated!

  • @diggoran
    @diggoran Год назад

    The parallelism is what made my college capstone project possible, because I needed to do Fast Fourier Transforms in real time

  • @MrNobodysSanctuary
    @MrNobodysSanctuary Год назад +1

    Learning Boolean Algebra for logic gates was fun at first, but then became a bit mind numbing, thanks for the info! 🤖

  • @chimeziec4955
    @chimeziec4955 Месяц назад

    Great video; But i have slight issue with your point at 9.15. FPGA chip themselves are supposed to be volatile. The development boards could come with configuration memories; but the chips themselves are bare. That's what i have always thought though. I might be wrong.

  • @darkman19693
    @darkman19693 Год назад +4

    I would love to get into FPGAs however finding both information on how to develop these is very scarce especially on youtube. A lot seem to make 1 or 2 and promis more but are never heard from again. Would be great if someone made a complete youtube series on FPGA as a whole subject.

    • @colemanroberts1102
      @colemanroberts1102 Год назад +1

      The NAND to Tetris course uses simulators rather than fpgas, but it teaches enough that transitioning to an FPGA shouldn't be too hard

    • @0LoneTech
      @0LoneTech Год назад

      Jeri Ellsworth posted some over a decade ago IIRC. There are a bunch of brands and toolchains, Apio might be of use.

  • @VincentDBlair
    @VincentDBlair 11 месяцев назад

    New subscriber here. Thank you Dave for the work you do both technically and otherwise.

  • @Kyzyl_Tuva
    @Kyzyl_Tuva Год назад

    Love your videos Dave! Thank you for sharing with us.

  • @Dal-Rob
    @Dal-Rob Год назад

    FPGA found in the "Ain't Miner" Cripto Curency engines, very costly to run banks of them in one module. and as soon as 6 to 7 months go by, upgrading to newer faster engines is a must to meet bank.
    O fun, you can get those cheap now... desolder the many, many FPGA chips off the boards, for DIY, or whatever. Just a mention on saving a lot of money for a lot of working used FPGA chips.

  • @michaelbradley7704
    @michaelbradley7704 Год назад

    I learnt everything about FPGA by of course gaming, I learnt about PC's by gaming. The best most rewarding FPGA gaming system the "Mister" is based around the DE10-Nano Development Kit, it doesn't just play games you can program it to emulate early PC systems and run early PC OS's like windows 95 etc.

  • @Helal_Tech
    @Helal_Tech 10 месяцев назад

    15min. video took me more than 30min. to understand well. Thanks a lot ❤

  • @parevad
    @parevad Год назад

    In the retro Amiga community, fpga’s is driving the development of fantasic new expantions for amazing graphics, sound, networking and cpu accelrators at a resonal price. They are great

  • @fensoxx
    @fensoxx Год назад +1

    FPGA + ChatGPT might have some interesting applications

  • @Lumpyspaceranger
    @Lumpyspaceranger 11 месяцев назад

    Must be the best video on an introduction to FPGAs.

  • @The_Temple
    @The_Temple Год назад

    Have a MiSTer compatible fpga rig for simulating a huge variety of arcade & console games, plus retro/vintage computers
    Cool having so many virtual machines in a small, easily adaptable box

  • @dang48
    @dang48 Год назад

    Pretty wild and we actually covered FPGAs in a recent course.

  • @richsadowsky8580
    @richsadowsky8580 Год назад

    Great video Dave. I have a plans to dive into these. I've got my dozens of pis and scores of mcus, but I want one of those starter kits. Have some top rated books (actual paper books--I'm old and set in my preferred way to learn new tech). Very excited. May have deep relevance in my job (current or future).

  • @godblessCL
    @godblessCL 7 месяцев назад

    FPGA are also used in HFT, High Frequency Trading.

  • @engjds
    @engjds Год назад

    Sounds easy, but its far from when you first start, my tip is make sure ALL conditions are covered in if or case statements, dont leave anything ambiguous or the compiler messes it up without telling you there is an error (sometimes as they are temperamental).