element14 Community
element14 Community
    Register Log In
  • Site
  • Search
  • Log In Register
  • About Us
  • Community Hub
    Community Hub
    • What's New on element14
    • Feedback and Support
    • Benefits of Membership
    • Personal Blogs
    • Members Area
    • Achievement Levels
  • Learn
    Learn
    • Ask an Expert
    • eBooks
    • element14 presents
    • Learning Center
    • Tech Spotlight
    • STEM Academy
    • Webinars, Training and Events
    • Learning Groups
  • Technologies
    Technologies
    • 3D Printing
    • FPGA
    • Industrial Automation
    • Internet of Things
    • Power & Energy
    • Sensors
    • Technology Groups
  • Challenges & Projects
    Challenges & Projects
    • Design Challenges
    • element14 presents Projects
    • Project14
    • Arduino Projects
    • Raspberry Pi Projects
    • Project Groups
  • Products
    Products
    • Arduino
    • Avnet Boards Community
    • Dev Tools
    • Manufacturers
    • Multicomp Pro
    • Product Groups
    • Raspberry Pi
    • RoadTests & Reviews
  • Store
    Store
    • Visit Your Store
    • Choose another store...
      • Europe
      •  Austria (German)
      •  Belgium (Dutch, French)
      •  Bulgaria (Bulgarian)
      •  Czech Republic (Czech)
      •  Denmark (Danish)
      •  Estonia (Estonian)
      •  Finland (Finnish)
      •  France (French)
      •  Germany (German)
      •  Hungary (Hungarian)
      •  Ireland
      •  Israel
      •  Italy (Italian)
      •  Latvia (Latvian)
      •  
      •  Lithuania (Lithuanian)
      •  Netherlands (Dutch)
      •  Norway (Norwegian)
      •  Poland (Polish)
      •  Portugal (Portuguese)
      •  Romania (Romanian)
      •  Russia (Russian)
      •  Slovakia (Slovak)
      •  Slovenia (Slovenian)
      •  Spain (Spanish)
      •  Sweden (Swedish)
      •  Switzerland(German, French)
      •  Turkey (Turkish)
      •  United Kingdom
      • Asia Pacific
      •  Australia
      •  China
      •  Hong Kong
      •  India
      •  Korea (Korean)
      •  Malaysia
      •  New Zealand
      •  Philippines
      •  Singapore
      •  Taiwan
      •  Thailand (Thai)
      • Americas
      •  Brazil (Portuguese)
      •  Canada
      •  Mexico (Spanish)
      •  United States
      Can't find the country/region you're looking for? Visit our export site or find a local distributor.
  • Translate
  • Profile
  • Settings
Path to Programmable 3
  • Challenges & Projects
  • Design Challenges
  • Path to Programmable 3
  • More
  • Cancel
Path to Programmable 3
Blog Path to Programmable III with MiniZed: 1G ENET, GTX, NEON - what is it unique that FPGAs do at all?
  • Blog
  • Forum
  • Documents
  • Leaderboard
  • Files
  • Members
  • Mentions
  • Sub-Groups
  • Tags
  • More
  • Cancel
  • New
Join Path to Programmable 3 to participate - click to join for free!
  • Share
  • More
  • Cancel
Group Actions
  • Group RSS
  • More
  • Cancel
Engagement
  • Author Author: navadeepganeshu
  • Date Created: 23 Jul 2023 11:00 AM Date Created
  • Views 1268 views
  • Likes 9 likes
  • Comments 2 comments
  • high speed protocols
  • jesd204
  • design challenge
  • AMD XILINX
  • zynq
  • gigabit ethernet
  • Path to Programmable 3
Related
Recommended

Path to Programmable III with MiniZed: 1G ENET, GTX, NEON - what is it unique that FPGAs do at all?

navadeepganeshu
navadeepganeshu
23 Jul 2023

Table of Contents

  • Introduction
  • 1G Ethernet
  • Gigabit Transceiver (GTX/GTH)
  • JESD Standard
  • References

Introduction

Moving on with the exploration of FPGAs, I stumbled upon this question of what really can FPGAs can do and where they fit in - unlike many of the projects built using them which can also be done on a fairly mid-range microcontroller these days. A quick search on this topic shows some of the high-speed communication protocols, usage of SerDes, multi-gigabit ethernet and optical links, extremely capable digital signal processing and floating point operations etc.

Reading through the hardware, and software tutorials and learning about vivado-vitis codesign, usage of IP blocks for PWM, serial protocols and I/O interfaces have been insightful and two of my previous blog are on these. This one will spin a little offside looking into the full-fledged capabilities of the Zynq-7000 SoC. This blog will be heavily dependent on ug585-Zynq-7000-TRM references.

This block diagram shows signals, pins and interfaces in the Zynq 7000 and highlighted are some exotic features for which these SoCs are preferred. We'll look at 1G and higher ethernet interface, gigabit serial transceivers(JESD, PCIe implementations) and Neon engine linking to the ARM core in PS section.

imageimage

1G Ethernet

Gigabit ethernet is a common system block used when it comes to a system requiring a speedy network link. There are two Gigabit Ethernet Controllers(GEM0, GEM1) in the Zynq SoC’s Processor System. Each of these controllers can be configured and used independently. The Gigabit Ethernet Controller implements a MAC(Media Access Controller) which forms part of the data link layer in the 7-layer OSI model. For the Physical layer, an external chip like DP83867E is to be used which links the external RJ-45 ethernet port to the MAC layer in the SoC via multiplexed I/O(MIO) through interfaces like Reduced Gigabit Media Independent Interface(RGMII).

