12-06-2017 11:02 AM
I am trying to implement a serial link using the Aurora8b10b protocol between an Artix-7 FPGA and a Virtex Ultrascale+ FPGA. I was able to implement the Artix-7 side successfully using the Aurora 8b10b ip core. When trying to implement the Ultrascale+ side I learned that the aurora8b10b does not officially support the GTY transceiver (which is transceiver on the Virtex Ultrascale+). Thus, there is no aurora8b10b ip core available. Some online research has shown me that it is possible to implement the Aurora8b10b protocol with a GTY transceiver. Here is a link to a documented case of someone who successfully implemented the Aurora8b10b protocol with a GTY transceiver.
The information in the link roughly outlines how the protocol was implemented. I have summarized the steps below.
1) Use the Aurora8b10b IP core to generate the Aurora8b10b protocol files (link layer) and a wrapper that configures a compatible transceiver (physical layer), such as a GTP or GTX.
2) Although, the Aurora8b10b protocol does not support the GTY transceiver, the ultrascale transceiver wizard allows you to configure the GTY transceiver for the aurora8b10b protocol. This is only the GT part of the Aurora8b10 (physical layer) not the link layer.
3) Merge the GTY wrapper(physical layer) generated in step 2 with the aurora8b10b protocol files (link layer) generated in step 1.
I have completed steps 1 & 2, but am having trouble getting started with step 3. I looked through the aurora8b10b ip (from step 1) hierarchy and I think I see where the GT wrapper is instantiated.
Theoretically, this is where the transceiver wrapper from step 2 would need to replace the current gt wrapper. However, the ports generated by the Aurora GTY wrapper don't necessarily match up with all the ports in the current GT wrapper. In step 2 when I generated the GTY wrapper, I have the option to expose several ports to top level of the wrapper. I can also choose to include several helper blocks within the core or choose to have them external to the core.
1) Does anyone have experience implementing the Aurora8b10 protocol with a GTY transceiver? If so how did you merge the physical and link layers? Do you have any example files you can share?
2) In what file in the Aurora 8b10b ip hierarchy should I be inserting the GTP transceiver wrapper?
3) what helper blocks should remain internal to the GTP wrapper and which should be external to the core?
4) which additional ports should be exposed to the top level of the GTP wrapper?
Thank you! I appreciate any help with this issue.
12-14-2017 08:42 AM
your better starting point for step 1 would be an Aurora 8b10b core for a US+ GTH.
The transceiver core structure for US+ GTH and US+ GTY is very similar and it would be much easier to replace files.