Czym jest Verilog
Część sekcji Podstawy ścieżki Verilog w Coddy. Lekcja 1 z 90.
Verilog to język opisu sprzętu (HDL) używany do modelowania, projektowania i symulowania cyfrowych układów elektronicznych — od prostych bramek logicznych po złożone procesory.
W przeciwieństwie do języków programowania, które działają sekwencyjnie na procesorze CPU, Verilog opisuje sprzęt działający równolegle. Jest standardem branżowym w projektowaniu układów FPGA i ASIC i jest używany w narzędziach takich jak ModelSim, Vivado i Quartus.
W tym kursie nauczysz się Veriloga od podstaw: zaczniesz od podstawowego wyjścia symulacji, następnie zbudujesz układy kombinacyjne i sekwencyjne, a w końcu zaprojektujesz rzeczywiste moduły, takie jak liczniki, rejestry przesuwające i interfejsy UART.
Wyzwanie
ŁatwyWitaj w swoim pierwszym programie w Verilog! Kod jest już napisany.
Co zrobić:
- Obejrzyj kod. Używa
$display, aby wyświetlić tekst, podobnie jakprintfw C - Kliknij Uruchom kod, aby go skompilować i zasymulować
- W danych wyjściowych powinien pojawić się tekst
Hello World!
Uwaga: Każdy program w Verilog działa wewnątrz module. Blok initial uruchamia się raz na początku symulacji, a $finish ją kończy.
Spróbuj swoich sił
module main;
initial begin
$display("Hello World!");
$finish;
end
endmoduleWszystkie lekcje w sekcji Podstawy
1Wprowadzenie
Czym jest VerilogSprzęt a oprogramowanieTwój pierwszy modułKomentarzePoziomy abstrakcji projektu4Operatory, część 1
Operatory arytmetyczneOperator moduloOperatory porównaniaPowtórka — prosta matematykaOperatory bitowe7Przypisania i bramki
Przypisanie ciągłePrzypisanie z operatoramiWbudowane prymitywy bramekBramki AND, OR i NOTBramki XOR i XNORPodsumowanie — układ z bramek logicznych10Podejmowanie decyzji
Instrukcja ifIf-elsePowtórka – prosty komparatorInstrukcja caseCaseX i CaseZPowtórka – projektowanie ALU13Odmierzanie czasu i opóźnienia
Czym są opóźnieniaOpóźnienia bramekOpóźnienia przypisańDyrektywa timescaleGenerowanie zegaraPodsumowanie — kontrola czasu2Typy danych
Typ WireTyp RegLiczby całkowite i rzeczywisteWektoryTabliceParametryPowtórka — deklarowanie sygnałów5Operatory — część 2
Operatory logiczneOperatory redukcjiOperatory przesunięciaOperator konkatenacjiOperator warunkowyPowtórzenie — wyzwanie z operatorami11Pętle
Pętla forPętla whilePętla repeatPętla nieskończonaInstrukcja wyłączaniaPowtórka — wzorce pętli3System liczbowy
Reprezentacja binarnaLiczby o określonej szerokościLiczby o nieokreślonej szerokościLiczby ujemneWartości specjalne X i ZPodsumowanie — formaty liczb6Moduły
Struktura modułuPorty wejściowe i wyjściowePorty dwukierunkoweInstancjonowanie modułuMapowanie portów według nazwMapowanie portów według kolejnościPodsumowanie — zbuduj moduł9Bloki proceduralne
Blok alwaysBlok initialLista czułościPrzypisanie blokującePrzypisanie nieblokującePodsumowanie — always a initial12Projekt multipleksera
Projekt multipleksera 2 do 1Projekt multipleksera 4 do 115Sterownik sygnalizacji świetlnej
Definiowanie stanówLogika maszyny stanówPoćwicz samodzielnie: Kompilator Verilog online