Shift Register
Teil des Abschnitts Grundlagen der Verilog-Journey von Coddy. Lektion 86 von 90.
Aufgabe
Ein shift-Register verschiebt data bei jeder Clock-Flanke von links nach rechts. Jedes Bit bewegt sich zur nächsten Position.
Funktionsweise eines 4-Bit-shift-Registers
Initial: q0=0, q1=0, q2=0, q3=0
Clock 1: q0 = d, q1 = old q0, q2 = old q1, q3 = old q2
Clock 2: q0 = d, q1 = old q0, q2 = old q1, q3 = old q2Nach 4 Clock-Zyklen erreicht das erste input-Bit q3.
Modulschnittstelle
| Port | Richtung | Breite | Beschreibung |
|---|---|---|---|
clk | input | 1 Bit | Clock-Signal |
reset | input | 1 Bit | Alle outputs auf 0 zurücksetzen |
d | input | 1 Bit | data-Eingang |
q0 | output | 1 Bit | Ausgang des ersten Flip-Flops |
q1 | output | 1 Bit | Ausgang des zweiten Flip-Flops |
q2 | output | 1 Bit | Ausgang des dritten Flip-Flops |
q3 | output | 1 Bit | Ausgang des vierten Flip-Flops |
Deine Aufgabe ist es, das folgende Modul zu vervollständigen.
Aufgabe:
- Bei
resetalle outputs auf 0 setzen - Bei jeder steigenden Clock-Flanke data von links nach rechts verschieben:
q0erhältdq1erhält oldq0q2erhält oldq1q3erhält oldq2
Probier es selbst
module shift_register (
input clk,
input reset,
input d,
output reg q0,
output reg q1,
output reg q2,
output reg q3
);
// TODO: Füge always @(posedge clk or posedge reset) hinzu
// Bei Reset: q0<=0, q1<=0, q2<=0, q3<=0
// Sonst: Daten verschieben: q0 <= d, q1 <= q0, q2 <= q1, q3 <= q2
endmodule
Alle Lektionen in Grundlagen
1Einführung
Was ist VerilogHardware vs. SoftwareIhr erstes ModulKommentareAbstraktionsebenen des Designs4Operators Part 1
Arithmetic OperatorsModulo OperatorComparison OperatorsRecap - Simple MathBitwise Operators7Assign And Gates
Continuous AssignmentAssign With OperatorsBuilt In Gate PrimitivesAND OR NOT GatesXOR XNOR GatesRecap - Logic Gate Circuit10Decision Making
If StatementIf - ElseRecap - Simple ComparatorCase StatementCasex And CasezRecap - ALU Design5Operators Part 2
Logical OperatorsReduction OperatorsShift OperatorsConcatenation OperatorConditional OperatorRecap - Operator Challenge3Number System
Binary RepresentationSized NumbersUnsized NumbersNegative NumbersSpecial Values X And ZRecap - Number Formats6Modules
Module StructureInput And Output PortsInout PortsModule InstantiationPort Mapping By NamePort Mapping By OrderRecap - Build A Module9Procedural Blocks
Always BlockInitial BlockSensitivity ListBlocking AssignmentNon Blocking AssignmentRecap - Always vs Initial15Traffic Light Controller
Defining The StatesState Machine LogicÜbe selbstständig: Online-Verilog-Compiler