Verilog is een Hardware Beschrijving Taal (HDL). Het is een taal die wordt gebruikt voor het beschrijven van een digitaal systeem, zoals een netwerkswitch, een microprocessor, een geheugen of een flip-flop. We kunnen elke digitale hardware beschrijven door HDL op elk niveau te gebruiken. Ontwerpen beschreven in HDL zijn onafhankelijk van de technologie, zeer gemakkelijk te ontwerpen en te debuggen, en zijn normaal gesproken nuttiger dan schema's, vooral voor grote circuits.
Wat is Verilog?
Verilog is een HARDWARE DESCRIPTION LANGUAGE (HDL), die wordt gebruikt om een digitaal systeem te beschrijven, zoals een netwerkswitch of een microprocessor, of een geheugen, een flip-flop.
Verilog is ontwikkeld om het proces te vereenvoudigen en de HDL robuuster en flexibeler te maken. Tegenwoordig is Verilog de meest populaire HDL die in de halfgeleiderindustrie wordt gebruikt en toegepast.
HDL is ontwikkeld om het ontwerpproces te verbeteren door ingenieurs in staat te stellen de functionaliteit van de gewenste hardware te beschrijven en automatiseringstools dat gedrag te laten omzetten in daadwerkelijke hardware-elementen zoals combinatiepoorten en sequentiële logica.
Verilog is net als elke andere hardwarebeschrijvingstaal. Het stelt de ontwerpers in staat de ontwerpen te ontwerpen in de Bottom-up- of Top-down-methodologie.
Verilog-abstractieniveaus
Verilog ondersteunt een ontwerp op vele abstractieniveaus, zoals:
- Gedragsniveau
- Register-overdrachtsniveau
- Poortniveau
Gedragsniveau
Het gedragsniveau beschrijft een systeem door gelijktijdige gedragsalgoritmen. Elk algoritme is sequentieel, wat betekent dat het bestaat uit een reeks uitgevoerde instructies één voor één. Functies, taken en blokken zijn de belangrijkste elementen. Er wordt geen rekening gehouden met de structurele realisatie van het ontwerp.
Register-overdrachtsniveau
Ontwerpen die het registeroverdrachtsniveau gebruiken, specificeren de kenmerken van een circuit met behulp van bewerkingen en de overdracht van gegevens tussen de registers.
De moderne definitie van een RTL-code is: 'Elke code die kan worden gesynthetiseerd, wordt RTL-code genoemd'.
Poortniveau
De kenmerken van een systeem worden beschreven door logische koppelingen en hun timingeigenschappen binnen het logische niveau. Alle signalen zijn discrete signalen. Ze kunnen alleen bepaalde logische waarden hebben (`0', `1', `X', `Z`).
De bruikbare bewerkingen zijn vooraf gedefinieerde logische primitieven (basispoorten). Modellering op poortniveau is misschien niet het juiste idee voor logisch ontwerp. Code op poortniveau wordt gegenereerd met behulp van tools zoals synthesetools, en zijn netlijst wordt gebruikt voor simulatie op poortniveau en backend.
Geschiedenis van Verilog
- De geschiedenis van Verilog HDL gaat terug tot de jaren tachtig, toen een bedrijf genaamd Gateway Design Automation een logische simulator, Verilog-XL, en een hardwarebeschrijvingstaal ontwikkelde.
- Cadence Design Systems verwierf Gateway in 1989 en daarmee de rechten op de taal en de simulator. In 1990 plaatste Cadence de taal in het publieke domein, met de bedoeling dat het een standaard, niet-gepatenteerde taal zou worden.
- De Verilog HDL wordt nu onderhouden door een non-profitorganisatie, Accellera, ontstaan uit de fusie van Open Verilog International (OVI) en VHDL International. OVI had de taak om de taal door de IEEE-standaardisatieprocedure te leiden.
- In december 1995 werd Verilog HDL IEEE Std. 1364-1995. In 2001 werd een aanzienlijk herziene versie gepubliceerd: IEEE Std. 1364-2001. In 2005 vond er nog een herziening plaats, maar deze bracht slechts enkele kleine wijzigingen met zich mee.
- Accellera heeft ook een nieuwe standaard ontwikkeld, SystemVerilog, die Verilog uitbreidt.
- SystemVerilog werd in 2005 een IEEE-standaard (1800-2005).
Hoe is Verilog nuttig?
Verilog creëert een abstractieniveau dat helpt de details van de implementatie en technologie ervan te verbergen.
Een D-flip-flop-ontwerp zou bijvoorbeeld de kennis vereisen van hoe de transistors moeten worden gerangschikt om een door een positieve flank getriggerde FF te bereiken en wat de stijg-, daal- en CLK-Q-tijden nodig zijn om de waarde op een flop vast te zetten tussen veel andere technologiegerichte details.
Vermogensdissipatie, timing en de mogelijkheid om netten en andere flops aan te sturen zouden ook een grondiger begrip van de fysieke kenmerken van een transistor vereisen.
Verilog helpt ons om ons op het gedrag te concentreren en de rest later te regelen.
Vereisten
Voordat u Verilog leert, moet u een basiskennis hebben van de VLSI Design-taal.
- U moet weten hoe logische diagrammen werken, Booleaanse algebra, logische poorten, combinatie- en sequentiële circuits, operatoren, enz.
- U moet op de hoogte zijn van concepten van statische timinganalyse, zoals insteltijd, vasthoudtijd, kritisch pad, limieten op de klokfrequentie, enz.
- ASIC- en FPGA-basisprincipes en synthese- en simulatieconcepten.
Publiek
Onze Verilog-tutorial is bedoeld om beginners, ontwerpingenieurs en verificatie-ingenieurs te helpen die willen leren hoe ze digitale systemen in de Verilog HDL kunnen modelleren om automatische synthese mogelijk te maken. Aan het einde van deze tutorial heeft u een gemiddeld niveau van expertise in Verilog verworven.
Probleem
Wij verzekeren u dat u geen enkel probleem zult ondervinden met de Verilog-tutorial. Maar als er een fout is, stel dan de vraag in het contactformulier.