Begin met het ontwerpen van circuits met Verilog

Openbaarmaking: Uw steun helpt de site draaiende te houden! We verdienen een verwijzingsvergoeding voor sommige van de services die we op deze pagina aanbevelen.


Verilog is een hardwarebeschrijvingstaal (HDL). Dit lijkt op een programmeertaal, maar niet helemaal hetzelfde. Terwijl een programmeertaal wordt gebruikt om software te bouwen, wordt een hardwarebeschrijvingstaal gebruikt om het gedrag van digitale logische circuits te beschrijven. Dat wil zeggen dat een HDL wordt gebruikt om computerchips te ontwerpen: processors, CPU’s, moederborden en soortgelijke digitale circuits.

Verilog geschiedenis

Verilog was een van de eerste moderne HDL’s. Er waren verschillende eerdere HDL’s, die teruggaan tot de jaren zestig, maar deze waren relatief beperkt. Tot Verilog (en zijn naaste concurrent, VHDL), werd het meeste circuitontwerp voornamelijk met de hand gedaan, waarbij het gedrag dat werd gespecificeerd in een formele hardwarebeschrijvingstaal werd vertaald in opgestelde printplaatblauwdrukken.

Verilog is begin jaren tachtig begonnen als een eigen (gesloten bron) taal voor het simuleren van hardware – deels voor het uitvoeren van hardwareverificatiewerk. (De naam is een combinatie van “verificatie” en “logica”.) Het ontwerp bevatte ideeën van andere HDL’s (meestal HiLo) en ook van programmeertalen (meestal C). Toen mensen de taal eenmaal begonnen te gebruiken, was het duidelijk dat deze kon worden gebruikt om nieuwe hardware te ontwerpen. Dit vereiste het ontwerpen van hardware-synthesetools die de logica van een HDL-module konden vertalen naar een fysiek ontwerp.

In 1990 besloot het bedrijf dat Verilog (Cadence) bezat, om de taal te openen. Ze droegen de rechten over aan een nieuwe non-profitorganisatie genaamd Open Verilog International (die later fuseerde met de gelijkwaardige organisatie voor VHDL om Accellera te vormen). Hardwareleveranciers begonnen snel Verilog aan te passen en uit te breiden voor hun eigen doeleinden, waardoor tientallen enigszins incompatibele versies werden gecreëerd. OVI vroeg de IEEE om de taal te standaardiseren, wat ze in 1995 deed. IEEE blijft de gezaghebbende normeringsinstantie voor de Verilog-taal en Accellera is de belangrijkste motor voor taalontwikkeling.

Verilog is de afgelopen drie decennia veel veranderd. Voorafgaand aan standaardisatie introduceerde elke nieuwe versie van Cadence een groot aantal nieuwe functies. Sinds de standaard door de IEEE is ingevoerd, zijn er drie taalspecificaties geweest – de laatste in 2005.

De familie Verilog

Naast de kerntaal van Verilog zijn er twee belangrijke leden van de Verilog-familie.

  • SystemVerilogis een superset van Verilog die een volledige hardwareverificatietaal toevoegt.
  • Verilog-AMS is een afgeleide van Verilog die functies toevoegt voor het beschrijven van analoge en gemengde signaalsystemen.

Verilog-syntaxis en voorbeelden

De syntaxis en structuur van Verilog lijkt erg op C. Het grote verschil is dat het structuren en operators bevat voor het beschrijven van hardwarespecifieke details.

Sommige dingen zijn explicieter gemaakt in Verilog – propagatietijd en signaalsterkte bijvoorbeeld – die niet echt worden behandeld in talen zoals C.

Andere dingen zijn eigenlijk een beetje geabstraheerd – zoals flip-flops (waarbij de waarden van twee variabelen worden uitgewisseld) die in Verilog kunnen worden weergegeven zonder dat tijdelijke toewijzing aan ad-hocvariabelen nodig is. In het volgende voorbeeld worden de waarden in de x- en y-variabelen verwisseld:

beginnen
X <= y;
y <= x;
einde

Om u een beetje gevoel voor de taal te geven, volgen hier drie voorbeelden van hetzelfde multiplexproces. Deze combineren allemaal de signalen van twee ingangen tot een enkele uitgang.

Voorbeeld: continue toewijzing

draad uit;
toewijzen = sel? a: b;

Voorbeeld: procedure

reg out;
altijd @ (a of b of sel)
beginnen
zaak (sel)
1’b0: out = b;
1’b1: out = a;
eindkoffer
einde

Voorbeeld: If-Else

reg out;
altijd @ (a of b of sel)
als (sel)
out = a;
anders
out = b;

