Ton den Bakker is senior hardwaredesigner bij Aimvalley. Hij heeft ruime expertise in het ontwerpen van analoge en digitale schakelingen die werken op snelheden variërend van 2 Mb/s tot 100 Gb/s. Pieter Hulshoff is systeemengineer bij het Hilversumse bedrijf. Hij heeft jarenlange ervaring als ontwerper van complexe asics en fpga’s, met als specialisatie encryptie.

25 March 2016

Ontwerpen voor 100G en hogere snelheden vereist echt andere expertise en een andere aanpak dan voor 1G of 10G. Zowel het pcb- als het fpga-design brengt de nodige specifieke uitdagingen met zich mee. Met de juiste aandacht en tools is het echter prima te doen, zo betogen Ton den Bakker en Pieter Hulshoff van Aimvalley.

De ontwikkelingen in de telecommarkt blijven snel gaan. Operators hebben hun 4g-netwerken nog niet opgeleverd of er wordt alweer gewerkt aan 5g. Nog hogere snelheden op mobieltjes, tot meer dan 1 Gb/s. Bij het vaste netwerk zien we dezelfde trend. Glasvezel doet gestaag zijn intrede in Nederland en maakt abonnementen mogelijk met snelheden tot wel 500 Mb/s; VDSL en de kabel bieden al datarates van meer dan 100 Mb/s. Met de toenemende vraag naar videodiensten als Youtube en Netflix is er ook steeds meer behoefte aan deze hoge snelheden.

Dit gaat allemaal niet vanzelf. Een hogere datasnelheid voor de eindgebruiker betekent dat het vaste netwerk ook meer data moet kunnen transporteren. De huidige verbindingen van 10 Gb/s zullen spoedig plaatsmaken voor verbindingen op 100 Gb/s. De grote datacentra van Google, Microsoft, Apple en Amazon passen deze datasnelheid al veel toe binnen en tussen de serverparken.

Het publieke telecomnetwerk haalt de hogere bitrate nu nog veelal door meerdere signalen tegelijkertijd door een glasvezel te sturen, elk met een eigen kleur (wavelength division multiplexing, wdm). We naderen echter het punt waar dit niet meer voldoende soelaas biedt. Ook hier zal 100 Gb/s (per kleur) spoedig zijn intrede doen.

Bij Aimvalley ontwikkelen we oplossingen voor telecom- en datacomtoepassingen. In onze zoektocht naar betaalbare ontwikkelmethodes in het 100 Gb/s-domein werken we aan een demonstratiebord waarmee we meer ervaring kunnen opdoen in zowel pcb- als fpga-ontwerp op 100 en zelfs 400 Gb/s. De fpga vervult een encryptiefunctie en is schaalbaar in snelheid tussen 10G en 400G. Voor het pcb-design ligt de uitdaging erin om een betaalbare oplossing te vinden zonder dure pcb-materialen en -technieken.

Aimvalley demonstratiebord 01
Aimvalley werkt aan een demonstratiebord om meer ervaring op te doen in zowel pcb- als fpga-ontwerp op 100 en zelfs 400 Gb/s.

De nodige training

100 Gb/s is niet via een enkele seriële verbinding over een pcb te sturen omdat bij hoge signaalsnelheden de verliezen op de printplaat te groot worden. De standaarden die de IEEE en het Optical Internetworking Forum (OIF) recentelijk hebben ontwikkeld voor 100G en 400G optische interfaces gaan dan ook uit van parallelle datastromen: tien keer 10 Gb/s, vier keer 25 Gb/s of zelfs zestien keer 25 Gb/s bij 400G ethernet of een optisch transportnetwerk. Verder is het gebruikelijk om forward error correction (fec) toe te passen. Hierbij voegen we extra bits toe waarmee we in beperkte mate bitfouten kunnen corrigeren. Nadeel is dat dit de snelheid verder verhoogt van 25 naar 28 Gb/s per transportverbinding. Deze signalen transporteren en routeren over pcb’s is een echte uitdaging.

Een traditioneel veelgebruikt programma voor de simulatie van een elektronisch circuit is Spice. Hiermee is het echter moeilijk om de fysieke omgeving van het circuit goed te beschrijven. Die omgeving wordt belangrijker naarmate de snelheid toeneemt. Frequentieafhankelijk gedrag van pcb-materiaal is goed te modelleren in Spice op basis van rekenkundige formules; de elektrische eigenschappen (zelfinductie, capaciteit, impedantie) van complexe driedimensionale structuren als via’s en connectoren zijn daarentegen lastig in formules te vatten, terwijl die van grote invloed zijn op de signaalkwaliteit. Ook het retourpad langs aardvlak, via’s en mogelijk stekers is belangrijk om te modelleren.

