Zephyrnet-logo

Verschillen Ontwerpen met UltraScale+ GTY en Versal GTY/GTYP

Datum:

De GTY/GTYP-transceivers in Versal ACAP zijn energiezuinige transceivers die lijnsnelheden van 1.25 Gb/s tot 32.75 Gb/s ondersteunen.

Versal GTY- en GTYP-transceivers introduceren nieuwe ontwerpstromen en functies waarmee de transceivers zeer configureerbaar en nauw geïntegreerd kunnen worden met de programmeerbare logische bronnen en geïntegreerde harde blokken van de Versal-architectuur.  

Deze blog is bedoeld om gebruikers die ervaring hebben met UltraScale+ GTY-ontwerp efficiënt te helpen met Versal GTY en GTYP. De gids behandelt de belangrijkste verschillen tussen de UltraScale+ en Versal IP, waaronder:

  • Overwegingen bij het ontwerpen van stroom, gericht op wat er nieuw is in Versal in vergelijking met eerdere families
  • GT- en REFCLK-pinplanning
  • GT-locaties verwisselen binnen een Quad
  • Overwegingen voor klokken en resetten
  • APB3-gebruik in plaats van de DRP-poort die in eerdere families werd gebruikt. Toegang via de VIO of Processor
  • AXI-busgebruik
  • Looptijd IBERT
  • Relevante voorbeeldontwerpen en aanvullende informatie om u op weg te helpen met ontwerpen met Versal GTY

1: GB/sec
2: Gecombineerd zenden en ontvangen
3: Max. aantal zendontvangers gevonden in meerdere apparaatfamilies

Tabel afkomstig van https://www.xilinx.com/products/technology/high-speed-serial.html#overview 

Er zijn twee hoofdontwerptools bij het targeten van Versal ACAP:

  • Vivado Tools Design Flow om FPGA-ontwerp en -verificatie op hoog niveau te versnellen
  • Vitis Environment Design Flow om versnelde applicaties te bouwen

Opmerking: alle Versal ACAP-ontwerpen vereisen het CIPS IP-adres omdat het de PMC bevat die wordt gebruikt om het apparaat op te starten. Voor meer informatie, zie de Control Interface and Processing System IP Product Guide (PG352). 

IP-integrator versus RTL-ontwerpstromen

roym_2-1627949889958.png

In Versal ACAP worden GT-componenten bijgewerkt van Common/Channel naar een GT Quad-granulariteit. Dit maakt zaken als quad-sharing eenvoudiger, maar vereist dat ontwerpers overstappen van RTL-instantiatie van de GT Wizard IP naar IP Integrator-stromen. 

Wanneer u ontwerpt met Versal GTY/GTYP, is het vereist om de GT Wizard binnen IP Integrator (IPI) te gebruiken om systeemontwerpen te bouwen die gebruik maken van enkele of meerdere GT Quads en gebruiksscenario's voor het delen van GT. De ontwerpinvoer voor aangepaste IP die verbinding maakt met GT Quads is via de Bridge IP, die een of meer op GT Quad gebaseerde IP instantieert, configureert en verbindt via Block Automation. 

Om door een voorbeeld te lopen dat het volgende blok bouwt, gaat u naar GTY-voorbeeldontwerp met configuratie met meerdere snelheden of maak het voorbeeld via de Vivado CED Store.

Zuiver RTL-stromen worden ontmoedigd. Als de gewenste IPI-stroom (hierboven weergegeven) niet haalbaar is, wordt in plaats daarvan de onderstaande Versal GT-stroom aanbevolen. Deze stroom kan worden vergeleken met de UltraScale/UltraScale+ RTL-stroom waarbij gebruikers het GT Wizard-IP zouden genereren via de IP-catalogus en vervolgens de IP-wrapper op het hoogste niveau zouden gebruiken om de GT-wizard als submodule te instantiëren. In deze UltraScale/UltraScale+-stroom omvatte de IP-wrapper op het hoogste niveau de GT Wizard en het reset-IP-helperblok.  

RTL Flow: maak een HDL-wrapper op het hoogste niveau van een Versal GT Wizard Block Design

  • Klik binnen Vivado op Blokontwerp maken onder IP INTEGRATOR
  • Voeg de Versal ACAPs Transceivers Bridge IP toe
  • Configureer het IP-adres en zorg ervoor dat u "Pass Through Mode" inschakelt. Deze optie stelt alle relevante signalen van de GT Quad bloot aan de applicatie-interface.

          