Het alwayskeyword vormt een oneindige lus. Wanneer de @ () – operator wordt toegevoegd, vindt één herhaling van de lus plaats wanneer de genoemde waarden veranderen.

Verilog-bronnen

Omdat Verilog geen traditionele programmeertaal voor software is, zijn bronnen meer gericht op boeken. Maar we hebben ook enkele van de beste online bronnen samengesteld.

Online bronnen

  • Tutorials
    • Verilog-zelfstudie van Asic World: de informatie is uitstekend, vooral voor degenen die een zelfstudie op instapniveau nodig hebben. Maar je zult het vreselijke ontwerp moeten negeren.
    • Verilog Primer: een kaal online boek met vier hoofdstukken dat probeert “alleen de feiten” over Verilog te geven. Heel goed om jezelf niet in de war te brengen.
    • Inleiding tot Verilog: een gratis cursus van negen hoofdstukken.
  • Hulpmiddelen
    • VeriPool: gratis softwaretools voor de ontwikkeling van Verilog.
    • Verilog Online Simulator: een gratis Verilog-tolk.

Boeken

In tegenstelling tot populaire softwareontwikkeltalen, zijn er gewoon niet zoveel online bronnen en tutorials voor Verilog. Als je de taal wilt leren, moet je een aantal fysieke boeken aanschaffen.

Inleidende boeken

Deze zijn voor mensen die net beginnen met het leren van Verilog.

  • Introductie tot Verilog: een van de betere “net aan de slag” -boeken die beschikbaar zijn.
  • Fundamentals of Digital Logic with Verilog Design: een inleiding op het onderwerp, geschreven en ontworpen als een leerboek voor een cursus op universitair niveau. Integreert CAD-software (computerondersteund ontwerp) voor het vertalen van Verilog naar fysiek circuitontwerp en documenteert hoe echte chips echt werken.
  • Verilog door een voorbeeld: een beknopte introductie voor FPGA-ontwerp: FPGA is Field Programmable Gate Array, een type geïntegreerd circuit dat na productie kan worden geprogrammeerd (en opnieuw geprogrammeerd). Dit combineert de snelheid van directe hardware-implementatie (zoals in een ASIC) met de flexibiliteit van softwareprogrammering. Verilog kan worden gebruikt om FPGA’s te programmeren (in feite, als je net begint, is de kans veel groter dat je je ontwerpen op een FPGA kunt implementeren dan op een ASIC, die op maat moet worden gemaakt). Dit boek biedt een solide introductie tot dit onderwerp.
  • Digital Design (Verilog): An Embedded Systems Approach Using Verilog: a another college-course textbook with inleidende informatie over Verilog, dit met de nadruk op het ontwerpen van embedded systemen (dat is waar u waarschijnlijk nieuwe FPGA-afbeeldingen moet ontwerpen in de echte wereld).
  • Digitaal ontwerp: met een inleiding tot de Verilog HDL
  • Digital Design en Verilog HDL Fundamentals
  • Verilog HDL-synthese, een praktische primer
  • SystemVerilog for Design Tweede editie: een gids voor het gebruik van SystemVerilog voor hardware-ontwerp en -modellering

Gevorderde en geavanceerde boeken

Boeken voor mensen die Verilog al kennen en hun vaardigheidsniveau willen verhogen.

  • Verilog en System Verilog Gotchas: 101 veelvoorkomende coderingsfouten en hoe ze te vermijden: een sterk aanbevolen boek voor gemiddelde Verilog-programmeurs die experts willen worden.
  • Verilog Designer’s Library: een soort Verilog-receptenboek voor werkende Verilog-ontwikkelaars.
  • Geavanceerd chipontwerp, praktische voorbeelden in Verilog: een van de meer recente toevoegingen aan de Verilog-canon, dit boek uit 2013 is een diepgaande blik op chipontwerp van een meester in het vak.
  • Digitale logica RTL & Vragen tijdens solliciteren bij Verilog

Boeken over System Verilog

  • The UVM Primer: A Step-by-Step Introduction to the Universal Verification Methodology
  • SystemVerilog for Verification: A Guide to Learning the Testbench Language Features
  • SystemVerilog-beweringen en functionele dekking: gids voor taal, methodologie en toepassingen

Alternatieven voor Verilog

Verilog is een van de twee meest gebruikte talen voor hardwarebeschrijving. De andere is VHDL. Bovendien kan C ++ ook worden gebruikt als HDL en HVL, maar meestal alleen voor gedragsontwerp op hoog niveau. De meeste serieuze hardware-ontwikkelaars spreken vloeiend alle drie, plus de belangrijkste low-level besturingssysteemtalen zoals C.

Jeffrey Wilson Administrator
Sorry! The Author has not filled his profile.
follow me
    Like this post? Please share to your friends:
    Adblock
    detector
    map