Na een pauze, omdat ik met andere projecten bezig was, is het tijd voor een nieuwe impuls aan dit project.
Recap: Het grote struikelblok van het vorige ontwerp was de FPGA zelf. Ik had niet gerealiseerd dat de hagelnieuwe Intel Cyclone 10 LP eigenlijk een oude Altera Cyclone III/IV was. Dit verteld niemand, totdat Quartus de JTAG ID laat zien. De limieten van deze relatief oude FPGA zijn de Fmax, en het gebrek aan geheugen.
200MHz was zo´n beetje het maximum waarop mijn FPGA betrouwbaar wilde werken. Niet niet zo´n erg probleem, maar door het gebrek aan onchip geheugen moest ik mijn ontwerp uitvoeren met een externe geheugenchip. De ZBT SRAM was weliswaar op papier geschikt voor 200MHz (1 cycle lees, 1 cycle schrijf op 100MHz naar de FT601 toe), in de praktijk bleek het geheel betrouwbaar te werken tot 100MHz.
Wat ook een leermoment was: De Signaltap functionaliteit die je in de chip kunt inbakken, bleek mijn ontwerp negatief te beïnvloeden. Een betrouwbare datatransfer op mijn USB bus bleek kapot te gaat doordat ik met de Signaltap erop wilde proben.
Eruit dus met die Cyclone 10LP. Nu ben ik niet per sé tegen Cyclone 10's, want de versie met de gigabit transceivers ingebakken ziet er machtig mooi uit. Maar ik stap over naar een Cyclone V. Ik heb al eerder mijn USB3 ontwerp mogen uitproberen met een Terasic C5G board, dus ik ben bekend met de mogelijkheden van een Cyclone V. Uitgekomen op een 5CEBA5F23C8N. Ook een FBGA484 met 1mm pitch. Toch zitten er wat boa constrictors onder het gras, vergeleken met het vorige ontwerp:
- De Cyclone V is te krijgen met allerlei extra opties, zoals een ARM HPS core en High Speed Serial Interfaces (HSSI's) Mijn FPGA heeft dat niet, en dus zijn die pinnen (wait for it...) No Connect geworden. Dank je!
- Doordat ik een maximale upgrade mogelijkheid wil behouden, valt de I/O bank van de HPS core ook weg. Ik heb nog 224 I/O's over. Maar goed dat die geheugenchip weg is.
- De I/O's die ik over heb zitten voornamelijk aan de binnenkant van de chip, en niet mooi aan de buitenkant zoals bij mijn Cyclone 10. Minder makkelijke fanout betekend -> meer print lagen.
- De Cyclone 10 werkte nog met 1.2V core voltage, waardoor ik LM2852's kon gebruiken, de nieuwe Cyclone V werkt met 1.1V core voltage, en die is niet te krijgen in LM2852. De voeding moet dus op de schop.
Om te beginnen met de voeding. Ik moet een high efficiency buck conversie hebben vanaf 5V naar 3.3V, 2.5V en 1.1V. Het moet redelijk klein zijn om op mijn print te passen, dus een hoge switching frequency is ook gewenst. Via de design guide van mijn C5G development board kwam ik uit bij de LTC3569. uitgangen van 1x 1.2A en 2x 600mA was vrijwel ideaal voor mij. Het 1.2A kanaal gaat dan naar de 1.1V, de twee andere kanalen komen op de 3.3V en 2.5V. En dat alles met een efficiency van boven de 90%. Netjes!
Vanwege de minder gunstige fanout op mijn FPGA kom ik niet meer met mijn reguliere 4 laags PCB uit. Geloof me, ik heb het geprobeerd. Mogelijkheden voor mij zijn:
- 6 laags PCB
- Blind/buried via's
- HDI lagen
Na het overwegen van de kosten heb ik heel snel voor een 6 laags PCB gekozen. Dit was de enigste optie die betaalbaar was!
Mijn pin planner, alleen de vierkant/zeskant/ronde pinnen kan ik gebruiken!
Afgezien van de FPGA zelf kan ik nagenoeg alle componenten hergebruiken op mijn nieuw ontwerp. De voltage translators, clamping diodes, USB interface, Configuratie Flash, alles zet ik over.