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

preview_player
Показать описание
A video about how to use processor, microcontroller or interfaces such PCIE on FPGA. Thank you very much Adam.

Links:

Other links:

Chapters:
00:00 What this video is about
02:20 How are the complex FPGA designs created and how it works
21:47 Creating PCIE FPGA project
47:57 Creating software for MicroBlaze MCU
55:34 Practical FPGA example with ZYNQ and image processing
1:11:38 Software example for ZYNQ
1:21:22 How FPGA logic analyzer ( ila ) works
1:31:30 Running Linux on FPGA
1:40:36 How to write drivers and application to use FPGA on PC

------------------------------------------------------
Would you like to support me? It's simple:

It is much appreciated. Thank you,
- Robert
Рекомендации по теме
Комментарии
Автор

This was a super interesting video. This popped up randomly on my YouTube 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.

edwingrigorian
Автор

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

yaghiyahbrenner
Автор

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.

notpipa_
Автор

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.

hjups
Автор

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

ammarkurd
Автор

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

mohamedtalha
Автор

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

Thank you.

Chitranshleo
Автор

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

AdiuvoEngineeringTraining
Автор

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

BiqBanq
Автор

Love these type of videos where you have a guest!

bobby
Автор

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.

robertbox
Автор

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

鄭峻杰-ik
Автор

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

seaweed
Автор

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

gregfeneis
Автор

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

MbekAla
Автор

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

jer_h
Автор

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

abhinavamazon
Автор

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.

jacobseal
Автор

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

vincei
Автор

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

wawerunjeeri