Projektowanie logiki
Część sekcji Podstawy ścieżki Verilog w Coddy. Lekcja 44 z 90.
Wyzwanie
Projektowanie logiki polega na ustaleniu, jakich równań potrzebuje układ na podstawie tabeli prawdy.
Tabela prawdy:
| a | b | sum | carry |
|---|---|---|---|
| 0 | 0 | 0 | 0 |
| 0 | 1 | 1 | 0 |
| 1 | 0 | 1 | 0 |
| 1 | 1 | 0 | 1 |
Krok 2: Znajdź wzorzec dla sum
- sum = 1, gdy a=0,b=1 lub a=1,b=0
- sum = 1, gdy a i b są różne
- Różne = XOR →
sum = a ^ b
Krok 3: Znajdź wzorzec dla carry
- carry = 1 tylko wtedy, gdy a=1 i b=1
- Oba = AND →
carry = a & b
Krok 4: Zapisz równania
sum = a ^ b
carry = a & b
Co należy zrobić:
Twoim zadaniem jest dodanie brakujących równań logiki wewnątrz modułu.
1. Dodaj instrukcję assign dla sum (a XOR b)
2. Dodaj instrukcję assign dla carry (a AND b)
Spróbuj swoich sił
module half_adder (
input a,
input b,
output sum,
output carry
);
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