Onze ervaring is dat Spice bruikbaar is tot ongeveer 3 à 6 Gb/s. Door via’s en stekers te modelleren als lumped elements bestaande uit veel kleine elementen kunnen we dat oprekken tot 10 Gb/s. De resultaten zijn dan echter sterk afhankelijk zijn van de ervaring en het inzicht van de ontwerper. Het beschikbare ‘2,5d’-simulatiegereedschap is bovendien eveneens gebaseerd op Spice en kent dus dezelfde beperkingen.

Hoe kunnen we dan de stap maken naar 28 Gb/s? De traditionele simulatieomgeving moet op haar kop; we moeten de oplossing zoeken in het domein van de microgolfsimulatoren, die werken met zogeheten s-parameters en 3d-solvers voor elektromagnetische velden. Hiermee kunnen we 3d-modellen maken van via’s, stekers en transmissielijnen. Een voorbeeld van zo’n em-simulator is Mentor Hyperlynx 3D.

De omschakeling van Spice naar deze 3d-simulatie is geen sinecure en vereist de nodige training. De bouw van een demonstratiebord is een mooie gelegenheid om ervaring op te doen zonder projectdruk. Voor dit bord hebben we een redelijk eenvoudig concept gekozen. Het design is gebaseerd op een krachtige Xilinx Ultrascale-fpga met 100 Gb/s en 400 Gb/s links naar verschillende typen 100/400G optische modules. Verder is de fpga verbonden met een grote hoeveelheid ddr3-geheugen en een standaard processorbordje van computer-on-module-formaat. Om alles te koelen, is het bord voorzien van een paar stevige fans.

Aimvalley demonstratiebord 07

Onpraktisch lang

Bij het opzetten van de architectuur en het tekenen van het schema is de werkwijze nog redelijk standaard. Het echte verschil wordt merkbaar als we de printplaat ontwerpen. Daarbij maken we intensief gebruik van de 3d-simulator. Als eerste moeten we de stack-up-gegevens invoeren in de omgeving. Een goede keuze van pcb-materiaal, lagenstructuur en viatechnologie is essentieel; die bepaalt in belangrijke mate de uiteindelijke prijs van de print.

In nauwe samenwerking met de pcb-leverancier hebben we als basismateriaal gekozen voor Megtron 6 van Panasonic, vanwege de uitstekende hoogfrequent-eigenschappen. Dure technologiekeuzes als blind en buried via’s hebben we bewust vermeden en we hebben enkel through-hole via’s gebruikt. Zo kunnen we de kosten van de print met een factor drie reduceren.

Er kleeft wel een nadeel aan dit type via’s. Omdat de verbinding van de bovenkant van het bord naar de onderkant loopt, ontstaat er bij een aftakking naar een van de binnenlagen een ongebruikt eindstuk. Deze zogeheten stub verstoort het signaal zo veel dat de transmissie op hoge snelheid niet meer foutvrij is (zie kader).

Om vast te kunnen stellen of deze keuze toch de gewenste kwaliteit oplevert, hebben we een intensief iteratief proces gevolgd: parameter vaststellen, simuleren, parameter aanpassen, opnieuw simuleren, enzovoorts. Met back drilling hebben we de storende stubs van onderen uitgeboord. Bij dit alles is goede 3d-modellering een must.

Een ander belangrijk aandachtspunt is de impedantie van het transmissiepad. De 25/28 Gb/s verbindingen zijn differentieel uitgevoerd, dus als bundels van twee signalen met tegengestelde polariteit. In het gedrag zijn dit echter vooral twee losse signalen met elk een impedantie van 50 ohm. Omdat elke verandering in impedantie leidt tot een verstoring van het signaal, dienen transmissielijn, via’s en alle andere overgangen deze impedantie zo dicht mogelijk te benaderen. Hiervoor gebruiken we de 3d-simulator.

De complete 3d-structuur simuleren is echter niet haalbaar; door de complexiteit duurt dat onpraktisch lang. Daarom delen we de transmissielijn op in een aantal strategisch gekozen brokstukken, bijvoorbeeld viastructuur, connectorovergang, overgang van fpga naar pcb, en die simuleren we. De resultaten slaan we op als s-parameterfiles, die we vervolgens kunnen gebruiken om het geheel mee op te bouwen en te simuleren. Alles bij elkaar zeer tijdrovend, maar uitvoerbaar.

Aimvalley viastructuur
Twee sporen die via twee via’s van de bovenkant naar de onderste laag gaan en van daar verder. De hele mechanische structuur bepaalt de impedantie. Belangrijke parameters zijn de diameter van en de onderlinge afstand tussen de via’s, de afstand tot de andere lagen en de elektrische eigenschappen van de tussenliggende isolatorlagen.

Onverwachte hoek

