Industriële fabricage
Industrieel internet der dingen | Industriële materialen | Onderhoud en reparatie van apparatuur | Industriële programmering |
home  MfgRobots >> Industriële fabricage >  >> Industrial programming >> VHDL

Beginnersgids voor het gebruik van Modelsim voor FPGA- en ASIC-simulatie

Tutorial – Modelsim gebruiken voor simulatie, voor beginners.

Modelsim is een programma gemaakt door Mentor Graphics dat wordt gebruikt voor het simuleren van uw VHDL- en Verilog-ontwerpen. Het is het meest gebruikte simulatieprogramma in het bedrijfsleven en het onderwijs. Deze tutorial legt eerst uit waarom simulatie belangrijk is en laat vervolgens zien hoe je de Modelsim Student Edition gratis kunt aanschaffen voor persoonlijk gebruik.

Simulatie is een cruciale stap bij het ontwerpen van FPGA's en ASIC's. Door simulatie kan de ontwerper zijn of haar ontwerp stimuleren en zien hoe de code die hij of zij heeft geschreven op de stimulus reageert. Een goede simulatie zal alle mogelijke stadia van het ontwerp oefenen om ervoor te zorgen dat alle invoerscenario's op de juiste manier worden afgehandeld. Ben je ergens een if-statement vergeten? Heeft u eraan gedacht om elke mogelijke casusopdracht te geven? Dit zijn het soort fouten die heel gemakkelijk te maken zijn als u uw ontwerp niet simuleert. Laten we beginnen.

Heeft u Modelsim gedownload en geïnstalleerd op uw computer? Haal het hier. Voer de installatie uit met de standaardparameters. Houd er rekening mee dat u een licentie moet aanvragen bij Mentor Graphics . Aan het einde van de installatie moet u Voltooien selecteren. Er wordt een browservenster geopend met het licentieaanvraagformulier. Het klikken op een bestaande licentieaanvraaglink vanuit uw browserbladwijzer of vanuit een link die op internet is geplaatst, zal niet werken.

De code die we gaan simuleren is het onderstaande VHDL-ontwerp. De daadwerkelijke code is niet belangrijk, dus als je Verilog leert, is dat prima! U hoeft VHDL niet te kennen voor deze zelfstudie. De VHDL-code creëert een eenvoudige And Gate en levert er enkele invoer aan via een testbank. Kopieer de onderstaande code naar and_gate.vhd en de testbench naar and_gate_tb.vhd.

en_gate.vhd:

library ieee;
use ieee.std_logic_1164.all;
entity and_gate is
 port (
 input_1 : in std_logic;
 input_2 : in std_logic;
 and_result : out std_logic
 );
end and_gate;
architecture rtl of and_gate is
 signal and_gate : std_logic;
begin
 and_gate <= input_1 and input_2;
 and_result <= and_gate;
end rtl;

and_gate_tb.vhd:

library ieee;
use ieee.std_logic_1164.all;
entity and_gate_tb is
end and_gate_tb;
architecture behave of and_gate_tb is
 signal r_SIG1 : std_logic := '0';
 signal r_SIG2 : std_logic := '0';
 signal w_RESULT : std_logic;
 
 component and_gate is
 port (
 input_1 : in std_logic;
 input_2 : in std_logic;
 and_result : out std_logic);
 end component and_gate;
 
begin
 
 and_gate_INST : and_gate
 port map (
 input_1 => r_SIG1,
 input_2 => r_SIG2,
 and_result => w_RESULT
 );
 process is
 begin
 r_SIG1 <= '0';
 r_SIG2 <= '0';
 wait for 10 ns;
 r_SIG1 <= '0';
 r_SIG2 <= '1';
 wait for 10 ns;
 r_SIG1 <= '1';
 r_SIG2 <= '0';
 wait for 10 ns;
 r_SIG1 <= '1';
 r_SIG2 <= '1';
 wait for 10 ns; 
 end process;
 
end behave;

Laten we Modelsim openen. U wordt begroet met een venster dat er zo uitziet

Modelsim-hoofdvenster

Om uw simulatie uit te voeren, moet u een project maken. Klik op Bestand -> Nieuw -> Project. U ziet het venster aan de linkerkant. Kies een locatie voor uw nieuwe project en geef het de naam and_gate. Projecten in Modelsim hebben de bestandsextensie .prj. Laat de overige instellingen op hun standaard staan. Dit betekent alleen dat alle code in de bibliotheek “werk” zal worden gecompileerd.

