VHDL inleiding
Jan Genoe KHLim
VHDL Inleiding Jan Genoe KHLim
In dit hoofdstuk situeren we het steeds toenemende belang van VHDL in het elektronisch ontwerp.
1
VHDL inleiding
Jan Genoe KHLim
Doelstellingen en behandelde topics
• doelstelling: de voornaamste toepassingsgebieden van VHDL voorstellen • overzicht : – – – – –
Wat is VHDL? Plaats van VHDL in het elektronisch design Abstractie niveau Toepassing van VHDL Voordelen van VHDL
VHDL
Jan Genoe KHLim
We zullen in dit hoofdstuk schetsen wat VHDL is, waarom we gaan gebruik maken van VHDL in een complex elektronisch ontwerp, hoe we aan de hand van VHDL kunnen werken met meerdere niveaus van abstractie. We zullen ook in detail schetsen wat de voordelen zijn van VHDL in vergelijking van de andere wijzen van elektronisch ontwerp. Globaal kunnen we het volgende stellen: in de digitale elektronica is het tijdperk van de hobbyist of de technicus die met zijn soldeerbout een aantal discrete componenten samenvoegt definitief voorbij. Een digitaal ontwerp heeft tegenwoordig zo'n grote complexiteit dat het op hoog niveau dient beschreven te worden en vervolgens automatisch vertaalt dient te worden naar de hardware. We hebben dus een goed middel nodig om hardware te beschrijven op hoog niveau. Dat middel blijkt VHDL te zijn.
2
VHDL inleiding
Jan Genoe KHLim
Wat is VHDL ?
• VHSIC Hardware Description Language – VHSIC = Very High Speed Integrated Circuit – Modelleren van DIGITALE elektronische systemen – Zowel concurrent and sequentiële statements
• Internationale standaard – IEEE Std 1076-1987 (eerste standaard) – IEEE Std 1076-1993 (update/extra uitbreiding)
• Duidelijk gedefinieerde taal – Geen standaard gegroeid uit een toepassing
• AHDL (analoog) is momenteel in een ontwikkelingsstadium
VHDL
Jan Genoe KHLim
VHDL is een taal die gebruikt wordt om digitale systemen te beschrijven. Het is dus iets volledig anders dan een programmeertaal, die dan achteraf uitgevoerd wordt op een processor. Deze taal werd voor het eerst vastgelegd door de IEEE (The Institute of electrical and electronics engineers) in 1987 en kreeg een eerste update en uitbreiding in 1993. Het is belangrijk dat deze taal onafhankelijk gedefinieerd werd en niet gegroeid is uit een toepassing van een fabrikant van ICs of van FPGAs. Indien dit laatste het geval zou geweest zijn, zou de taal ook sterk aanleunen bij de praktische implementatie van deze fabrikant. Dit was reeds duidelijk merkbaar bij vroegere hardwarebeschrijvingstalen. Een taal om analoge hardware te beschrijven is momenteel in ontwikkeling. Dit is echter heel wat minder voor de hand liggend. Het zal waarschijnlijk wel nog een hele tijd zo blijven dat analoge hardware zeer specifiek moet worden ontwikkeld.
3
VHDL inleiding
Jan Genoe KHLim
VHDL = 1 beschrijven, 2 simulatie en 3 synthese • Wat is Synthese? Synthese in het domein van digitale ontwerpen is het automatisch vertalen en het optimaliseren – Logische synthese » vertrekt van een struktuur beschrijving (meestal in VHDL) » vertaalt dit in Booleaanse vergelijkingen » optimaliseert deze dan in termen van • propagatie vertraging • chip oppervlakte
– Layout synthese » vertrekt van de netlist » vertaalt dit in een geoptimalizeerde “placement and routing” beschrijving
VHDL
Jan Genoe KHLim
Het doel van VHDL is drieledig: Het basisdoel van VHDL is een goede beschrijving te kunnen geven van de gewenste hardware, op het gewenste niveau. Hierbij kan men eenvoudig gebruikmaken van basisbouwblokken die vroeger reeds ontwikkeld waren. Als die hardware dan duidelijk beschreven is, kan men ook de goede werking op een eenvoudige wijze simuleren. Als die hardware dan duidelijk beschreven is kan die dan ook op een automatische wijze gerealiseerd worden. Dit laatste noemt men de synthese. De synthese kan gebeuren naar een IC, of naar een CPLD of naar een FPGA. De synthese bestaat gewoonlijk uit 2 stappen: 1. De logische synthese: De beschrijving wordt herwerkt naar Booleaanse vergelijkingen en geheugenelementen. Deze vergelijkingen worden eerst maximaal vereenvoudigd. Vervolgens worden ze herwerkt zodanig dat ze kunnen geïmplementeerd worden in de beschikbare hardware. 2. De layout-synthese vertrekt van de basis hardwareblokjes en de verbindingen tussen deze blokjes. Deze worden nu zodanig geschikt dat de lengte van de verbindingen ertussen minimaal is.
4
VHDL inleiding
Jan Genoe KHLim
Traditionele ontwerp methode
Tekenen van een schema
Controle van het functioneren en de timing
Layout
VHDL
Jan Genoe KHLim
Vroeger, in de traditionele ontwerp methode, werd er vertrokken van een schema. Dit schema werd vervolgens gecontroleerd en indien dit in orde was kon men een lay-out van het ontwerp maken. Na de lay-out werd het ontwerp nogmaals gecontroleerd en eventueel verbeterd.
5
VHDL inleiding
Jan Genoe KHLim
VHDL gebaseerde ontwerp methode ASIC VHDL
Functionele simulatie
Synthese
Timing verificatie
Layout VHDL
Jan Genoe KHLim
Wanneer het ontwerp vanuit VHDL gebeurt, is er op meerdere plaatsen een controle en dus ook een correctie mogelijk. Reeds na het schrijven van de VHDL code kan er een simulatie gebeuren, die echter nog geen rekening houdt met de hardware waarop het geheel zal gerealiseerd worden. Na deze functionele simulatie kunnen al een aantal conceptuele fouten uit het ontwerp gehaald worden. Wanneer een functionele simulatie volledig correct verloopt, kan men overgaan naar de synthese. Hierbij wordt het ontwerp gerealiseerd in concrete bouwblokjes. Mogelijk dient er hierna ook een aanpassing van de VHDL te gebeuren. Eenmaal dat we weten welke concrete bouwblokjes we gebruiken, kunnen we een eerste controle van de timing uitvoeren. Wanneer aan de vereiste timing niet voldaan is, moet ofwel het ontwerp aangepast worden, of moet de keuze van de component veranderen (snellere component). Vervolgens kunnen we de verschillende bouwblokjes gaan lay-out-en. Hier komt de vertraging van de verbindingen als bijkomende vertraging erbij. Dit vereist weer een nieuwe timing simulatie en eventueel correcties op het ontwerp.
6
VHDL inleiding
Jan Genoe KHLim
De verschillende abstractieniveaus
gedrag
f
RTL Logisch Layout
VHDL
Jan Genoe KHLim
Een digitaal ontwerp kunnen we beschrijven op verschillende niveaus: • Het hoogste niveau is een beschrijving op het niveau van het gedrag. We kunnen bijvoorbeeld een bouwblokje beschrijven dat de sinus uitrekent van het ingangssignaal. We hoeven hiervoor nog niet op te geven uit hoeveel bits het ingangsignaal bestaat en uit hoeveel bits het uitgangsignaal bestaat. • Het register transfer level (RTL) niveau beschrijft het gedrag op basis van bouwblokken, zoals een opteller, een multiplexer, een register, een vermenigvuldiger, ... Van elk signaal is het aantal bits gekend. • Het logisch niveau beschrijft de functie aan de hand van fundamentele poorten: and, or, nand, nor, exor, ... • Het lay-out niveau beschrijft het ontwerp op transistor niveau, of op het niveau van de meest eenvoudige bouwblok. In principe kan in VHDL een beschrijving gebeuren op elk van de vier niveaus. Meestal zullen we de hardware echter beschrijven op het RTL niveau en het synthese tool een vertaling laten maken naar het laagste niveau. Soms zal het nuttig zijn dit lager niveau eens te bekijken om een beter inzicht te krijgen in de werking. Waarom doen we geen beschrijving op het gedrag niveau en dan een automatische vertaling? Meestal zal het synthese tool dan veel te veel bits nemen om de getallen voor te stellen en zal de bekomen hardware veel te zwaar zijn.
7
VHDL inleiding
Jan Genoe KHLim
Simulatie op basis van Testbenches
• VHDL kan het circuit simuleren • Voordelen : FPGA, CPLD of ASIC
Testbench
– Gemeenschappelijke taal voor testen en ontwerpen – Vele mogelijkheden om testen te voorzien zijn geïmplementeerd – Tweewegs communicatie met het ontwerp
• Enorme mogelijkheden
VHDL
Jan Genoe KHLim
Wanneer we een VHDL code hebben voor een ontwerp kunnen we dit ontwerp testen. Hiervoor leggen we een aantal signalen aan aan de ingang en kijken we na of de uitgang doet wat we ervan verwachten. Dit gaat voor een eenvoudig ontwerp. Maar voor een ingewikkeld ontwerp, bijvoorbeeld een IC met 300 ingangspinnen, kunnen we moeilijk de correcte werking van deze IC nakijken door met de hand alle mogelijke combinaties van deze ingangen aan te leggen en na te kijken of de uitgangen wel doen wat ze zouden moeten doen. Daarom kunnen we in VHDL ook code schrijven om op een automatische manier alle nodige signalen aan de ingangen aan te leggen en alle uitgangen te vergelijken met de gewenste waarde. Deze code kan gebruikt worden tijdens de testfase van het ontwerp, maar diezelfde code kan ook tijdens de productie gebruikt worden om IC die van de band afkomen automatisch te testen.
8
VHDL inleiding
Jan Genoe KHLim
Voordelen van het gebruik van VHDL • Ontwerp op een hoger niveau – Ontdek de problemen sneller – Onderzoek de verschillende alternatieven
• Onafhankelijk van de implementatie
Hogere Kwaliteit Ontwerpen
– De mogelijkheid om op het laatste moment van implementatie te veranderen – Stel de beslissing tot implementatie uit
Complexere Ontwerpen Kortere Ontwerp Tijd
• Flexibiliteit – Hergebruik de geschreven code – Keuze van meerder ontwerppakketten en fabrikanten
• Taal gebaseerd – Sneller dan schematische invoer – eenvoudiger te beheersen
VHDL
Jan Genoe KHLim
Het belangrijkste voordeel van VHDL is dat het toelaat een ontwerp te realiseren op een veel hoger niveau. Hierdoor krijg je een veel beter zicht op de problemen en ook op de mogelijkheden. Het is ook belangrijk dat je de code kan gebruiken op verschillende componenten en dat je deze code later gemakkelijk kan hergebruiken. Een belangrijk voordeel is ook dat het taal gebaseerd is. Dit laat toe van sneller te werken, dat je werk ook eenvoudig door anderen kan gecontroleerd worden, laat toe van commentaar te schrijven bij de code ...
9
VHDL inleiding
Jan Genoe KHLim
Voordelen van het gebruik van VHDL (2) • prototyping
eerste producten
massaproductie
– Snel met een product op de markt door de realisatie in CPLDs of FPGA’s – zelfde code in een ASIC voor massaproductie
• Als een standaard gedefinieerd door IEEE • De VHDL beschrijving is bruikbaar als documentatie – Vereist door de US regering bij hardware levering – Vaak gebruikt door de industrie om hardware te beschrijven
• modellen van alle niveaus • Nieuwe ontwerp methodologie VHDL
Jan Genoe KHLim
VHDL kan zowel gebruikt worden voor FPGAs, CPLDs als ASIC. Dit laat u toe van zeer snel prototypes te maken van ICs. Hiermee ook zeer snel op de markt te komen, en daarna, voor de grote massaproductie, dezelfde code te hergebruiken in een ASIC.
10
VHDL inleiding
Jan Genoe KHLim
Schematisch invoer tegenover VHDL
• VHDL
VHDL
– Krachtige taal ... – Automatische synthese tot poort niveau – RTL is technologie onafhankelijk (normaalgezien) – Kan gemixed worden met schematische invoer – Debug cyclus (50% van de ontwerptijd) is verschillend » Sneller voor grotere ontwerpen » Testpatronen eenvoudiger op te leggen
• Schema’ s worden moeilijk te beheersen boven de 10000 poorten • Assembler in vergelijking met hoge niveau talen ...
VHDL
Jan Genoe KHLim
Het tekenen van draden tussen bouwblokken is eenvoudig als het schema eenvoudig is maar veronderstel eens dat er enorm veel componenten op een schema staan, hoe trek je dan vlot een lijn (via,via) van de ene kant naar de andere kant? Hoe ben je steeds zeker dat een verbinding wel gemaakt is? Ergens een open verbinding is moeilijk terug te vinden en de werking is dan heel anders. Als je een component ertussen staan hebt met 50 pinnen, hoe weet je dan wat met wat te verbinden? En hoe kijk je achteraf iets na als het schema op spaghetti lijkt. Als we de vergelijking met de software doortrekken kunnen we de schematische invoer vergelijken met het programmeren in assembler en het werken met VHDL met het gebruik van een hogere programmeertaal.
11
VHDL inleiding
Jan Genoe KHLim
PLD talen tegenover VHDL
• VHDL is een simuleer taal
VHDL
• VHDL heeft software stijl constructies (sequentiële statements) • VHDL heeft verfijnde data structuren • VHDL kan de timing beschrijven • VHDL is een standaard
CUPL ABEL Palasm
VHDL
• de syntaxis van een PLD taal is vaak meer gericht naar het definiëren van een gegeven hardware
Jan Genoe KHLim
Voor de definitie van VHDL hadden de meeste fabrikanten van CPLDs en FPGAs reeds hun eigen talen die konden gebruikt worden om hardware te synthetiseren. Enkele van de belangrijke nadelen hiervan zijn: • Deze taal kon alleen gebruikt worden om te werken met de eigen bouwblokjes • Simulatie was niet het eerste doel, soms kon de simulatie wel gebeuren na de synthese De fabrikanten verkozen vroeger natuurlijk ervoor dat de hardwareontwikkelaars gebruik maakten van hun eigen taal. Eens de ontwikkelaar deze taal geleerd had was de waarschijnlijkheid klein dat hij zou overstappen naar een concurrent. Bovendien liet het gebruik van een eigen taal geen directe vergelijking toe van de prestaties met de hardware van een concurrent. Gelukkig zijn alle fabrikanten het belang van een universele hardwarebeschrijvingstaal gaan inzien. Dit heeft als belangrijk voordeel dat een ontwikkelaar eerst de gehele hardware kan beschrijven in VHDL, deze simuleren en volledig testen en dan pas op zoek kan gaan naar de hardware die deze code kan realiseren aan de vereiste snelheid. Wanneer er de keuze is tussen meerdere componenten, speelt de concurrentie. In theorie kan de ontwikkeling volledig onafhankelijk gebeuren van de hardware. In de praktijk kan het soms nuttig zijn reeds rekening te houden met de gewenste hardware wanneer men het onderste uit de kan wil halen.
12
VHDL inleiding
Jan Genoe KHLim
Een strikte taal
• VHDL is een zeer strikte taal • Types en richting van signalen die verbonden worden moeten overeenstemmen • Alle objecten moeten gedeclareerd zijn voor ze kunnen gebruikt worden • etc, etc ... • Doel : vind fouten tijdens de compilatie, niet na 7 uur simuleren en testen • Ooit zul je dit zeer goed vinden!
VHDL
Jan Genoe KHLim
13
VHDL inleiding
Jan Genoe KHLim
VHLD synthese tools
• PC (32MB geheugen, 500MB beschikbare harddisk ruimte) – – – –
Viewlogic Workview Office for Windows NT/ 95 Altera Xlinix ...
• UNIX: – – – – – –
Synopsys Mentor Cadence Altera Xlinix ...
VHDL
Jan Genoe KHLim
Vroeger was het zo dat de synthese van VHDL code voor het maken van custom IC aan de hand van standaard cellen of de synthese van VHDL code naar een FPGA of CPLD gebeurde op een UNIX werkstation. Hiervoor zijn er heel wat krachtige ontwikkelomgevingen beschikbaar. Er zijn hierbij ontwikkelomgevingen die onafhankelijk zijn van merkgebonden hardware als hardwaregebonden omgevingen. De toenemende kracht van de gewone PC maakt dat deze ontwikkelomgevingen ook meer en meer terug te vinden zijn in de PC omgeving. De hardwaregebonden ontwikkelomgevingen zijn hier de voortrekkers, maar ook ontwikkelomgevingen die hiervan onafhankelijk zijn komen meer en meer voor (Bijvoorbeeld VERIBEST)
14
VHDL inleiding
Jan Genoe KHLim
Naslagwerken
• • • •
“VHDL for programmable logic”, Kevin Skahill “HDL Chip design”, Douglas J. Smith “Digital Design and modelling with VHDL and Synthesis”, K.C. Chang, 1997 “Digital system design and prototyping using field programmable logic”, Z. Salcic and A. Smailagic, 1997 • VHDL Language reference, IEEE press, 1994
VHDL
Jan Genoe KHLim
Er zijn enorm veel boeken beschikbaar over VHDL. Hierboven worden slechts enkele interessante naslagwerken vermeld. Het is ook belangrijk op te merken dat er ook enorm veel VHDL code beschikbaar is. Het is dikwijls handig en snel om gebruik te maken van code voor bouwblokken die reeds bestaan en deze VHDL code dan samen te zetten om zo een uiteindelijk ontwerp te bekomen.
15