We hebben ruime ervaring in chip- en fpga-ontwerp voor 1G- en 10G-toepassingen. Ook hebben we verschillende dsp-asics ontwikkeld voor 100G en zelfs multichip-switch-asics met een capaciteit van 4,8 Tb/s. Vooraf verwachtten we daarom weinig problemen bij het opschalen van 10G naar 100G en 400G, gebruikmakend van de nieuwste fpga-technologie. De praktijk viel echter tegen.

Een belangrijk probleem was de communicatie tussen de deelontwerpblokken. Deze maken gebruik van een Avalon- of AXI4-achtige busdefinitie, waarbij per klokslag data van één pakket kunnen worden afgehandeld. Waar dit bij een ontwerp op 10G geen enkel probleem is, levert dit bij opschaling naar 400G een onacceptabel bandbreedteverlies op tot wel 67 procent (zie kader ‘Bandbreedteverlies’). Om dit tegen te gaan, is het zaak om per klokslag data van meerdere pakketten tegelijk af te handelen. Dit heeft een flinke impact op de complexiteit van functies met terugkoppeling.

Bij functies zónder terugkoppeling staat de berekening van elke klokslag op zichzelf. Die zijn dus zonder moeite uit te smeren over de tijd (te pipelinen). Een voorbeeld is de classificatie van pakketten, waarbij we het pakkettype telkens kunnen vaststellen onafhankelijk van voorafgaande of volgende pakketten.

Bij functionaliteit mét terugkoppeling dient het resultaat van de vorige klokslag als input voor de berekening van de huidige klokslag. Een voorbeeld hiervan is het bepalen van de precieze pakketlengte. Deze lengte varieert tussen 64 en tienduizend bytes. Dit is normaal gesproken een eenvoudige functie, maar bij 400G over een databus van 256 bytes levert dit zeer diepe logica op.

Dit probleem kunnen we oplossen door eerst per klokslag de lengte te berekenen over de data van die klokslag, een waarde van 0 tot 256 bytes, en deze tussenresultaten op te slaan. Dit is een berekening zonder terugkoppeling en kan dus worden gepipelined. In het tweede deel van de berekening kunnen we de tussenresultaten vervolgens optellen om de pakketlengte te bepalen.

Deze methode van opdeling bracht uitkomst bij een probleem uit onverwachte hoek. Encryptie op 400G is op zich al een uitdaging, maar het invoegen van data in de datastroom bleek nog veel lastiger. Bij Macsec moeten we voor elk pakket een securityheader en een integrity check value toevoegen. Op 10G, met data van één pakket per klokslag, is dat geen probleem, maar op 400G, met data van vijf pakketten per klokslag, wordt dit een hele klus.

Bij designs voor deze hoge snelheden is het belangrijk om de regelmatige structuren in de berekeningen te identificeren: een enkel element kunnen we optimaliseren en de verschillende elementen kunnen we in serie plaatsen om dynamisch ontwerp mogelijk te maken. Als hierbij geen terugkoppeling nodig is, kunnen we deze elementen zelfs pipelinen. Zo kunnen we dezelfde code gebruiken voor encryptiesnelheden van 10 tot 400 Gb/s of zelfs hoger, simpelweg door enkele constanten te wijzigen.

Aimvalley demonstratiebord 04

Snel gevuld

Ook de synthese vraagt extra aandacht. De synthesetool gaat ervan uit dat de doorlooptijd van het signaal tussen twee registers voor zo’n vijftig procent wordt veroorzaakt door de logica en voor vijftig procent door de routering door de chip. Voor de 400G encryptieschakeling ligt dit anders: hierbij liggen de logische elementen zo ver uit elkaar dat de routering soms wel negentig procent van de doorlooptijd in beslag neemt. Zo ontstaan er tijdens de routeringsfase van de synthese vaak timingproblemen. Een gepipelinede berekening van bijvoorbeeld vijf lut’s verandert door synthese met retiming in een ontwerp van negen lut’s diep, met als gevolg dat de tool de routering niet meer kan realiseren.

Schakelingen op 100/400G vragen sowieso veel logische resources: een encryptiealgoritme op basis van 128 bit sleutels slokt op 400G al snel 25 procent van de logica op van de grootste fpga (ruim vijfhonderdduizend lut’s) en met 256 bit sleutels zelfs wel veertig procent. Voor een systeemtoepassing is dit blok nodig voor zowel encryptie als voor decryptie, en dus is de fpga snel gevuld. Een goede floor planning is dan onontbeerlijk: het is noodzakelijk om de fpga op te delen in regio’s, de blokken toe te wijzen aan een specifieke regio en af te bakenen met registers en de verbindingen tussen de blokken netjes af te handelen. Met behulp van deze methodes zijn ook ontwerpen op 400G of hoger te realiseren.