Klik op Bestaand bestand toevoegen zoals weergegeven in de afbeelding rechts. Navigeer naar de locatie waar u and_gate.vhd en and_gate_tb.vhd hebt gedownload en voeg beide toe aan uw project. Houd andere instellingen op hun standaardwaarde. Klik op OK als u klaar bent.

Modelsim-projectvenster – Bestanden toegevoegd aan project

Merk nu op dat de bestanden met succes aan uw project zijn toegevoegd. Zie je die twee blauwe vraagtekens in het Modelsim-projectvenster hierboven? Dat betekent dat Modelsim de bestanden nog niet heeft samengesteld. U moet de bronbestanden compileren. Om dit te doen, klikt u met de rechtermuisknop op and_gate.vhd, klikt u op Compile en vervolgens op Alles compileren. Je zou berichten in het consolevenster in het groen moeten zien verschijnen dat het compileren succesvol was, zoals weergegeven in de onderstaande schermafbeelding.

Resultaten van een succesvolle compilatie

Om uw simulatie te starten, klikt u op Simuleren in de menubalk en vervolgens op Simulatie starten. Hierdoor wordt het venster Simulatie starten geopend. Klik op het plusteken naast werk en klik vervolgens op het plusteken naast and_gate_tb. Zorg ervoor dat u and_gate_tb selecteert en niet and_gate, omdat we het ontwerp op testbankniveau willen simuleren. Zodra and_gate_tb is gemarkeerd, klikt u op OK.

Modelsim-simulatievenster – Simulatie gereed

Bijna daar! De simulatie is klaar en wacht. Nu besteedt u het grootste deel van de tijd dat u Modelsim gebruikt aan het kijken naar de golfvormweergave. De golfvormweergave bevat golven (binaire nullen en enen, hexadecimale cijfers, binaire cijfers, opgesomde typen, enz.) voor alle signalen in uw ontwerp. Het laat zien hoe uw module reageert op verschillende prikkels. De volgende afbeelding laat zien hoe uw golfvormweergave eruit ziet, maar eerst moet u enkele signalen toevoegen om te monitoren. In dit voorbeeld monitoren we alle signalen in de testbank. Om dit te doen, klik je met de rechtermuisknop op and_gate_tb in het simvenster en klik op Wave toevoegen . U kunt ook vanuit andere vensters in Modelsim signalen naar het golfvormvenster klikken en slepen.

Hier is uw golfvormvenster. Alle testbanksignalen zijn toegevoegd als signalen die u kunt monitoren. Om de simulatie uit te voeren, klikt u op het pictogram met een klein stukje papier en een pijl naar beneden naast de 100 ns-tijd. Hiermee wordt uw simulatie gedurende 100 nanoseconden uitgevoerd. Kijk hoe de signalen veranderen! Gefeliciteerd! Je hebt je eerste Modelsim-simulatie gemaakt!

Deze tutorial liet u zien hoe u uw eigen project in Modelsim kunt maken, bestanden aan uw project kunt toevoegen, uw bronbestanden kunt compileren, uw simulatie kunt starten en uw golfvormen kunt bekijken. U bent klaar om alle voorbeelden op deze webpagina te verkennen en de simulaties zelf uit te voeren. Gebruik de zijbalk bovenaan de pagina voor navigatie.


VHDL

  1. Voorbeeld van verklaring debouncer genereren
  2. Hoe maak je een Tcl-gestuurde testbench voor een VHDL-codeslotmodule?
  3. Aan de slag met VUnit
  4. Hoe Quartus Prime IP-bibliotheken aan VUnit te koppelen
  5. Een PWM-controller maken in VHDL
  6. Simulatie stoppen in een VHDL-testbench
  7. Geïntegreerde Logic Analyzer (ILA) en virtuele invoer/uitvoer (VIO) gebruiken
  8. Een gekoppelde lijst maken in VHDL
  9. Hoe de tijd in VHDL te vertragen:Wacht op
  10. Formele verificatie in VHDL met PSL
  11. Beginnersgids voor het gebruik van Modelsim voor FPGA- en ASIC-simulatie