uw eerste VHDL programma aanmaken: Hello World!

wanneer ik een nieuwe programmeertaal leer, begin ik graag met het leren afdrukken. Wanneer je meester outputing “Hello World!”, Weet je dat de omgeving werkt. Het toont je ook het basis skelet van de taal, de minimale code die nodig is om een output te produceren.

u zou kunnen denken: maar VHDL is een hardware description language, Hoe kan het enige tekst produceren? Je zou een scherm nodig hebben dat verbonden is met een FPGA of zoiets en allerlei logica daartussen, en dat zou helemaal niet eenvoudig zijn. Hoewel dit allemaal waar is, laten we FPGA ’s en ASIC’ s even vergeten en onze aandacht richten op de VHDL-taal.

deze blogpost maakt deel uit van de basisreeks VHDL-Tutorials.

VHDL kan worden beschouwd als een parallelle programmeertaal, en daarom kunnen we deze programmeur aanpak gebruiken om het te leren. Aangezien we de taal gebruiken om digitale circuits te beschrijven, is de enige manier waarop we het op onze computer kunnen uitvoeren met behulp van een simulator, en de simulator is zeker in staat om “Hello World!”naar het scherm.

gratis een VHDL-simulator en editor installeren

oefening

deze video-tutorial laat u zien hoe u uw allereerste VHDL-programma maakt:

de uiteindelijke code die we hebben aangemaakt:

entity T01_HelloWorldTb isend entity;architecture sim of T01_HelloWorldTb isbegin process is begin report "Hello World!"; wait; end process;end architecture;

de uitvoer naar de simulator console toen we op de knop Uitvoeren in ModelSim:

VSIM 2> run# ** Note: Hello World!# Time: 0 ns Iteration: 0 Instance: /t01_helloworld

analyse

op de eerste twee regels hebben we de entiteit aangegeven. De entiteit van een module verklaart zijn in-en uitgangen. Om het mogelijk te maken om een module in een simulator te draaien, kan deze geen in-of uitgangen hebben. Daarom heeft onze module niets anders dan een lege entiteitsverklaring.

vervolgens hebben we de architectuur van de module gedeclareerd. Terwijl de entiteit de interface van een module naar de buitenwereld is, is de architectuur de interne implementatie. Een module kan meerdere architecturen hebben die met dezelfde entiteit kunnen worden gebruikt. Ik zou niet te veel zorgen te maken over deze dingen op dit punt als ze zijn geavanceerde VHDL-functies.

binnen de architectuur hebben we een proces gedeclareerd. Voor nu kunnen we een proces zien als een draad in ons programma, waar dingen opeenvolgend gebeuren.

binnen het proces drukken we “Hello World!”met behulp van het report sleutelwoord. Op de volgende regel is er een enkele wait;. Als de simulator deze lijn raakt, gebeurt er niets meer. Het proces zal hier eeuwig wachten.

toen we dit ontwerp simuleerden in ModelSim, konden we zien dat ” Hello World!”werd afgedrukt op de console uitgang. Daarna gebeurde er niets meer.

krijg exclusieve toegang tot oefeningen en Antwoorden!

Afhaalmaaltijd

  • u kunt een proces zien als een programmadread
  • het report statement drukt tekst af naar de simulatorconsole
  • het uitvoeren van een proces zal eeuwig wachten op een wait; statement

Ga naar de volgende tutorial “

Leave a Reply

Het e-mailadres wordt niet gepubliceerd.