roym_3-1627949889780.png

  • Blokautomatisering uitvoeren
  • Valideer het ontwerp (Tools > Ontwerp valideren)
  • Ga naar uw bronnen tabblad, klik met de rechtermuisknop op ontwerp*.bd en Maak een HDL-wrapper

roym_4-1627949889781.png

  • De HDL-wrapper op het hoogste niveau kan worden gebruikt om de GT-wizard als submodule te instantiëren
    • De wrapper op het hoogste niveau bevat de GT Wizard IP + Reset IP-helper + BUFG_GT-modules

IP naar GT-integratie

Xilinx "ouder" IP-kernen die GT-componenten gebruiken, integreren de GT-componenten niet binnen het IP. Dit is om het delen van GT beter mogelijk te maken.

Voeg in plaats daarvan een Xilinx ouder-IP toe binnen Vivado IP-integrator en gebruik vervolgens Block Automation om de TX- en RX-gegevenspaden van het IP met de GT Wizard te verbinden. Als Vivado het bovenliggende IP-adres niet kan inpakken met bestaande GT Quad-bronnen, wordt een nieuwe GT Wizard Quad Base (gt_quad_base) gelanceerd. De tools gebruiken ook optionele usrclk-, outclk-, REFCLK- en reset-verbindingen. In het algemeen is de bovenliggende IP-ontwerpstroom als volgt:

  1. Voeg het Xilinx IP (bijvoorbeeld Aurora64B66B, PCIe, MRMAC, enz.) toe aan het IP Integrator-canvas.
  2. Configureer het IP-adres voor het aantal rijstroken, lijntarieven enzovoort.
  3. Klik Blokautomatisering uitvoeren.
  4. Voer stap 2 en 3 uit om meer IP-instanties toe te voegen op basis van uw systeembehoefte. U kunt stap 2 ook herhaaldelijk uitvoeren voordat u stap 3 uitvoert. U kunt kiezen voor welk IP u blokautomatisering wilt uitvoeren in de blokautomatisering GUI.

Block Automation ondersteunt maximaal drie opties voor datapath-interfaceverbindingen. Niet elk Xilinx ouder-IP ondersteunt alle drie de opties.

  1. automobiel: Block Automation kiest het optimale gebruik van de GT Quad-bronnen. De beslissing van de tool is gebaseerd op zijn kennis van beschikbare klokbronnen en REFCLK- en PLL-regels voor delen.
  2. Start_Met_Nieuwe_Quad: Block Automation start een nieuwe GT Quad en maakt het datapad, klokken en resetverbindingen.
  3. Aangepaste_Verbindingen: Gebruikers kiezen welke quad en kanaal ze willen aansluiten voor elk kanaal in het IP.

    Opmerking: in de Customized_Connections-optie wordt het nieuwe GT Quad-basis-IP niet automatisch geïnstantieerd als er geen rijstroken beschikbaar zijn. U moet het GT quad-basis-IP handmatig toevoegen aan het canvas voordat u op Customized_Connections klikt.

Voor een overzicht van het maken van een ontwerp met GT IP, zie de Xilinx IP – GT Quad-integratie in de Versal ACAP Transceivers Wizard LogiCORE IP Product Guide (PG331).

In tegenstelling tot UltraScale+ voegt de Versal GT Wizard geen fysieke locaties toe voor GT Quads. In plaats daarvan worden de I/O Planner of Hard Block Planner gebruikt om fysieke GT-locaties en GT-referentieklokpenlocaties toe te voegen. Na het uitvoeren van de synthese:

  1. Gesynthetiseerd ontwerp openen → Layout → I/O-planning.
  2. Openen Pakketspelden en geef GT Quad- en GT-referentiekloklocaties in de overeenkomstige MGT-banken op.
  3. Zodra alle I/O-poorten zijn toegewezen, klikt u op Implementatie uitvoeren om het ontwerp uit te voeren.

Voor informatie over de Hard Block Planner, zie de Vivado Design Suite User Guide: I/O and Clock Planning (UG899). Voor informatie over de volledige GT quad-layout en ondersteunde configuratie-opties, zie de Versal ACAP GTY en GTYP Transceivers Architecture Manual (AM002).

