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
=) 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
- VHDL & Verilog meistern: Saubere kombinatorische & sequentielle Logik schreiben
- Schaltung mit Schalter: Praktischer Leitfaden zu grundlegenden elektrischen Schaltungen
- Integrierte Schaltungen: Grundlagen digitaler Logikgatter
- Boolesche Algebra verstehen: Von Logikfundamenten zu digitalen Schaltungen
- Multiplikation und Division mit wissenschaftlicher Notation meistern
- Industrie 4.0 Insights: Q&A mit Verena Majuntke von Bosch.IO zu IoT, Automatisierung und der Fabrik der Zukunft
- Präzise Temperaturüberwachung im Server-Schrank mit Raspberry Pi
- Praktisches Verilog Gate-Level Design: AND, OR, NOT Gatter & 2x1 Multiplexer
- Verilog $timeformat meistern: Präzision und Anzeigesteuerung
- Perfekte Oberflächen mit Okamotos Präzisionsschleifmaschinen erreichen