I wish this series was out back when I was doing an internship to design a custom Zynq dev board in 2021. It is incredibly well explained and shows a very well balanced, step-by-step workflow to design and test a Zynq board. Compared to reading incredibly long datasheets and getting lost in all the Xilinx UGs, this is a godsend.
Nice! Impressed that the Zync can handle the nearly 1Gbps throughput to/from the PHY, and the suite of test programs that Xilinx has provided is pretty nice. Seems like they embedded iperf in a standalone program. At least in Linux, the Realtek PHY "quirks" will have already been worked-around in the driver :D
Keep in mind that while the throughput is 1Gbps, the clock speed at which the FPGA interface to the PHY (RGMII) runs at 125MHz. The Zynq should be able to handle faster clock speeds at its IO :)
it would be REALLY interesting to see how to design a board with a 10GB ETH interface. (and to give more challenge, using the new IX Industrial connector !)
not gonna lie, I have the impression that you are really good, but I am still impressed that it makes 900mbit/s+ (probably it wasnt that hard for you, but still)
Thanks! I'm glad it worked out first try on this board as well, but I was more worried about the DDR interface, as there's far more that could go wrong there.
@@PhilsLab I have seen that it is possible to install linux on old phones but is it possible to add something like ft232h or raspberry pi pico to make that smartphone a partial raspberry pi .
Thaks Phil I found a change to make on my pcb I am doing almost the same design but Kicad Not altium I just copied your Rj45 I put a JXD0-0001NL the HR911130A is a lot Cheaper ? Why did you not use the Maxim chip MAX20029 it seems a better psu. You are a lot faster than I am I started in December and am only now at a clean SCH with no errors. I am thinking using 4 chips PAM2310BECADJR so-8 I am going with Hirose Connector . You have saved me many Hours as you have shown the Bringup I am at least a few months away from Bringup . I do my own BGA soldering I am doing it all in house at home. not PCBWAY for assembly .Arieway
I could not get higher transfer speed than 59.7 Mbits/sec on several reference boards (microZed, XU8, ...). turns out to get top speed, I needed to increase LWIP bsp settings tcp_wnd from 2048 to 40000. Now I get 943 Mbits/sec on all these boards.
Thanks for your information. It is great. Could you please tell me if we are able to flash QSPI through Ethernet? not through Jtag. I am new to FPGAs. Thanks
Just a heads-up - whenever you regenerate bsp (for example after changing settings or refreshing the bistream) all of your changes are going to be *gone*! Ask me how do I know this ;)
Thanks for your work, very useful. I would like to ask you if you know some method for updating the SW of zynq using the ethernet connection. For example, through an embedded web server. It would be very interesting. Thanks a lot.
These lwIP examples are simply lwIP stack in standalone NOOS mode (so no RTOS) and a few applications from its app collection. Neat if you don't want to deal with full Linux bring-up yet. I'm more surprised that they didn't combine both iPerf2 TCP & UDP servers with ICMP echo and TCP echo server. I did (most of) that when tinkering with STM32F072B-DISCO and USB FSDEV RNDIS -- it managed 6 Mbps throughput over USB 12Mbps while fitting in ~96/128k of Flash, 16k of SRAM and serving a webpage at the same time!
Hi Phil, I am currently trying to bring up Gigabit Ethernet on a Zynq board using Broadcom B50612D PHY. Currently, the PHY clock is supplied by a 25MHz crystal. In PS IP core clock configuration for ENET0, I see 4 options: ARM PLL, IO PLL, DRR PLL, External. Which option should I choose for my board and is there any differences between each option?
Are we talking about an application agnostic dev board, here? What are the edges of this system's capabilities? Seems like a foundation for a tricorder like device, especially with AI becoming a more an more functional author of code, is this a piece of hardware where a person could ask AI to solve a problem and it could use this as its connection to the outside world, appropriate sensors attached, of course. Very cool! FPGA programming and utility are a bit beyond me at the moment but im following along like a baby swatting at a mobile. What is the best application use case to take advantage of all components of this system? What were you imagining when you designed this?
I'm doing a project where I'm sending data through AXI into the PL and using the PS to send that data through Ethernet, i have most of the AXI work done and data is arriving in memory ready to be send through Ethernet but here i hit a roadblock and that I'm not familiar with the lwIP library and exactly how data transfers work with the PCB structure and accept calls, is there any documentation or examples you know you can refer me apart from the lwIP documentations and reverse engineering the xillings examples? I have done this already but i still have a hard time understanding the subject. On a side note i appreciate all your videos, you are the first person i go to when i need to learn something new on PCB design and my first go to person when i recommend sources on how to do it.
Thanks, Robby! I'm afraid other than the docs/app notes and examples, there isn't too much info on this online from what I have seen. I hope you can find a solution though!
Hi Phil, thanks for such a great video. I'm trying to send 2 HD-SDI video feeds and one UDP communication protocol on a single ethernet connection. Could you please help me on how to achieve that?
HD-SDI has 1.5Gbit/s or 3GBit/s datarate unless you compress it. So you would need to either compress, or use a 10Gbit/s PHY. If you need to ask, I am unsure if this is something you should try to do with FPGAs. It would be easier doing with ready made hardware, like SDI input cards, a computer, and open source software for encoding/sending over ethernet. NDI is a simple solution yes.
What was harder, the DDR memory or the gigabit ethernet? I feel like it would be DDR, but this looks difficult as well. Anyways, another great video!!!
Thanks! DDR set-up was surprisingly simple and running in only a couple of minutes (thankfully). The Gig Ethernet would've been okay as well, hadn't it been for those few "bugs" I had to fix in the driver.
I wish this series was out back when I was doing an internship to design a custom Zynq dev board in 2021. It is incredibly well explained and shows a very well balanced, step-by-step workflow to design and test a Zynq board. Compared to reading incredibly long datasheets and getting lost in all the Xilinx UGs, this is a godsend.
What a nice job! Congrats Phil. I really love your videos
Thank you very much, Teddy!
Hats off to you! It must be expensive/time consuming to produce the video of such impressive quality.
Love this video. Absolutely to the point yet comprehensive.
Really awesome to see that you're also using add blocker 🤣
Really love your videos sir.
What an AMAZING job, as always!
Thank you!
Nice! Impressed that the Zync can handle the nearly 1Gbps throughput to/from the PHY, and the suite of test programs that Xilinx has provided is pretty nice. Seems like they embedded iperf in a standalone program. At least in Linux, the Realtek PHY "quirks" will have already been worked-around in the driver :D
Thanks, Jacob! Yes, pretty impressive chip the Zynq is.
Keep in mind that while the throughput is 1Gbps, the clock speed at which the FPGA interface to the PHY (RGMII) runs at 125MHz. The Zynq should be able to handle faster clock speeds at its IO :)
it would be REALLY interesting to see how to design a board with a 10GB ETH interface. (and to give more challenge, using the new IX Industrial connector !)
not gonna lie, I have the impression that you are really good, but I am still impressed that it makes 900mbit/s+ (probably it wasnt that hard for you, but still)
Thanks!
I'm glad it worked out first try on this board as well, but I was more worried about the DDR interface, as there's far more that could go wrong there.
@@PhilsLab I have seen that it is possible to install linux on old phones but is it possible to add something like ft232h or raspberry pi pico to make that smartphone a partial raspberry pi .
Phill Thanks for this video
Thanks for watching!
Such great work thank you Phil 🥰🥰
Thank you :)
Hello,
How you figured out this 12:51 change in bsp? What other important options this wizard [bsp settings] provide?
Hi Phil do you have the schematic published? please let me know
thanks for your video
Great job 👌..like always
Thanks, Seif!
Great video. For ENET0 in PS block, why did you choose HSTL 1.8V and not LVCMOS 1.8V? Does the Marvell PHY datasheet say to use HSTL?
Thaks Phil I found a change to make on my pcb I am doing almost the same design but Kicad Not altium I just copied your Rj45 I put a JXD0-0001NL the HR911130A is a lot
Cheaper ? Why did you not use the Maxim chip MAX20029 it seems a better psu. You are a lot faster than I am I started in December and am only now at a clean SCH with no errors.
I am thinking using 4 chips PAM2310BECADJR so-8 I am going with Hirose Connector .
You have saved me many Hours as you have shown the Bringup I am at least a few months away from Bringup . I do my own BGA soldering I am doing it all in house at home.
not PCBWAY for assembly .Arieway
Love you Phill
Thanks, Mohammed
I could not get higher transfer speed than 59.7 Mbits/sec on several reference boards (microZed, XU8, ...). turns out to get top speed, I needed to increase LWIP bsp settings tcp_wnd from 2048 to 40000. Now I get 943 Mbits/sec on all these boards.
Thanks for your information. It is great. Could you please tell me if we are able to flash QSPI through Ethernet? not through Jtag. I am new to FPGAs. Thanks
Genius
Thanks, Jonathan!
Hi. How did you install iperf2.0.9? Did you use Cygwin?
Where can we buy the populated tested board ?
Not gonna lie, vitis/petalinux has a lot of weird driver code bugs.
Just a heads-up - whenever you regenerate bsp (for example after changing settings or refreshing the bistream) all of your changes are going to be *gone*! Ask me how do I know this ;)
Hey, can we get to know when the new course be available?
Thanks for your work, very useful. I would like to ask you if you know some method for updating the SW of zynq using the ethernet connection. For example, through an embedded web server. It would be very interesting. Thanks a lot.
Another highly educational video. Thank you Phil. The example programs are based on some kind of RTOS ?
No OS so far just running directly on the hardware for this simple testing stuff.
Thank you! No RTOS used for these examples I believe.
These lwIP examples are simply lwIP stack in standalone NOOS mode (so no RTOS) and a few applications from its app collection. Neat if you don't want to deal with full Linux bring-up yet.
I'm more surprised that they didn't combine both iPerf2 TCP & UDP servers with ICMP echo and TCP echo server. I did (most of) that when tinkering with STM32F072B-DISCO and USB FSDEV RNDIS -- it managed 6 Mbps throughput over USB 12Mbps while fitting in ~96/128k of Flash, 16k of SRAM and serving a webpage at the same time!
Your Zynq has its QR code lasered off (probably by the distributor?) Wonder why
Chinesium
Hi Phil,
I am currently trying to bring up Gigabit Ethernet on a Zynq board using Broadcom B50612D PHY. Currently, the PHY clock is supplied by a 25MHz crystal. In PS IP core clock configuration for ENET0, I see 4 options: ARM PLL, IO PLL, DRR PLL, External. Which option should I choose for my board and is there any differences between each option?
May i ask what're your plans for this board ? Are you planning to sell it as dev board at all ? This half FPGA half micro board is quite interesting.
Listen closely at 0:36
This is part of the upcoming 'advanced hardware design' course. When I release that, I'll also be releasing the board for sale!
Are we talking about an application agnostic dev board, here? What are the edges of this system's capabilities? Seems like a foundation for a tricorder like device, especially with AI becoming a more an more functional author of code, is this a piece of hardware where a person could ask AI to solve a problem and it could use this as its connection to the outside world, appropriate sensors attached, of course.
Very cool! FPGA programming and utility are a bit beyond me at the moment but im following along like a baby swatting at a mobile. What is the best application use case to take advantage of all components of this system? What were you imagining when you designed this?
the debug porcess is great,if you don't tell me the method,I might never know whot the problem is.
good stuff, so to speak ;)
Thanks, Gregg!
I'm doing a project where I'm sending data through AXI into the PL and using the PS to send that data through Ethernet, i have most of the AXI work done and data is arriving in memory ready to be send through Ethernet but here i hit a roadblock and that I'm not familiar with the lwIP library and exactly how data transfers work with the PCB structure and accept calls, is there any documentation or examples you know you can refer me apart from the lwIP documentations and reverse engineering the xillings examples? I have done this already but i still have a hard time understanding the subject.
On a side note i appreciate all your videos, you are the first person i go to when i need to learn something new on PCB design and my first go to person when i recommend sources on how to do it.
Thanks, Robby! I'm afraid other than the docs/app notes and examples, there isn't too much info on this online from what I have seen. I hope you can find a solution though!
Is it possible make a board like Raspberry Pi 4 with functionality of FPGA ?
Hi Phil, thanks for such a great video.
I'm trying to send 2 HD-SDI video feeds and one UDP communication protocol on a single ethernet connection. Could you please help me on how to achieve that?
have you looked at NDI from Newtek?
HD-SDI has 1.5Gbit/s or 3GBit/s datarate unless you compress it. So you would need to either compress, or use a 10Gbit/s PHY. If you need to ask, I am unsure if this is something you should try to do with FPGAs. It would be easier doing with ready made hardware, like SDI input cards, a computer, and open source software for encoding/sending over ethernet. NDI is a simple solution yes.
what is your "home rooter"? i always thought it was called a "router"
Sir do u have a copy of this board and if you are willing to sale it, can you please tell me the price?
What was harder, the DDR memory or the gigabit ethernet? I feel like it would be DDR, but this looks difficult as well. Anyways, another great video!!!
Thanks! DDR set-up was surprisingly simple and running in only a couple of minutes (thankfully). The Gig Ethernet would've been okay as well, hadn't it been for those few "bugs" I had to fix in the driver.
@@PhilsLab I think he talks about the hardware design, and of course, DDR routing is way harder that Ethernet !!
what is Zynq?