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

Beginner's guide: Modelsim gebruiken voor FPGA en ASIC-simulatie

Tutorial – Modelsim gebruiken voor simulatie, voor beginners

Modelsim is een programma ontwikkeld door Mentor Graphics voor het simuleren van uw VHDL- en Verilog-ontwerpen. Het is het meest gebruikte simulatieprogramma in bedrijven en onderwijs. Deze tutorial legt eerst uit waarom simulatie belangrijk is, en toont vervolgens hoe u Modelsim Student Edition gratis kunt verkrijgen voor persoonlijk gebruik.

Simulatie is een kritieke stap in het ontwerpen van FPGA's en ASIC's. Simulatie stelt de ontwerper in staat om zijn of haar ontwerp te stimuleren en te zien hoe de geschreven code reageert op de stimulus. Een goede simulatie oefent alle mogelijke toestanden van het ontwerp om te verzekeren dat alle invoerscenario's adequaat worden afgehandeld. Heeft u ergens een if-statement vergeten? Heeft u ervoor gezorgd dat elke mogelijke case-statement toewijzing is gedaan? Dit zijn typische fouten die gemakkelijk gemaakt worden wanneer u uw ontwerp niet simuleert. Laten we beginnen.

Heeft u Modelsim al gedownload en geïnstalleerd op uw computer? Download het hier. Voer de installatie uit met de standaardparameters. Let op dat u een licentie moet aanvragen bij Mentor Graphics. Aan het einde van de installatie moet u op Finish klikken en er opent een browservenster met het licentieaanvraagformulier. Het klikken op een bestaande licentieaanvraaglink vanuit uw browserboekjes of van een link die op het web staat, werkt niet.

De code die we gaan simuleren is het VHDL-ontwerp hieronder. De daadwerkelijke code is niet belangrijk, dus als u Verilog leert, is dat OK! U hoeft VHDL niet te kennen voor deze tutorial. De VHDL-code creëert een eenvoudige And Gate en voorziet deze van enkele ingangen via een testbench. Kopieer de onderstaande code naar and_gate.vhd en de testbench naar and_gate_tb.vhd.

and_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 als volgt uitziet:

Modelsim Hoofdvenster

Om uw simulatie te draaien, moet u een project aanmaken. Klik op File → New → Project. U ziet het venster dat links getoond wordt. Kies een locatie voor uw nieuwe project en geef het de naam and_gate. Projecten in Modelsim hebben de bestandsextensie .prj. Laat de andere instellingen op hun standaardwaarden. Dit betekent alleen dat alle code gecompileerd zal worden in de library "work".

Klik op Add Existing File zoals in de afbeelding rechts getoond. Navigeer naar de locatie waar u and_gate.vhd en and_gate_tb.vhd hebt gedownload en voeg beide toe aan uw project. Houd de andere instellingen op hun standaardwaarden. Klik op OK wanneer u klaar bent.

Modelsim Projectvenster – Bestanden toegevoegd aan project

Merk op dat de bestanden nu succesvol aan uw project zijn toegevoegd. Ziet u die twee blauwe vraagtekens in het Modelsim Projectvenster hierboven? Dat betekent dat Modelsim de bestanden nog niet heeft gecompileerd. U moet de bronbestanden compileren. Om dit te doen, klik met de rechtermuisknop op and_gate.vhd, klik op Compile, en klik vervolgens op Compile All. U zou groene berichten in het Console-venster moeten zien die aangeven dat de compilatie succesvol was, zoals in de onderstaande screenshot.

Resultaten van een succesvolle compilatie

Om uw simulatie te starten, klik op Simulate in de menubalk, en klik vervolgens op Start Simulation. Dit opent het Start Simulation-venster. Klik op het plusteken naast work, en klik vervolgens op het plusteken naast and_gate_tb. Zorg ervoor dat u and_gate_tb selecteert en niet and_gate, want we willen het ontwerp op testbench-niveau simuleren. Zodra and_gate_tb is gehighlight, klik op OK.

Modelsim Simulatievenster – Simulatie gereed

Bijna klaar! De simulatie is gereed en wacht. Nu zal de meerderheid van de tijd die u Modelsim gebruikt, besteed worden aan het bekijken van de waveform view. De waveform view bevat golven (binaire 0'en en 1'en, hexadecimale cijfers, binaire cijfers, enumerated types, etc.) voor alle signalen in uw ontwerp. Het laat zien hoe uw module reageert op verschillende stimuli. De volgende afbeelding laat zien hoe uw waveform view eruitziet, maar eerst moet u enkele signalen toevoegen om te monitoren. In dit voorbeeld zullen we alle signalen in de testbench monitoren. Om dit te doen, klik met de rechtermuisknop op and_gate_tb in het sim-venster en klik op Add Wave. U kunt ook signalen naar het waveform-venster slepen vanuit andere vensters in Modelsim.

Hier is uw waveform-venster. Alle testbench-signalen zijn toegevoegd als signalen die u kunt monitoren. Om de simulatie te draaien, klik op het icoontje met een klein stukje papier en een pijltje naar beneden naast de 100 ns tijd. Dit zal uw simulatie draaien voor 100 nanoseconden. Kijk hoe de signalen veranderen! Gefeliciteerd! U heeft uw eerste Modelsim-simulatie gemaakt!

Deze tutorial heeft u getoond hoe u uw eigen project in Modelsim maakt, bestanden aan uw project toevoegt, uw bronbestanden compileert, uw simulatie start en uw waveforms bekijkt. 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. VHDL Records Gebruiken voor Schone, Herbruikbare FIFO-interfaces
  2. Std_logic in VHDL onder de knie krijgen: toestanden, resolutie en golfform-analyse
  3. Quartus Prime IP-bibliotheken integreren in VUnit: een stapsgewijze handleiding
  4. Procedures in VHDL gebruiken: je ontwerp vereenvoudigen met herbruikbare code
  5. Sensitivitelijsten in VHDL-processen voor betrouwbare RTL-ontwerpen
  6. VHDL Basics Quiz – Deel 4: Test je begrip
  7. Wait-for-statements in VHDL voor uitstel van uitvoering
  8. Een VHDL-testbench netjes beëindigen: methoden en best practices
  9. VHDL Procedure Voorbeeld: Een Standard Logic Vector Incrementeren
  10. Een PWM-controller implementeren in VHDL: Ontwerp, Simulatie en FPGA-demo
  11. Gratis VHDL-simulator & editor setup: Een studentengids