Bramki AND, OR i NOT
Część sekcji Podstawy ścieżki Verilog w Coddy. Lekcja 40 z 90.
Ta lekcja omawia trzy najbardziej podstawowe bramki logiczne: AND, OR i NOT. Bramki te stanowią podstawę projektowania układów logiki cyfrowej.
Bramka AND
Bramka AND zwraca 1 tylko wtedy, gdy wszystkie wejścia mają wartość 1.
Tablica prawdy (2 wejścia):
| a | b | out |
|---|---|---|
| 0 | 0 | 0 |
| 0 | 1 | 0 |
| 1 | 0 | 0 |
| 1 | 1 | 1 |
Elementarna bramka Verilog:
and(out, a, b);Równoważne przypisanie ciągłe:
assign out = a & b;Bramka OR
Bramka OR zwraca 1, gdy co najmniej jedno wejście ma wartość 1.
Tabela prawdy (2 wejścia):
| a | b | out |
|---|---|---|
| 0 | 0 | 0 |
| 0 | 1 | 1 |
| 1 | 0 | 1 |
| 1 | 1 | 1 |
Prymityw bramki Verilog:
or(out, a, b);Odpowiednik w postaci przypisania ciągłego:
assign out = a | b;Bramka NOT
Bramka NOT zwraca odwrotność swojego pojedynczego wejścia. Nazywana jest również inwerterem.
Tablica prawdy:
| a | out |
|---|---|
| 0 | 1 |
| 1 | 0 |
Prymityw bramki Verilog:
not(out, a);Odpowiednik w postaci przypisania ciągłego:
assign out = ~a;Wiele wejść
Bramki AND i OR mogą mieć więcej niż 2 wejścia:
and(out, a, b, c); // 3-wejściowa bramka AND (out = a & b & c)
or(out, x, y, z, w); // 4-wejściowa bramka ORBramki NOT zawsze mają dokładnie 1 wejście.
Przykład kodu
module and_or_not (
input a, b,
output and_out,
output or_out,
output not_out
);
and(and_out, a, b); // Bramka AND
or(or_out, a, b); // Bramka OR
not(not_out, a); // Bramka NOT (inwerter)
endmoduleWyzwanie
Dodaj brakujące prymitywy bramek na podstawie zadań.
Co zrobić:
- Utwórz bramkę AND z wyjściem
and_resulti wejściamiporazq - Utwórz bramkę OR z wyjściem
or_resulti wejściamiporazq - Utwórz bramkę NOT z wyjściem
not_resulti wejściemp
Spróbuj swoich sił
module gates_challenge (
input p,
input q,
output and_result,
output or_result,
output not_result
);
// TODO: Dodaj bramkę AND (and_result = p & q)
// TODO: Dodaj bramkę OR (or_result = p | q)
// TODO: Dodaj bramkę NOT (not_result = ~p)
endmoduleTa lekcja zawiera krótki quiz. Zacznij lekcję, żeby na niego odpowiedzieć i śledzić swoje postępy.
Wszystkie 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