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

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

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