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
Avnet Boards Forums
  • Products
  • Dev Tools
  • Avnet Boards Community
  • Avnet Boards Forums
  • More
  • Cancel
Avnet Boards Forums
PicoZed Hardware Design Using GTX transceivers
  • Forum
  • Documents
  • Members
  • Mentions
  • Sub-Groups
  • Tags
  • More
  • Cancel
  • New
Join Avnet Boards Forums to participate - click to join for free!
Actions
  • Share
  • More
  • Cancel
Forum Thread Details
  • State Verified Answer
  • Replies 4 replies
  • Subscribers 322 subscribers
  • Views 2484 views
  • Users 0 members are here
Related

Using GTX transceivers

nahkabiljetti
nahkabiljetti over 7 years ago

Hello!

I'm looking for some help how to use the GTX transceivers on PicoZed 7030 board. I'm using the FMC Carrier Card V2 platform and my goal is to send data to one GTX transceiver channel and receive it with another. Later this communication should happen between multiple PicoZed boards.
 

I currently have a setup where I connect the SMA TX pair to SFP+ module RX pair via SFP+ to SMA adapter. After watching your 4 tutorial videos about how to use IBERT core to validate links I managed to verify that the link is working correctly. The Link was automatically detected by Vivado and it shows the link
 

MGT_X0Y1/TX (SMA) -> MGT_X0Y2/RX (SFP+)
 

Status as 6.250 Gbps as expected and no errors.
 

Now I would want to move to the next step: use the GTX transceivers from a custom logic so that I can send my custom data to one transceiver and receive it to another but I'm really confused how to achieve this. First things I find info about are the "7 Series FPGAs Transceivers Wizard" and "Aurora 64B66B" cores. But when I used the IBERT core I did not need the Transceivers Wizard setup. That makes me want to think that it's not needed.
 

What I'm looking for is basic steps what is needed to send data from my custom logic to GTX transceiver and receive it back. Do I need transceivers wizard? Do I need to edit .xdc constraints manually? Can I use Aurora example design?
 

I'm fairly familiar with Vivado and SDK but I have not worked with .xdc constraints. I'm familiar with building a custom AXI4 peripheral.
 

Best regards
Jan

  • Sign in to reply
  • Cancel
Parents
  • nahkabiljetti
    0 nahkabiljetti over 7 years ago

    Many thanks for your reply!

    I have been studying the Aurora core using "Aurora 64B/66B v11.2 LogiCORE IP Product Guide". I now have fair understating of the core and I managed to run the simulation successfully with the Aurora example design generated by Vivado using the "Open IP Example Design..."  option. I'm using the core in TX-only Simplex mode for the SMA connectors (MGT1 or GTXE2_X0Y1).

    My instantiation of the example design uses two differential clocks: gt_refclk1_p/gt_refclk1_n and init_clk_p/init_clk_n and one singe-ended clock: drp_clk_in. These clocks should be driven from User I/O ports GTXQ0_P, GTXQ0_N, INIT_CLK_P, INIT_CLK_N and DRP_CLK_IN respectively. In the simulation the desired clocks are generated by the testbench aurora_6466b_0_TB but now I'm having trouble to write proper constraints to get this working in real hardware.

    It seems that the GTX reference clock is already taken care of in the automatically generated .xdc constraints file: 

       create_clock -period 4.000 [get_ports GTXQ0_P] 

       set_property LOC U9 [get_ports GTXQ0_P]
       set_property LOC V9 [get_ports GTXQ0_N]
     
    And by looking at the implemented design schematics it seems to connect to same place as with the IBERT design, as expected. 

    But for the INIT_CLK and the DRP_CLK I have not yet managed to find proper sources. In a design tutorial  "Designing a System Using the Aurora 64B66B Core (Duplex) on the KC705 Evaluation Kit" the INIT_CLK is just connected to pins supplying a 200 MHz differential clock using the LOC command as with the GTXQ0. But my board doesn't have this kind of a clock source. And the reference design doesn't have DRP_CLK at all.

    So my question is that where can I get these clocks and how should they be constrained? The differential INIT_CLK should be between 50-200 MHz and the DRP_CLK should be from 50 to x MHz ("where x is device and speed grade dependent." -LogiCORE IP Product Guide). In the IP customize options I now have selected the default values of 50 MHz and 100 MHz for these clocks. I have been trying to genetare the INIT_CLK from the GTXQ0 clock using create_generated_clock command but yet with no luck. It also came to my mind that could I use the Zynq processing system clock FCLK_CLK0 somehow? It might be trivial but I have not yet understood how can I interface with this clock from the constraints file..

    I would like to avoid using the IDT programmable clock source offered by the FMC Carrier Card V2 because the final product is only using the PicoZed board.

    All the help is much appreciated!
    -Jan

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Verify Answer
    • Cancel
Reply
  • nahkabiljetti
    0 nahkabiljetti over 7 years ago

    Many thanks for your reply!

    I have been studying the Aurora core using "Aurora 64B/66B v11.2 LogiCORE IP Product Guide". I now have fair understating of the core and I managed to run the simulation successfully with the Aurora example design generated by Vivado using the "Open IP Example Design..."  option. I'm using the core in TX-only Simplex mode for the SMA connectors (MGT1 or GTXE2_X0Y1).

    My instantiation of the example design uses two differential clocks: gt_refclk1_p/gt_refclk1_n and init_clk_p/init_clk_n and one singe-ended clock: drp_clk_in. These clocks should be driven from User I/O ports GTXQ0_P, GTXQ0_N, INIT_CLK_P, INIT_CLK_N and DRP_CLK_IN respectively. In the simulation the desired clocks are generated by the testbench aurora_6466b_0_TB but now I'm having trouble to write proper constraints to get this working in real hardware.

    It seems that the GTX reference clock is already taken care of in the automatically generated .xdc constraints file: 

       create_clock -period 4.000 [get_ports GTXQ0_P] 

       set_property LOC U9 [get_ports GTXQ0_P]
       set_property LOC V9 [get_ports GTXQ0_N]
     
    And by looking at the implemented design schematics it seems to connect to same place as with the IBERT design, as expected. 

    But for the INIT_CLK and the DRP_CLK I have not yet managed to find proper sources. In a design tutorial  "Designing a System Using the Aurora 64B66B Core (Duplex) on the KC705 Evaluation Kit" the INIT_CLK is just connected to pins supplying a 200 MHz differential clock using the LOC command as with the GTXQ0. But my board doesn't have this kind of a clock source. And the reference design doesn't have DRP_CLK at all.

    So my question is that where can I get these clocks and how should they be constrained? The differential INIT_CLK should be between 50-200 MHz and the DRP_CLK should be from 50 to x MHz ("where x is device and speed grade dependent." -LogiCORE IP Product Guide). In the IP customize options I now have selected the default values of 50 MHz and 100 MHz for these clocks. I have been trying to genetare the INIT_CLK from the GTXQ0 clock using create_generated_clock command but yet with no luck. It also came to my mind that could I use the Zynq processing system clock FCLK_CLK0 somehow? It might be trivial but I have not yet understood how can I interface with this clock from the constraints file..

    I would like to avoid using the IDT programmable clock source offered by the FMC Carrier Card V2 because the final product is only using the PicoZed board.

    All the help is much appreciated!
    -Jan

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Verify Answer
    • Cancel
Children
No Data
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