REFCLK Delen

De GT-wizard staat zes logische referentieklokingangen R0 – R5 toe. Op basis van gebruikersselectie over verschillende lijnsnelheden, wijst de wizard de gesorteerde referentieklokpoorten (GTREFCLK0-5) en frequentie toe die op deze klokpoorten moeten worden aangestuurd. Samenvatting.log in de gt_quad_base IP-bronnen gebied biedt de verwachte frequentie voor elke MGTREFCLK-poort en een tabel met CONFIG versus protocolparameters. Dit wordt gegenereerd per gt_quad_base. Hier is een voorbeeld Samenvatting.log:

roym_5-1627949889880.png

Het doorsturen van refclk gebeurt automatisch via IPS en wordt geïmpliceerd via pinplanning. Als onderdeel van blokautomatisering worden GT Reference Clocks (GTREFCLK) kortgesloten over GT Quads voor eenvoudige ontwerpen. Voor complexe ontwerpen die meerdere IP's met meerdere GT Quads gebruiken, kunnen systeemontwerpers GTREFCLK's kortsluiten op basis van de frequentie-informatie, Quad-plaatsing en klokbeschikbaarheid op het bord. Om systeemontwerpers te helpen een weloverwogen beslissing te nemen, is er een GTREFCLK-samenvatting voor het hele systeem in het IP Integrator-canvas. Deze tabel kan worden verkregen door de volgende opdracht in de Tcl-console in te voeren.

xilinx::designutils::report_gt_refclk_summary

 

Bij het uitvoeren van de opdracht, gt_refclk_summary.txt wordt gegenereerd in het onderstaande pad en rapporteert GT Reference Clocks, de frequenties en de bron.

roym_6-1627949889924.png

roym_7-1627949889939.png

beperkingen

  • MGTREFCLK create_clock beperking is vereist voordat Synthesis wordt uitgevoerd.
  • APB3CLK create_clock beperking is vereist als deze klok niet is afgeleid.

Hier is een voorbeeld:

create_clock -period 6.4 [get_ports ref_clk_0_p]

create_clock -period 5.0 [get_ports apb3clk_quad]

create_clock -period 5.0 [get_ports apb3clk_bridge]

Regelaar resetten

Versal GTY/GTYP bevat een master reset-controller in de Quad-instantie. Eerder in UltraScale+ GTY resette de reset-statusmachine in de GTY-transceiver alleen het TX-kanaal of RX-kanaal, en het reset-helperblok in de wizard voegde de volgorde toe met PLL-resets.

De master reset-controller van Versal GTY/GTYP doorloopt automatisch de reset van de LCPLL, RPLL, ILO, TX programmeerbare verdeler, RX programmeerbare verdeler, TX-kanaal en RX-kanaal. Standaard wordt de master reset-controller gebruikt en deze wordt ingesteld door de Hoofdreset inschakelen selectie in de GUI.

De bridge_ip bevat een reset-FSM die verschillende reset-dekking biedt. De poortnamen en hun functies zijn vergelijkbaar met UltraScale+ GTY.

  • gtreset_in: reset de PLL's en actieve gegevensrichtingen van zendontvanger-primitieven
  • reset_tx_pll_en_datapath_in: reset de TX en de bijbehorende PLL's
  • reset_rx_pll_en_datapath_in reset de RX en de bijbehorende PLL's
  • reset_tx_datapath_in: reset de TX
  • reset_rx_datapath_in: reset de RX

roym_8-1627949889904.png

  • De APB3-specificatie lijkt erg op onze voormalige DRP-interfacespecificatie. Er zijn online bronnen die de APB3-interfacespecificatie en het protocol beschrijven. In het onderstaande voorbeeld is een RTL-bron voorzien die het protocol en de interface zal afhandelen. Het adres en de gegevens kunnen eenvoudig worden verstrekt met een VIO zoals hieronder weergegeven.

roym_9-1627949889970.png

Om gegevens te schrijven, plaatst u het adres en de gegevens op VIO 1-uitgangspoorten 3 en 4 en pulseert u vervolgens de VIO 1-schrijfpoort 2. Om gegevens te lezen, plaatst u het adres op VIO-poort 3 en activeert u vervolgens de pulsactivering. De gegevens worden weergegeven op invoerpoort 0.