image

image

The below image shows the overall 1G ethernet application using a TI DP83867 PHY chip. The Ethernet MAC block on the left is within the Zynq 7000 SoC and further upper OSI layers are implemented thereby.

image

Interestingly, the further range of Zynq devices like Ultrascale+ comes with 10G/SFP capabilities through gigabit transceiver which we'll look at in the next section 10 Gigabit Ethernet support | DigiKey

Gigabit Transceiver (GTX/GTH)

The 7 series FPGAs GTX and GTH transceivers are power-efficient transceivers, supporting line rates from 500 Mb/s to 12.5 Gb/s for GTX transceivers and 13.1 Gb/s for GTH transceivers. The GTX/GTH transceiver is highly configurable and integrated with the PL resources of the FPGA. 

The GTX/GTH transceiver supports these use modes:

  1. PCI Express
  2. 10GBASE-R 
  3. Common Packet Radio Interface (CPRI)
  4. Serial Digital Innterface (SDI) and more...

PCIe

PCI Express(PCIe) is a general-purpose serial interconnect suitable for a broad range of applications across Communications, Datacenter, Enterprise, Embedded, Test & Measurement, Military and other markets. It can be used as a peripheral device interconnect, chip-to-chip interface and as a bridge to many other protocol standards.

10G ENET

The 10G PL Ethernet Design shown below uses the gigabit transceiver on PL to make a link and the ethernet subsystem itself implements MAC with Physical Coding Sublayer(PCS) and Physical Media Attachment(PMA) layers which are part of PHY, unlike the GEM controllers in the PS.

image

JESD Standard

The JESD204B interface standard supports the high bandwidth necessary for leading high-performance, high speed and multi-channel applications while reducing the number of digital IOs needed and thus easing board layout. Very high-speed ADCs that would have previously required a complex interface design using a large number of FPGA IO are now implemented with just a few pins.

These have extensive applications in Wireless, SDR and Radar applications where ADCs/DACs are crucial and timing critical sections. A lot of high-speed ADCs like AD9250 come with this protocol interface built-in and on the other side, JESD PHY IP can be implemented on the FPGA PL to make a link through its I/O bank. One special requirement is that it needs a common clock synchronization which you may observe in the below block diagrams.

imageimage

The AMD-Xilinx LogiCORE IP JESD204 PHY core implements a JESD204B physical interface to simplify sharing serial transceiver channels between transmit and receive cores. There are 3 subclasses in this standard and all are supported by this IP. More details regarding subclasses in JESD204B Survival Guide (analog.com)

Further, I am exploring the NEON coprocessor available on Zynq 7000 SoC coupled with a Cortex A9 processor. This is an interesting AppNote on this topic xapp1206-boost-sw-performance-zynq7soc-w-neon.pdf • Viewer • AMD Adaptive Computing Documentation Portal (xilinx.com)

Thanks for reading through. I am now in the process of reading about these protocols and standards along with trying out the NEON coprocessor example implementation in the MiniZed board and Vitis platform. I am sure some of the community members would have worked on some of these, and do share what you think and if any experiences working around these high-speed interfaces. 

References

https://docs.xilinx.com/r/en-US/ug585-zynq-7000-SoC-TRM
Adam Taylor’s MicroZed Chronicles Part 77 – Introducing the Zynq SoC’s Ethernet (xilinx.com)

https://www.ti.com/lit/ds/symlink/dp83867cs.pdf

10 Gigabit Ethernet support | DigiKey

ug476_7Series_Transceivers.pdf • Viewer • AMD Adaptive Computing Documentation Portal (xilinx.com)

xapp1206-boost-sw-performance-zynq7soc-w-neon.pdf • Viewer • AMD Adaptive Computing Documentation Portal (xilinx.com)
SDSoC-Benchmarks/large_matrix_mult/fast_software_implementation/src/matrix_mult_openmp_neon.c at master · Hosseinabady/SDSoC-Benchmarks (github.com)
xilinx.eetrend.com/files/2019-11/wen_zhang_/100046106-84570-xapp1305-ps-pl-based-ethernet-solution.pdf
  • Sign in to reply
  • navadeepganeshu
    navadeepganeshu over 2 years ago in reply to shabaz

    That was a nice read! Liked the image scaling example you've used - I'll look at something similar on the Zynq MP Core.

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • More
    • Cancel
  • shabaz
    shabaz over 2 years ago

    Nice blog!

    NEON is an ARM thing, that can transparently give performance by using they right libraries in (say) C code, since the libraries (e.g. some math or graphics or DSP libraries) may be coded to take advantage of it. However it's also possible to write custom low-level code that directly uses NEON machine instructions. I don't know if it will help or not, but there's an old blog here to walk through some of it:  BBB, NEON and making Tintin bigger  (it should apply to Zynq, although that article was written about a TI processor). 

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • More
    • Cancel
element14 Community

element14 is the first online community specifically for engineers. Connect with your peers and get expert answers to your questions.

  • Members
  • Learn
  • Technologies
  • Challenges & Projects
  • Products
  • Store
  • About Us
  • Feedback & Support
  • FAQs
  • Terms of Use
  • Privacy Policy
  • Legal and Copyright Notices
  • Sitemap
  • Cookies

An Avnet Company © 2025 Premier Farnell Limited. All Rights Reserved.

Premier Farnell Ltd, registered in England and Wales (no 00876412), registered office: Farnell House, Forge Lane, Leeds LS12 2NE.

ICP 备案号 10220084.

Follow element14

  • X
  • Facebook
  • linkedin
  • YouTube