Decoder-Entwurf
Teil des Abschnitts Grundlagen der Verilog-Journey von Coddy. Lektion 85 von 90.
Aufgabe
Ein Decoder nimmt eine Binärzahl als Eingabe und schaltet basierend auf dieser Zahl genau einen Ausgang ein. Der eingeschaltete Ausgang wird „one-hot“ genannt, weil nur ein Bit aktiv (1) und alle anderen inaktiv (0) sind.
Wahrheitstabelle (2-zu-4-Decoder)
| Eingang (in) | out0 | out1 | out2 | out3 |
|---|---|---|---|---|
| 00 | 1 | 0 | 0 | 0 |
| 01 | 0 | 1 | 0 | 0 |
| 10 | 0 | 0 | 1 | 0 |
| 11 | 0 | 0 | 0 | 1 |
Modulschnittstelle
| Port | Richtung | Breite | Beschreibung |
|---|---|---|---|
in | Eingang | 2 Bits | Binäre Eingabe (0 bis 3) |
out0 | Ausgang | 1 Bit | Aktiv, wenn in = 00 |
out1 | Ausgang | 1 Bit | Aktiv, wenn in = 01 |
out2 | Ausgang | 1 Bit | Aktiv, wenn in = 10 |
out3 | Ausgang | 1 Bit | Aktiv, wenn in = 11 |
Deine Aufgabe ist es, das folgende Modul mithilfe einer case-Anweisung zu vervollständigen.
Aufgabe:
- Wenn
in = 2'b00,out0 = 1, alle anderen 0 - Wenn
in = 2'b01,out1 = 1, alle anderen 0 - Wenn
in = 2'b10,out2 = 1, alle anderen 0 - Wenn
in = 2'b11,out3 = 1, alle anderen 0
Probier es selbst
module decoder (
input [1:0] in,
output reg out0,
output reg out1,
output reg out2,
output reg out3
);
// TODO: Füge always @(*)-Block mit case (in) hinzu
// 2'b00: out0=1, andere 0
// 2'b01: out1=1, andere 0
// 2'b10: out2=1, andere 0
// 2'b11: out3=1, andere 0
endmoduleAlle Lektionen in Grundlagen
1Einführung
Was ist VerilogHardware vs. SoftwareIhr erstes ModulKommentareAbstraktionsebenen des Designs4Operatoren Teil 1
Arithmetische OperatorenModulo-OperatorVergleichsoperatorenWiederholung – einfache MathematikBitweise Operatoren7Zuweisungen und Gatter
Kontinuierliche ZuweisungZuweisung mit OperatorenIntegrierte Gatter-GrundelementeUND-, ODER- und NICHT-GatterXOR- und XNOR-GatterRückblick – Logikgatter-Schaltung10Entscheidungsfindung
If-AnweisungIf – ElseRückblick – Einfacher KomparatorCase-AnweisungCasex und CasezRückblick – ALU-Entwurf13Zeitsteuerung und Verzögerungen
Was sind Verzögerungen?GatterverzögerungenZuweisungsverzögerungenTimescale-DirektiveTakterzeugungZusammenfassung – Zeitsteuerung2Datentypen
Wire-TypReg-TypInteger und RealVektorenArraysParameterZusammenfassung – Signale deklarieren5Operatoren Teil 2
Logische OperatorenReduktionsoperatorenSchiebeoperatorenVerkettungsoperatorBedingter OperatorRückblick – Operatoren-Herausforderung11Schleifen
For-SchleifeWhile-SchleifeWiederholungsschleifeEndlosschleifeAnweisung deaktivierenRückblick – Schleifenmuster3Zahlensystem
Binäre DarstellungZahlen mit fester BreiteZahlen ohne feste BreiteNegative ZahlenSpezialwerte X und ZZusammenfassung – Zahlenformate6Module
ModulstrukturInput- und Output-PortsInout-PortsModulinstanziierungPortzuordnung nach NamenPortzuordnung nach ReihenfolgeRückblick – Ein Modul erstellenÜbe selbstständig: Online-Verilog-Compiler