Het volledige ontwerp is hieronder weergegeven. Een tweede VIO-module wordt gebruikt om het ontwerp te resetten en te bewaken, meestal met een reset_tx_pll_and_datapath-reset gevolgd door een reset_rx_datapath. De linkstatus geeft in dit geval aan wanneer het ontwerp succesvol is uitgevoerd.

afbeeldingA.png

  • Als u het ontwerp via de ARM-processor wilt besturen, kan het onderstaande ontwerp worden gebruikt. Het vervangt de VIO-instanties door AXI_GPIO's gevolgd door x_slice-blokken. 
    In dit voorbeeld is de GT-interface via dezelfde APB3 RTL-module als hierboven, maar het is ook mogelijk om de AXI_APB3-brug te gebruiken. De bridge zorgt voor een eenvoudige Memory-mapped interface naar de GT. Bij aansturing vanuit de RTL is de APB3 de geprefereerde interface. Er is geen specifieke voorkeur tussen APB3 en AXI wanneer de ARM de driver is, maar APB3 lijkt de voorkeursinterface te zijn in onze Xilinx IP. Merk op dat APB3 gelijk is aan de DRP-poort van vorige generaties en om tariefwijzigingen in Versal uit te voeren, gebruikt u alleen de tariefpoort en worden de kenmerkwijzigingen automatisch uitgevoerd, zodat de APB3-bus niet zou worden gebruikt.

procToApb.PNG

Het bovenstaande ontwerp maakt gebruik van de hieronder getoonde geheugenkaart.

GPIOmap.PNG

De xslice_4 setup voor het resetten van het TX datapad en PLL wordt hier getoond:

roym_12-1627949889773.png

Dus, gecombineerd met de geheugenkaart hierboven, is de code voor het resetten van het TX-datapad en PLL en het lezen van de GT-statusbits als volgt:

roym_13-1627949889782.png

Om de AXI-bus op de GT te gebruiken in plaats van de APB3:

1. Voeg een processor toe aan het bordontwerp. Dubbelklik erop en klik op volgende.

2. Klik op PS PMC

PSPmc.png

3. Kies klokken en voeg een 100 Mhz stoffen klok toe

KlokSelect.PNG

4. Kies PS PL-interfaces en selecteer een master AXI-interface

AXIsetup.PNG

Klik op voltooien. Dit zou u de onderstaande adreskaart moeten geven.

VoegMap.PNG toe

Het volledige ontwerp is hieronder weergegeven.

AxiDesign PNG

De onderstaande code geeft toegang tot de TX- en RX-uitgangsverdelers en verandert een 5 Gbps-ontwerp in 2.5 Gbps. (andere attribuutwijzigingen kunnen nodig zijn, maar dit verandert het 0x0CA0-adres. Je hebt de verschuiving van het 0x0CA0 APB3-adres uit de Architectuurhandleiding nog 2 plaatsen over om het AXI-adres te krijgen.

CodeC.PNG

De IBERT-haken zijn ingebouwd in alle Versal-ontwerpen die GT's bevatten.

roym_14-1627949889783.png

Om de IBERT te gebruiken, klikt u eenvoudig op "links maken" en de functionaliteit vanaf daar lijkt erg op de UltraScale+ IBERT. 

In het onderstaande voorbeeld heb ik ervoor gekozen om 2 links te maken en deze in te stellen voor interne loopback.

roym_15-1627949889784.png

Om BER-statistieken te zien, moet u PRBS-gegevens selecteren:

roym_16-1627949889786.png

Als dat is gebeurd, ziet u de link en BER.

roym_17-1627949889926.png

Voer seriële I/O-scans normaal uit.

Xilinx-documentatie is georganiseerd rond een reeks gebruikersontwerpprocessen om u te helpen relevante inhoud voor uw ontwerpbehoeften te vinden.

Bezoek deze Design Process Hubs voor volledige informatie met betrekking tot uw ontwerpproces:

RTL Flow.PNG

PlatoAi. Web3 opnieuw uitgevonden. Gegevensintelligentie versterkt.
Klik hier om toegang te krijgen.

Bron: https://forums.xilinx.com/t5/Design-and-Debug-Techniques-Blog/Differences-Designing-with-UltraScale-GTY-and-Versal-GTY-GTYP/ba-p/1271972

spot_img

Laatste intelligentie

spot_img