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

Kombinatorische Logik mit Verilog always Block implementieren

Der always Block eignet sich für sequenzielle und kombinatorische Logik. Frühere Beispiele nutzten assign; hier dieselben Designs mit always.

Beispiel #1: Einfache kombinatorische Logik

Output z als reg, aktualisiert bei Änderung in Sensitivity List.

module combo (input a,b,c,d,e, output reg z);
    always @ (a or b or c or d or e) begin
        z = ((a & b) | (c ^ d) & ~e);
    end
endmodule
Wichtig: Blocking Assignments (=) für kombinatorische Logik in always Blöcken verwenden!

Synthese → gleiche Hardware wie assign Version. Testbench: 32 Input-Kombinationen.

Beispiel #2: Half Adder

module ha (input a,b, output sum, cout);
    always @ (a or b) begin
        {cout, sum} = a + b;
    end
endmodule

Beispiel #3: Full Adder

module fa (input a,b,cin, output reg sum, cout);
    always @ (a or b or cin) begin
        {cout, sum} = a + b + cin;
    end
endmodule

Beispiel #4: 2x1 Multiplexer

module mux_2x1 (input a,b,sel, output reg c);
    always @ (a or b or sel) begin
        c = sel ? a : b;
    end
endmodule

Beispiel #5: 1x4 Demultiplexer

Alle Outputs als reg, ein always Block für alle.

module demux_1x4 (input f, input [1:0] sel, output reg a,b,c,d);
    always @ (f or sel) begin
        a = f & ~sel[1] & ~sel[0];
        b = f & sel[1] & ~sel[0];
        c = f & ~sel[1] & sel[0];
        d = f & sel[1] & sel[0];
    end
endmodule

Beispiel #6: 4x16 Decoder

module dec_3x8 (input en, input [3:0] in, output reg [15:0] out);
    always @ (en or in) begin
        out = en ? 1 << in : 0;
    end
endmodule

Hinweis: Modulname dec_3x8 inkonsistent zu 4x16 Decoder (sollte dec_4x16 heißen). Beide Methoden (assign vs always) synthetisieren zur identischen Hardware.

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. Boolesche Algebra verstehen: Von Logikfundamenten zu digitalen Schaltungen
  5. Multiplikation und Division mit wissenschaftlicher Notation meistern
  6. Industrie 4.0 Insights: Q&A mit Verena Majuntke von Bosch.IO zu IoT, Automatisierung und der Fabrik der Zukunft
  7. Präzise Temperaturüberwachung im Server-Schrank mit Raspberry Pi
  8. Praktisches Verilog Gate-Level Design: AND, OR, NOT Gatter & 2x1 Multiplexer
  9. Verilog $timeformat meistern: Präzision und Anzeigesteuerung
  10. Perfekte Oberflächen mit Okamotos Präzisionsschleifmaschinen erreichen