4-Bit-Zähler
Teil des Abschnitts Grundlagen der Verilog-Journey von Coddy — Lektion 84 von 90.
Aufgabe
Erstellen Sie einen 4-Bit-Zähler, der von 0 bis 15 zählt und dann wieder bei 0 beginnt.
Modulschnittstelle
| Port | Richtung | Breite | Beschreibung |
|---|---|---|---|
clk | input | 1 Bit | Taktsignal |
reset | input | 1 Bit | Zähler auf 0 zurücksetzen |
count | output | 4 Bits | Aktueller Zählerwert |
Wahrheitstabelle
| Taktzyklus | count |
|---|---|
| Nach Reset | 0 |
| 1 | 1 |
| 2 | 2 |
| ... | ... |
| 15 | 15 |
| 16 | 0 (Überlauf) |
Ihre Aufgabe ist es, das untenstehende Modul zu vervollständigen.
Was zu tun ist:
- Bei
resetsetzen Siecountauf 0 - Erhöhen Sie bei jeder steigenden Taktflanke
countum 1 - Wenn
count15 erreicht, sollte die nächste Erhöhung auf 0 zurückspringen
Probier es selbst
module counter (
input clk,
input reset,
output reg [3:0] count
);
// TODO: Always-Block mit posedge clk und posedge reset hinzufügen
// Bei Reset: count <= 0
// Andernfalls: count <= count + 1
endmoduleAlle Lektionen in Grundlagen
1Einführung
Was ist VerilogHardware vs. SoftwareAbstraktionsebenen im DesignDein erstes ModulKommentare4Operatoren Teil 1
Arithmetische OperatorenModulo-OperatorVergleichsoperatorenWiederholung – Einfache MathematikBitweise Operatoren7Zuweisung und Gatter
Kontinuierliche ZuweisungZuweisung mit OperatorenIntegrierte Gatter-PrimitiveAND OR NOT GatterXOR XNOR GatterZusammenfassung - Logikgatterschaltung10Entscheidungsfindung
If-AnweisungIf - ElseWiederholung - Einfacher KomparatorCase-AnweisungCasex und CasezWiederholung - ALU-Design5Operatoren Teil 2
Logische OperatorenReduktionsoperatorenShift-OperatorenVerkettungsoperatorBedingter OperatorZusammenfassung – Operator-Challenge11Schleifen
For-SchleifeWhile-SchleifeRepeat-SchleifeEndlosschleifeDisable-AnweisungRückblick – Schleifenmuster3Zahlensystem
Binäre DarstellungZahlen mit GrößenangabeZahlen ohne GrößenangabeNegative ZahlenSpezialwerte X und ZZusammenfassung – Zahlenformate6Module
ModulstrukturEingangs- und Ausgangs-PortsInout-PortsModul-InstanziierungPort-Mapping nach NamePort-Mapping nach ReihenfolgeZusammenfassung – Ein Modul erstellen