How To Create Difficult FPGA Designs with CPU, MCU, PCIE, ... ( with Adam Taylor )

Поділитися
Вставка
  • Опубліковано 7 лис 2024

КОМЕНТАРІ • 120

  • @edwingrigorian4585
    @edwingrigorian4585 3 роки тому +9

    This was a super interesting video. This popped up randomly on my UA-cam recommended videos list and I got glued to the TV watching the entire 1 hour 50 minutes of it. I am a long time hardware FPGA developer writing SystemVerilog code daily at work but this video showed features I had not seen demonstrated before and it was done so expertly by Adam Taylor. He makes it all look very easy and often states ‘it’s fairly simple’ but wow! What an expert and a teacher. I will be all over his blog from now on. Thank you both for making this video.

    • @RobertFeranec
      @RobertFeranec  3 роки тому +1

      Edwin, thank you very much for watching. I am very happy you liked the video.

  • @notpipa_
    @notpipa_ 3 роки тому +5

    I'm learning FPGA for my final thesis and to hear Adam Taylor speak and teach this stuff is excellent. Thank you very much for making this video.

    • @EmbddedJiuSage
      @EmbddedJiuSage 9 місяців тому

      How did your thesis go?

    • @notpipa_
      @notpipa_ 9 місяців тому

      @@EmbddedJiuSage went well, was able to finish it and aprove it, even though im not very happy with the results obtained.

    • @EmbddedJiuSage
      @EmbddedJiuSage 9 місяців тому

      @@notpipa_ congratulations! is there a way i can approach you? I am doing the same, thesis with fpga

  • @hjups
    @hjups 3 роки тому +6

    Great video! Now I have something I can send software engineers to that keep asking the same higher level questions about FPGAs.
    For PCIe, it doesn't only have to be a host computer. Right now I have a Zynq Ultrascale+ on my desk connected to an i.MX8 board via PCIe (M.2 connector to the PCIe edge connector on the dev board). There are plenty of edge computing applications where such a configuration makes sense (the i.MX8 is higher performance and lower power than the ARM part of the Zynq U+, however, you would probably use a Kintex in an actual product where the Zynq just helps with development).
    For drivers, the OS does a lot of the work for you. Once the OS boots, the PCIe BARs are assigned memory regions in the host's physical memory space. So you would interface with the PCIe end point / BARs via physical memory R/W on the host. On a dev system like the i.MX8 that I have where /dev/mem is accessible, a driver isn't needed to get things working - I was able to use both C code and Python code to directly access the BAR memory space from user space. For an actual product though, you don't want to have /dev/mem accessible and you need a driver. In that case, the easiest solution is to copy one that already exists (xilinx has one for their XDMA system, but that's not necessary in most cases). Complexity will depend on how you want to break down your security and features, however, the simplest solution is to offload a lot of the work to user space. In such a situation, your linux driver has boilerplate linux PCI driver code (copied from guides all of the place which let Linux associate the PCIe endpoint with the kernel model / driver), and then you implement the mmap function call on the module. The mmap function call is just a secure indirection of mmap on /dev/mem, so it provides a way for a user code to mmap the device (e.g. /dev/myPCIe) and it gets associated with the physical BAR address mapped by the OS.
    This was one of those things that I always thought was very complicated to do, but it turns out to be very simple... I actually think that using PCIe between a linux host and an FPGA is simpler than trying to do I2C or SPI. I would say it took about 3 days of head scratching to produce something that could have been done in 10 minutes if I knew what I was doing from the start.

  • @yaghiyahbrenner8902
    @yaghiyahbrenner8902 3 роки тому +17

    this has got to be the best FPGA video ive seen, straight to the point no nonse video. we want more :)

  • @mohamedtalha9790
    @mohamedtalha9790 3 роки тому +1

    you are a very nice person who loves sharing science and benefiting others

  • @ammarkurd7905
    @ammarkurd7905 3 роки тому +3

    We need more content like this! Please make a whole series on this stuff Robert

  • @robertbox5399
    @robertbox5399 3 роки тому +1

    An astounding video. Just the right level for engineers that haven't played with but would like to play with FPGAs. I've been stuck with micros only due to the price of what FPGA 'toys' are regarded as in automotive! 'Only' $100 is a different world.

  • @bobby9568
    @bobby9568 3 роки тому +1

    Love these type of videos where you have a guest!

  • @Chitranshleo
    @Chitranshleo 3 роки тому +8

    Brilliant Robert..
    I was eagerly waiting for this moment..
    Thank you.

  • @BiqBanq
    @BiqBanq 3 роки тому +3

    I can not explain how I am happy to see this video:)

  • @jer_h
    @jer_h 3 роки тому +128

    You forgot the most difficult part: finding FPGAs in stock anywhere nowadays!

    • @RobertFeranec
      @RobertFeranec  3 роки тому +11

      Yes, that is a very big topic these days

    • @buffteethr
      @buffteethr 3 роки тому +6

      Exactly. I am being quoted 52 weeks lead times.

    • @vincei4252
      @vincei4252 3 роки тому +1

      Yeah, I have 4x 14$ Intel parts scheduled for shipment in 2023. I stupidly started a project before checking availability. I was able to score some other parts from Mouser 2 weeks ago and will redesign my board even though I have the PCB's for the other unavailable part.

    • @kianemami9090
      @kianemami9090 3 роки тому +1

      @@vincei4252 pure nightmare mate

    • @vincei4252
      @vincei4252 3 роки тому +2

      @@kianemami9090 Indeed. I have a couple Kickstarter projects I signed up to that are in limbo because of this. Thankfully I got a notification that an SDR I recently bought got shipped this week despite Intel FPGA's being almost completely AWOL.

  • @gregfeneis609
    @gregfeneis609 3 роки тому +2

    Very interesting, Robert. Thanks for creating and sharing this.

  • @AdiuvoEngineeringTraining
    @AdiuvoEngineeringTraining 3 роки тому +4

    Robert, Thanks for the chat I enjoyed it a lot.

    • @RobertFeranec
      @RobertFeranec  3 роки тому +1

      Thank you very much Adam. It was very nice talking to you and I learned a lot!

    • @vincei4252
      @vincei4252 3 роки тому

      Thanks Adam. This is excellent information. Due to the ongoing chip shortage I'm considering using some obsolete recently acquired Virtex 5 Xilinx parts that are on a PCIe card for a project. Could you point me to any resources that discuss using Virtex parts and their use with PCIe? No foul if you don't know. Cheers!

  • @mcconkeyb
    @mcconkeyb 3 роки тому +18

    Due to cost, I'd recommend that you use an FPGA for the most cost effective solutions. These solutions are nearly always based on parallel processing. A microprocessor implemented on an FPGA will cost you 100's of times more than a standard commercial device. Video processing is one of the main uses of FPGA's, but not standard video processing, as if it can be done with a GPU, then you should use the GPU, due to costs. Big FPGA's cost hundreds to thousands of dollars for each chip!

    • @nameredacted1242
      @nameredacted1242 3 роки тому

      None of this is true anymore in SoC era... Plenty FPGAs are available around 20 bucks that can do "reasonable" design complexity nowadays... And you can have a REAL MCU core in an FPGA, or the other way around these days!!!

    • @mcconkeyb
      @mcconkeyb 3 роки тому +3

      @@nameredacted1242 Please provide some links. I'd love to find a MCU core that was less than $100!

    • @nameredacted1242
      @nameredacted1242 3 роки тому +1

      @@mcconkeyb CrapTube will delete any of my posts with links. DigiKey is your friend.

    • @nameredacted1242
      @nameredacted1242 3 роки тому +1

      But $10 FPGAs from Lattice also exist.
      AGREE, stupid to put an MCU soft core inside FPGA if these days hard cores and SoC cores and separate ICs are available.

  • @鄭峻杰-i2k
    @鄭峻杰-i2k 3 роки тому +1

    Robert, I appreciate it. You know... that's what I am looking for.😀

  • @jacobseal
    @jacobseal 3 роки тому

    Thanks guys. Great video. I am really trying to get my FPGA skills to the professional level and seeing how a real pro works in Vivado is super helpful. Following both of you guys now.

  • @MbekAla
    @MbekAla Рік тому

    Nice video, well done :)
    This is the first time I ran to your channel, it is really impressive and you have some very advanced topics

  • @abhinavamazon8716
    @abhinavamazon8716 Рік тому

    Excellent video... It is explained in such a nice manner... Thanks to Adam too

  • @seaweed2963
    @seaweed2963 3 роки тому +1

    Amazing video mate, there aren't a lot of good tutorial videos on FPGAs. Kudos to Adam too. Thanks:)

  • @666aron
    @666aron 3 роки тому +3

    Thanks for this amazing video. It's value is priceless, at least for me.
    I got to a point where the most difficult part is not the design process, but the process of starting Vivado and/or keeping it crash free. I wanted to learn how to handle Ethernet related problems on FPGA, so I took a Spartan 7 board from UNI and started designing an RMII based TCP/IP echo server... until Vivado got fed up, and started not working.
    I'm really thinking of leaving Xilinx for Lattice once and for all. Maybe the FPGAs are smaller, and maybe the IDE is a bit last century looking, but I did not have any disheartening bugs with them so far :)).

    • @BrunoLAlbrecht
      @BrunoLAlbrecht 3 роки тому

      Vivado is indeed a horrible tool. I always have to spend a lot of time just to make the simplest thing work. Also using any version control system is a nightmare, since just opening and closing the project already changes files...not to mention weird pc specific paths that it decides to save...

    • @laserdan
      @laserdan 3 роки тому

      The key is to keep a TCL script that recreates your project in version control (see AR# 56421). Vivado projects seem to get slower and more cluttered over time for some reason, so I typically delete the project and recreate it fresh from the TCL script whenever a significant chunk has been added and put into version control. Vivado also seems to run better on linux than in windows.

    • @BrunoLAlbrecht
      @BrunoLAlbrecht 3 роки тому

      @@laserdan I think this only proves my point... :-)

  • @tporntporn1445
    @tporntporn1445 3 роки тому +3

    very useful video even for an experienced professional like me

  • @vincei4252
    @vincei4252 3 роки тому +1

    This is excellent, Robert. I will be sure to watch the entire thing once I finish work today. Thanks as always!

  • @xtasy2k7
    @xtasy2k7 3 роки тому

    Awesome! This is wonderfully relevant for me and my current project at work. Thanks Rob and Adam.

  • @frankgoenninger6958
    @frankgoenninger6958 3 роки тому

    Hi Robert, another cool YT video with a real subject matter expert. Again, although being into FPGAs for some time now, I admire the floor planning Adam did with the second application he showed. I do think that floor planning and timing issues would be very interesting follow up videos. Thanks again for your efforts! All the best - Frank

  • @deathmaster4035
    @deathmaster4035 2 роки тому

    This is unbelievable. Thanks a lot for uploading this.

  • @wawerunjeeri
    @wawerunjeeri 3 роки тому +1

    Thank you Engineer Feranec. This is what I have been looking for. Once more, thank you.

  • @FPGASystems
    @FPGASystems 3 роки тому

    fantastic collab video!!!! thanks guys

  • @morph7299
    @morph7299 2 роки тому +1

    interesting video pls make more on FPGAs Thanks !

  • @miore580
    @miore580 3 роки тому +4

    2 hours of pro content, here we go! ;)

  • @musenzerob2181
    @musenzerob2181 3 роки тому +2

    Am grateful thank you Robert for sharing

  • @Dzxslayer
    @Dzxslayer 3 роки тому +1

    I really appreciate your content Robert. Thank you

  • @nameredacted1242
    @nameredacted1242 3 роки тому +1

    Wishbone bus is popular too.

  • @cmorganwpi
    @cmorganwpi 3 роки тому +1

    Great video!

  • @M7hero
    @M7hero 3 роки тому +1

    Great video I appreciate the work
    I have a little note though, you interrupted the guest sometimes which he couldn't finish some points, otherwise it was great

  • @Cutycats9
    @Cutycats9 3 роки тому +2

    i love fpga i hope you make more keep up

  • @carlosornelas90
    @carlosornelas90 2 роки тому +1

    FPGA's are expensive and hard to learn, but if you are studying electrical engineering or similar, I bet you will use it for plenty of subjects, from switching circuits, to vision and AI systems.

  • @FilipMilerX
    @FilipMilerX 3 роки тому +2

    Similar video showing Intel environment would be great.

  • @Jkauppa
    @Jkauppa 3 роки тому +2

    worst thing is when you talk to a interface using a middle-ware interface, bare bones is the best, very low level, no trash in the way

    • @Jkauppa
      @Jkauppa 3 роки тому

      gpio pins, simple

    • @Jkauppa
      @Jkauppa 3 роки тому

      try arrow sockit instead, its not so demanding

    • @Jkauppa
      @Jkauppa 3 роки тому

      its intel/altera cyclone v, not xilinx

    • @Jkauppa
      @Jkauppa 3 роки тому

      quality: unmanageable

    • @Jkauppa
      @Jkauppa 3 роки тому

      its just memory transfers, in the end

  • @codedesigns9284
    @codedesigns9284 2 роки тому

    Great call Robert and Adam! Very informative! IP’s definately simplify creating circuits, versus manually creating them with discreet logic. Question, if one were to use an IP and there is functionality not being used, will those unused functions still take up logic space on the FPGA? I’m still old school and don’t waste transistors! LOL

  • @jsv4332
    @jsv4332 3 роки тому

    Which one would u prefer, c or systemverilog for fpga?

  • @Ali-wf9ef
    @Ali-wf9ef 3 роки тому

    I would love to get my hands on one of those Alveo cards and experience writing an application that employs XRT, DFX and so on. The things you could do with FPGAs are countless

  • @alexloktionoff6833
    @alexloktionoff6833 Рік тому

    I'm interested in writing c++ modules that can be integrated via AXI interfaces into a big FPGA design. Can you make a video about it?

  • @MegaVIKRANTSHARMA
    @MegaVIKRANTSHARMA 3 роки тому +1

    Great Video Robert!!!!

  • @mohammadhoseingholamrezaei2714
    @mohammadhoseingholamrezaei2714 3 роки тому

    It is excellent. It would be wonderful if you could invite an ASIC engineer as well.

  • @tombouie
    @tombouie 3 роки тому

    Thk you oh so much but my mind melted 5 minutes into the video.

  • @bartek153
    @bartek153 3 роки тому

    top top drawer Robert! Cheers for that

  • @kingraine1
    @kingraine1 3 роки тому

    This video was amazing, Robert, TNX

  • @ahmedamraniakdi2143
    @ahmedamraniakdi2143 3 роки тому +1

    thank you

  • @RichardKCollins
    @RichardKCollins Рік тому +1

    I am sure this is useful, but it did not answer my question, which I think is the same as yours. How you do find and use these to connect things into larger projects? Someone said "hard to find them now" and that happens for every fad on the Internet. It never seems to get simpler, cheaper, easier. So all I can do is say thanks for your efforts. I think I am going to concentrate on analog MUX, sensor arrays, signals, signal prep, ADCs, algorithms and purposes. With a budget and purpose, choosing is easier. Pardon me, but "What a mess! Too much stuff for everyone to have to memorize all these odd shaped pieces and their software."

    • @RobertFeranec
      @RobertFeranec  Рік тому +1

      Thank you very much @richardcollins5549 PS: This Phil's video may also help: ua-cam.com/video/B-CbDfrfJRk/v-deo.html

    • @RichardKCollins
      @RichardKCollins Рік тому

      ​@@RobertFeranec Thanks, I watched that too. I hope it gets to where I can just order something by function and have it sent to me for a fixed price. "An ESP32 with DMA controllers for each camera, each 16 bit high speed RF ADC. 5 GHz wireless or USB 3.2 or 10 Gbps ethernet. SSD" It is all just chips wired together in pretty standard ways. A computer program should be able to check the tables of requirements, place things on the board, send it, make it, mail it.

  • @giuseppecrincoli7173
    @giuseppecrincoli7173 3 роки тому

    Hi Robert, Next time you do a "basic topics are available everywhere", it might be helpful to point to one or two good ones in the description.
    :)

  • @thecuc007
    @thecuc007 3 роки тому +1

    It is great video! Really enjoyed it because i work on a similar-esh roject you shown.

  • @sharifsharifzadeh
    @sharifsharifzadeh 3 роки тому

    Thanks, Robert
    I can understand what you feeling:
    It is/was the only solution for some of my ideas :D

  • @LimbaZero
    @LimbaZero 3 роки тому

    I need to check does new Vivado support my ZedBoards. These were with Zynq 7020 ES2 chips.

  • @FPGA_Arabic
    @FPGA_Arabic Рік тому

    VERY VERY USEFUL VIDEO ❤️❤️❤️❤️❤️

  • @jimjjewett
    @jimjjewett 3 роки тому

    Next time you do a "basic topics are available everywhere", it might be helpful to point to one or two good ones in the description.

  • @tombouie
    @tombouie 3 роки тому

    A vague hobbyist question (oof-topic):
    ?When is it better NOT to use a custom PCB & just solder the components together via wires/perfboard?
    ?Hows-abouts a video on the subject?

  • @johnbell1810
    @johnbell1810 3 роки тому

    Question, is it ever to late to start learning fgpa programming as a hobby?

  • @ivantemerov8271
    @ivantemerov8271 3 роки тому

    when be available the normal menu like a RetroArch??? The MiSTer is beautiful but the menu manipulations is terrible....

  • @tipr8739
    @tipr8739 3 роки тому

    This is great. All i see is turn on the led from the button or implement this out of the box ethernet to RF demo.

  • @cromatico524
    @cromatico524 3 роки тому

    Awesome talk! Thanks!!!! :D

  • @aliuzel4211
    @aliuzel4211 3 роки тому

    Tiny coin sized, 2,5cmx2,3cm Efinix test board will be ready in November-December.
    Very (very) original Artix Ultrascale+ board will be ready in early 2023.

  • @stylesoftware
    @stylesoftware 3 роки тому

    Awesome!

  • @magnuswootton6181
    @magnuswootton6181 3 роки тому

    converting c code directly into fpga wires would be the most complex thing ever, youd fill it up easily in about 400 lines, depends on the iterations. (would need to replicate the code for every iteration.)

    • @nameredacted1242
      @nameredacted1242 3 роки тому +1

      Drop a softcore CPU into the FPGA and forget about your problem!!!

  • @xPakrikx
    @xPakrikx 3 роки тому +1

    Pekne video :)

  • @itsevilbert
    @itsevilbert 3 роки тому

    I'd pick the cheapest board that you can afford, if you are coming from an electronics background and will wire up your own circuits to the board. A board where you can screw up badly and kill the FPGA chip, and replace the board, without kicking yourself too hard, for what is a learning experience (no way am I killing the next board, or the same board with a new FPGA, that exact same way ever again).

  • @RixtronixLAB
    @RixtronixLAB 3 роки тому

    Nice video, thanks :)

  • @creativeideaseee
    @creativeideaseee 2 роки тому

    Nice bro

  • @penelopemoore9715
    @penelopemoore9715 3 роки тому +1

    Holy fk thats what i need thnx

  • @edhalferty
    @edhalferty 3 роки тому

    Man I miss messing around with Verilog stuff. But I don't have time to wait 20 minutes to compile a one-line change...

  • @egg5474
    @egg5474 3 роки тому +1

    Comment for the algorithm

  • @SteelBlueVision
    @SteelBlueVision 3 роки тому +1

    It's all fun and games until you discover that the test board costs $3k !

  • @nomadic-insomniac
    @nomadic-insomniac 3 роки тому +1

    Anyone else notice that he had 6 different versions of vivado installed :p .

    • @AdiuvoEngineeringTraining
      @AdiuvoEngineeringTraining 3 роки тому +2

      Plus all the ones I have on external hard disks.

    • @itsevilbert
      @itsevilbert 3 роки тому

      It is going to happen, unless you want to update all your existing gateware every time a new major version of the tools is released. And sometimes older chips are dropped from support in the latest revision, so if you need to support older hardware that you have sold in a solution, you will need multiple versions. It is the best use of YOUR time.

    • @danielschick435
      @danielschick435 3 роки тому +1

      I once visited a company where a lot of employees have multiple PCs that are running XP or even Windows 98 just to support their old products

  • @paugasolina5048
    @paugasolina5048 3 роки тому

    Luv ya

  • @ladronsiman1471
    @ladronsiman1471 3 роки тому

    YOU NEVER UNDERSTOOD ..????? JAJAJAJ

  • @TheAstroVideos
    @TheAstroVideos 3 роки тому

    Educational value of the video is Zero because of poor English. Period. To the author: Did you watch the video by yourself?