Industrielle Fertigung
Industrielles Internet der Dinge | Industrielle Materialien | Gerätewartung und Reparatur | Industrielle Programmierung |
home  MfgRobots >> Industrielle Fertigung >  >> Industrial programming >> Verilog

Sequenzielle Logik mit Verilog always Blöcken implementieren

Vorheriger Artikel zeigte kombinatorische Logik mit always. Hier: Sequenzielle Logik mit Speicherelementen (Flipflops).

JK Flipflop

Speichert Werte, 2 Data Inputs j, k, Reset rstn, Clock clk. Wahrheitstabelle:

rstnjkqKommentar
0000Reset asserted → Output 0
100Holdj=k=0 → Output unverändert
1011k=1 → Output 1
1100k=0 → Output 0
111Togglej=k=1 → Output toggelt

Verhaltensmodell:

module jk_ff (input j, k, rstn, clk, output reg q);
    always @ (posedge clk or negedge rstn) begin
        if (!rstn) q <= 0;
        else q <= (j & ~q) | (~k & q);
    end
endmodule

Testbench

Clock mit always #10 clk = ~clk. Stimulus: Reset deassert nach 10ns, dann 10 Iterationen zufällige j,k Werte zu zufälligen Zeiten.

Waveform zeigt: An posedge Clock ändert q basierend auf j,k per Wahrheitstabelle.

Modulo-10 Zähler

MOD-N Zähler zählt 0 bis N-1, dann Roll-over. Benötigt log2N Flops. Verilog Parameter für skalierbaren MOD-N Zähler.

module mod10_counter (input clk, rstn, output reg [3:0] out);
    always @ (posedge clk) begin
        if (!rstn) out <= 0;
        else begin
            if (out == 10) out <= 0;  // Bug: out==10 nie erreicht bei 4-bit (max 15), aber Logik: bei 10→0
            else out <= out + 1;
        end
    end
endmodule

Korrektur: Bedingung sollte out == 9 sein (zählt 0-9), dann out <= 0. Bei out == 10 zählt er 0-10 (11 Werte).

Testbench

Clock 10ns Period, Reset 10ns, Lauf 450ns. Zähler zählt 0-9, Roll-over, wiederholt.

4-Bit Left Shift Register

Input d in LSB, alle Bits shift left by 1. Beispiel: d=0, Init 0011 → nächstes Clock 0110.

module lshift_4b_reg (input d, clk, rstn, output reg [3:0] out);
    always @ (posedge clk) begin
        if (!rstn) out <= 0;
        else out <= {out[2:0], d}; // Concatenation: oberste 3 Bits + neues LSB
    end
endmodule

Testbench

20 Iterationen, zufällige d Werte an posedge Clock. Waveform zeigt Links-Shift + neues LSB.

Verilog

  1. VHDL & Verilog meistern: Saubere kombinatorische & sequentielle Logik schreiben
  2. Schaltung mit Schalter: Praktischer Leitfaden zu grundlegenden elektrischen Schaltungen
  3. Integrierte Schaltungen: Grundlagen digitaler Logikgatter
  4. Programmierbare Logiksteuerungen (PLCs): Moderne digitale Steuerung für Industriesysteme
  5. Boolesche Algebra verstehen: Von Logikfundamenten zu digitalen Schaltungen
  6. Logikvereinfachung mit Karnaugh-Diagrammen meistern
  7. Digitale Logik mit Rückkopplung: Von deterministischen Gattern zu Multivibratoren
  8. Verilog Mod-N Counter Design: Parameterisiertes Modul & Testbench
  9. Verilog Gray Counter Modul – 4-Bit Gray-Code Generator
  10. Perfekte Oberflächen mit Okamotos Präzisionsschleifmaschinen erreichen