Stap 3: VM 2.0: uw eerste Verilog-Project
Hoewel u nauwelijks blootgesteld aan Verilog, ik voel me dat best leert u door het recht springen in het zwembad van HDL. Maar maak je geen zorgen, we zullen door alle code samen en ik zal er zeker uit te leggen waarom en hoe dingen werken. Ik leerde de harde manier dat Verilog bouwt op zich zeer snel voort, dus het betaamt je een solide basis van begrip.
Opmerking: Ondanks hoe gemakkelijk het is om te kopiëren en plakken van de code, adviseer ik hoogst dat u typt alles opnieuw, zodat u het beter begrijpen. Probeer het; het werkt.
Voordat we beginnen, wil ik u bijzondere aandacht besteden aan de volgende kenmerken van mijn code:
• Hoofdlettergevoeligheid: Verilog is hoofdlettergevoelig! Trefwoorden moeten worden getypt met goede behuizing (kleine letters) en elke gebruiker met de naam inputs, outputs, of andere stukjes code moet altijd worden hierna aangeduid als zij eerst werden verklaard.
• Inspringing: Hoewel niet als herkenbaar in het volgende voorbeeld, inspringing is een grote deal in Verilog (zoals bij veel andere programmeertalen). Hoewel de compiler en de softwaresuite met slecht opgemaakte code werken zal, is het slecht stijl niet regels na te leven inspringen (die later zal worden verklaard).
Dus zonder dralen is hier, naar mijn mening, het equivalent van het "Hello, World" in Verilog:
----------------------------------------------------
' tijdschaal 1ns / ps
Dit is een opmerking in Verilog
module hello_world)
input schakelaar [0],
input schakelaar [1],
uitvoer geleid
);
toewijzen leidde switch [0] = & ~ switch [1];
endmodule
------------------------------------------------------
Nu, dit is niet de meest efficiënte uitvoering van de module. Laten we gaan kijken naar de code stukje bij beetje en zie als u kunt vinden hoe u het zou kunnen verbeteren.