Booleaanse elementen en de verbindingen daartussen vormen de basis van elk digitaal ic (integrated circuit). Als die verbindingen niet vastliggen maar instelbaar zijn, is de functionaliteit van de chip dus herconfigureerbaar. Er zijn nu pld’s (programmable logic device) verkrijgbaar met miljoenen elementen.
Pld-architecturen Elke digitale schakeling is opgebouwd uit combinatorische logica en, voor de opslag van bits, verschillende soorten flip-flops. Beide bestaan op hun beurt weer uit booleaanse AND-, OR- of NOT-elementen of zelfs alleen NAND-poorten (NOT-AND). Het aantal van die poorten (‘gates’) is een ruwe maat voor de complexiteit van het ic, maar de functionaliteit wordt bepaald door de aanwezige verbindingen. In een normale chip liggen die vast, maar in een pld (programmable logic device) is een groot aantal wissels (‘switches’) aangebracht. Hierdoor kunnen verbindingen worden gemaakt of verwijderd en wordt het ic configureerbaar. Als die wissels in sram zijn uitgevoerd, is de functionaliteit zelfs als een bitstroom van een pc te downloaden of van een rom te booten, net als bijvoorbeeld systeemsoftware. Het verschil is dat bij een pld de schakeling zelf geconfigureerd wordt. Het ‘programma’ hiervoor kan op hoger niveau in een hdl (hardware description language) zijn geschreven. Er zijn ruwweg drie gangbare pld-architecturen met een oplopend niveau van complexiteit. De eenvoudigste wordt wel spld (simple programmable logic device) genoemd en bestaat uit een aantal lijnen die via NOT-, AND- en OR-poorten een combinatorische functie leveren die eventueel in een register kan worden opgeslagen. In een cpld (complex pld) zijn meerdere spld’s gecombineerd in logische blokken rondom een centraal gebied met ook weer programmeerbare connecties. In een fpga (field programmable gate array) tot slot zijn logische blokken en hun instelbare verbindingen omringd door aparte in/uitvoerblokken. Het aantal pinnen kan tot een paar honderd oplopen. Huidige fpga’s kunnen meerdere miljoenen poorten bevatten en hebben de capaciteit om een volledige cpu of dsp (digital signal processor) met perifere logica te implementeren. |
De zekeringen (‘fuses’) in de eerste generaties pld’s (programmable logic device) zijn vervangen door eprom- of eeprom-transistoren in de huidige cpld’s (complex programmable logic device) en sram-elementen of anti-fuse-transistoren in fpga’s (field programmable gate arrays). Indien sram-geheugenelementen als verbindingsschakel worden gebruikt, is de chip dynamisch herconfigureerbaar vanuit een boot-module of zelfs op afstand. Anti-fuse-verbindingen zijn slechts eenmalig in te stellen, maar blijven ook zonder voedingsspanning bestaan.
De volgende stap in de evolutie van pld’s was de toevoeging van opeenvolgende elementen (flip-flops) aan de combinatorische logica. Dit is goed mogelijk omdat ook deze componenten op basisniveau zijn opgebouwd uit booleaanse poorten. Vooral fpga’s bevatten grote aantallen flip-flops, uiteraard configureerbaar naar verschillende typen, en hiermee kan in een fpga vrijwel elke gewenste digitale schakeling worden geïmplementeerd. De complexiteit is slechts afhankelijk van het aantal basiselementen dat op de chip aanwezig is en dat volgt, net als de standaard-ic’s, de wet van Moore (impliceert voor elke 18 tot 24 maanden een verdubbeling van het aantal te plaatsen elementen bij gelijkblijvende prijs – red.). Hoe meer poorten er elk jaar weer op een chip geplaatst kunnen worden, des te minder belangrijk wordt het efficiëntieverlies door de programmeerbare interconnecties en des te aantrekkelijker wordt de fpga als vervanger van applicatiespecifieke ic’s.
Marktleiders
De omzet in dergelijke chips bedraagt wereldwijd 16 miljard dollar en zo’n 10 tot 15 procent daarvan komt momenteel voor rekening van pld’s. Geheel in overeenstemming met het cliché wordt de markt gedomineerd door twee in Silicon Valley gevestigde bedrijven die begin jaren tachtig zijn opgericht. Xilinx haalde in het fiscale jaar 2004 een omzet van 1,4 miljard dollar en Altera in 2003 (laatst bekende cijfers) 827 miljoen dollar.
Opmerkelijk is dat de huidige ceo en cto van Xilinx (respectievelijk Wim Roelandts en Ivo Bolsen) oorspronkelijk aan Belgische universiteiten zijn opgeleid en dat het hoofd van de cpld-groep Evert Wolsheimer van de TU Delft afkomstig is.
Toepassingen van pld’s liggen, zoals te verwachten, in embedded systemen in de ruimste zin. Xilinx meldt onder meer toepassingen in cellulaire basisstations van Ericsson en Motorola, apparatuur voor massaopslag van EMC, hoge-snelheidsservers van Sun, netwerkapparatuur van Cisco, maar ook digitale-videotechniek van Sony en producten van Gibson Guitar en Harman.
Pld’s van Altera zijn onder meer te vinden in optische communicatiesystemen van Alcatel, adsl wan interfacekaarten van Cisco, medische scanners van CTI PET, raid controllers van MEDEA, ‘content-aware network nodes’ van NEC, ‘ip access switches’ van Nortel, ‘dsp engines’ van Omega Technologies en een videobewerkingsplatform van Snell & Wilcox.
Het grote voordeel van het gebruik van herconfigureerbare logica boven asic’s (application specific integrated circuits) is de flexibiliteit. Vooral de telecommunicatie-industrie is sterk afhankelijk van standaarden die vaak moeizaam tot stand komen, veel later dan gepland worden goedgekeurd en vervolgens regelmatig weer enigszins veranderen. Aanpassen van een asic brengt dan grote nre-kosten (non recurrent engineering) met zich mee, terwijl een cpld of fpga eenvoudig en snel opnieuw geprogrammeerd kan worden. Bij een dynamisch herconfigureerbare chip kan dat zelfs op afstand gebeuren, bijvoorbeeld via het internet, met een minimale buitenbedrijfstelling van de toepassing. Het vervangen van een eenmalig programmeerbare pld is veel eenvoudiger dan van een vergelijkbare asic. Nadeel is wel een lagere efficiëntie en een hogere prijs bij grote aantallen, maar die verschillen worden steeds kleiner. Herconfigureerbare logica is dan ook duidelijk in opkomst voor embedded toepassingen.
Maatwerk
Zowel Xilinx als Altera zijn ‘fabless companies’ – de chips zelf worden in fabrieken van derden geproduceerd. Xilinx werkt hiervoor samen met IBM in de VS en UMC in Taiwan. De samenwerking met IBM gaat nog verder en verschillende Xilinx-ontwerpen zijn verkrijgbaar op IBM-chips. Anderzijds zijn IBM PowerPC-kernen ingebed in de Virtex-II Pro-familie van Xilinx fpga’s.
Altera heeft een bedrijfseigen risc (reduced instruction set computer) processorfamilie voor wat het bedrijf sopc (system on programmable chip) noemt. Deze Nios II embedded processor heeft een 32-bit instructieset en datapad en 2 GB adresseerbare adresruimte. Er is een eigen ide (integrated development environment) beschikbaar met een gnu-gebaseerde compiler. De Nios-familie is leverbaar in een snelle en een compacte versie en ook nog in een tussenvorm en er zijn 60 sopc-kernen voor perifere componenten, geheugens en i/o-interfaces. Bovendien heeft de processor tot 256 cpu-instructies die door de gebruiker gedefinieerd kunnen worden.
Het achterliggende principe is uiteraard dat de ontwerper snel en flexibel systemen op maat kan ontwikkelen die precies bevatten wat nodig is – niet meer en niet minder.
Voor de embedded-systeemontwerper betekent het toepassen van pld’s ook een paradigmaverschuiving.
Op het laagste niveau bestaat een hardwareontwerp nu uit een bitstroom in een bedrijfseigen formaat. Dit is dus software die net als ‘gewone’ software uit een hogere beschrijving is gegenereerd. Zo’n ontwerp kan een schema zijn in een visuele ontwerptool of een ‘programma’ in een hdl (hardware description language) als vhdl of verilog. Vhdl bijvoorbeeld kent ‘entity’- en ‘architecture’-blokken waarmee een digitale schakeling als een systeem van componenten vastgelegd kan worden en in samenhang daarmee een notatie voor de beschrijving van parallelle processen. Zowel vhdl als verilog zijn ieee-standaarden en er zijn ook talloze componentbibliotheken beschikbaar. Tussen hdl-beschrijvingen en uiteindelijk pld-formaat kan zich een keten van tools bevinden voor compilatie, optimalisering, routering en ook simulatie van het ontwerp. Behalve de pld-leveranciers zijn ook eda-huizen (electronic design automation) als Cadence, Synopsys en Mentor Graphics actief op dit gebied en er zijn zelfs open source tools beschikbaar.
Een chipontwerp voor een pld kan niet alleen gemakkelijk aangepast, maar ook gemakkelijk geïmplementeerd worden. Daardoor vervaagt ook de traditionele scheiding tussen hard- en software in embedded systemen.
Altera geeft als voorbeeld een ‘cyclic redundancy calculation’ op een 64 KB buffer. Dit kan door software worden uitgevoerd op de Nios-II-processor, maar ook 27 keer versneld door een specifiek ontworpen instructie op maat of 530 keer sneller door een als co-processor fungerende hardwareversneller. Met de SOPC Builder ontwerptool kan de ontwikkelaar van achter de pc dergelijke opties zelf invoeren en vervolgens ook in de praktijk testen. Xilinx biedt vergelijkbare tools en mogelijkheden.< BR>
Met dank aan account manager Jochen Schneider en field application manager Ronald Kiewiet van Silica te Breda