Kombinatorische Logik in Verilog mit Continuous Assign designen
Der Verilog assign Statement treibt kontinuierlich wire Signale und synthetisiert zu kombinatorischer Logik. Weitere Design-Beispiele:
Beispiel #1: Einfache kombinatorische Logik
module combo (input a,b,c,d,e, output z);
assign z = ((a & b) | (c ^ d) & ~e);
endmodule
Synthese → Hardware-Schema mit digitalen Gattern. Testbench: Alle 32 Input-Kombinationen per for-Loop + 10 Zeit-Einheiten Delay.
Beispiel #2: Half Adder
2 Scalar Inputs a, b. sum = XOR, cout = AND.
module ha (input a,b, output sum, cout);
assign sum = a ^ b;
assign cout = a & b;
endmodule
Testbench: 4 Input-Kombinationen.
Beispiel #3: Full Adder
3 Inputs a, b, cin. sum = (a^b)^cin, cout = (a&b) | ((a^b)&cin).
module fa (input a,b,cin, output sum, cout);
assign sum = (a ^ b) ^ cin;
assign cout = (a & b) | ((a ^ b) & cin);
endmodule
Testbench: 8 Kombinationen (eigentlich 8, Loop bis 7 im Original – Korrektur: 0-7 = 8 Werte).
Beispiel #4: 2x1 Multiplexer
Ternärer Operator: sel wählt zwischen a und b.
module mux_2x1 (input a,b,sel, output c);
assign c = sel ? a : b;
endmodule
Beispiel #5: 1x4 Demultiplexer
f + sel[1:0] steuern 4 Outputs. Je Output eigenes assign (Hinweis: Same Signal von mehreren assigns treiben → generell nicht empfohlen).
module demux_1x4 (input f, input [1:0] sel, output a,b,c,d);
assign a = f & ~sel[1] & ~sel[0];
assign b = f & sel[1] & ~sel[0];
assign c = f & ~sel[1] & sel[0];
assign d = f & sel[1] & sel[0];
endmodule
Beispiel #6: 4x16 Decoder (eigentlich 4-to-16)
Enable en, 4-Bit Input in, 16-Bit Output out. Shift-Operation: 1 << in.
module dec_3x8 (input en, input [3:0] in, output [15:0] out);
assign out = en ? 1 << in : 0;
endmodule
Testbench: 32 Kombinationen (en + 4-bit in).
Hinweis: Modulname dec_3x8 passt nicht zu 4x16 (3-to-8 vs 4-to-16). Korrekt wäre dec_4x16.
Verilog
- VHDL & Verilog meistern: Saubere kombinatorische & sequentielle Logik schreiben
- Schaltung mit Schalter: Praktischer Leitfaden zu grundlegenden elektrischen Schaltungen
- Integrierte Schaltungen: Grundlagen digitaler Logikgatter
- Programmierbare Logiksteuerungen (PLCs): Moderne digitale Steuerung für Industriesysteme
- 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