Closed KireinaHoro closed 4 years ago
For peripherals like Ethernet, ESP is leveraging the open-source library GRLIB by Cobham Gaisler. Even though the GRLIB configuration GUI allows you to select Gigabit Ethernet, the IP is not part of the open-source release of GRLIB. You may obtain the missing RTL from Cobham by paying a license fee.
We are considering integrating other open-source Ethernet peripherals that support Gigabit, however this could take a while, because other IPs do not include the second MAC, named EDCL in the GRLIB documentation.
ESP leverages the EDCL for fast access to the SoC through the ESPLink application running on a client computer. Without that, loading programs, including Linux, into memory would have to be done via JTAG, resulting in much longer booting time. Therefore, before replacing the Ethernet IP we must reimplement the support for debug via Ethernet on another open-source device.
I see. I would suggest mentioning that somewhere in the documentation in case people just go through the options and try things out (and fail like in this case).
Are there plans for supporting third-party IPs (e.g., MACs from Xilinx for the FPGAs, just like MIG) to provide ethernet access? A faster link would be better, especially when working with transceivers that do not work well with the 100M MAC. EDCL functionality can still be kept by leaving GRETH in place.
Yes, we will add a clearer note about not to change the GRLIB configuration, except for the MAC and IP pairs for EDCL. There are, in fact, other options that wont' work because they require changing the FPGA top as well.
As for supporting Xilinx IP, we'd rather pick an open source one. The reason is that ESP is leveraging FPGAs for prototyping, but the back-end flow for ASIC is well in the works. The final goal of ESP is to have an agile methodology for heterogeneous chip design. Xilinx IPs, unfortunately closed source, are not suitable for the ASIC flow, so we tend not to use them as much as possible, with the exception of the DDR controller, for which there is no open alternative.
That may sound a little bit confusing, as you certainly cannot expect to have open source version for all peripheral IPs used in the SoC, especially when you're targeting ASIC; for example, one could possibly use Cadence MACs or USB peripherals, which are not open source but are provided in the form of (possibly encrypted) RTL. The Xilinx IPs are the same by this consideration.
And I can get the point that supporting IPs from a specific vendor would be effort that's not justified for the final target, so I'd like to know if there will be a guide to integrate custom peripheral IPs (in the IO block). The current setup of UART and Ethernet is far from enough.
2020年6月4日(木) 23:41 Paolo Mantovani notifications@github.com:
Yes, we will add a clearer note about not to change the GRLIB configuration, except for the MAC and IP pairs for EDCL. There are, in fact, other options that wont' work because they require changing the FPGA top as well.
As for supporting Xilinx IP, we'd rather pick an open source one. The reason is that ESP is leveraging FPGAs for prototyping, but the back-end flow for ASIC is well in the works. The final goal of ESP is to have an agile methodology for heterogeneous chip design. Xilinx IPs, unfortunately closed source, are not suitable for the ASIC flow, so we tend not to use them as much as possible, with the exception of the DDR controller, for which there is no open alternative.
— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub https://github.com/sld-columbia/esp/issues/48#issuecomment-638933519, or unsubscribe https://github.com/notifications/unsubscribe-auth/AB3ROOXMYMV4MNAYVYCWFY3RU66EDANCNFSM4NSNYIXA .
The release of the ESP project on GitHub is all about open-source hardware. We certainly don't expect that all possible peripherals can be found as open-source IPs, but for those that are absolutely required to create an ESP instance (i.e. UART, Ethernet and memory), we try to use open IPs as much as possible. Memory is clearly not possible for now.
Having said that, so far we've focused on tutorials to integrate accelerators, as ESP is meant to facilitate the design and integration of heterogeneous processing elements. We want our users to be able to design custom systems, using their specialized accelerators, or designing new ones from their algorithms as quickly and easily as possible. Nonetheless, I do understand that some users might be interested in integrating proprietary peripherals for I/O as well and that there is not enough documentation yet to guide them in this process.
If the peripheral interface is AXI, AHB or APB, hardware integration is not complicated at all. The I/O tile hosts an AHB bus controller and an APB bus controller and all peripherals are currently attached there. If necessary, an AHB-to-AXI bridge can be instantiated as well.
In time we will certainly provide all users with documentation about the I/O tile, but for now, If you have a specific component in mind, such as the Xilinx Ethernet MAC, we will try to support you in modifying the memory map and routing tables generator to have processors communicate with a new device on the I/O tile.
You can also reach us through the esp-info email address (see our contact page).
Thanks for the clarification and patience!
I'm trying to reproduce the SoC for the VCU118 board. After enabling 1000 MBit support for the Ethernet peripheral, Vivado implementation will fail with the following messages:
The menu for the 1000 MBit option in
make grlib-xconfig
:I'm relaunching the flow without 1000 MBit support to see if this is the problem, the synthesis is spinning now.Update: things went past DRC with 1000 MBit support off. Seems like an issue with the GbE MAC IP?