Was bedeutet der Verilog ? Betreiber in dem folgenden Code tun?Verilog HDL? Operator
input first_din;
input [7:0] din;
output [127:0] parity;
reg [127:0] parity;
wire [7:0] feedback;
assign feedback = din^(first_din ? 8'b0 : parity[127:120]);
Was bedeutet der Verilog ? Betreiber in dem folgenden Code tun?Verilog HDL? Operator
input first_din;
input [7:0] din;
output [127:0] parity;
reg [127:0] parity;
wire [7:0] feedback;
assign feedback = din^(first_din ? 8'b0 : parity[127:120]);
In diesem Code ?
ist ein Teil des "Conditional Operator" (?:
). Siehe die kostenlose IEEE Std 1800-2012, Tabelle 11-1-Operatoren und Datentypen. Es wird verwendet, um einen Multiplexer zu modellieren. In Ihrem Fall ist first_din
die Auswahl und 8'b0
und parity[127:120]
sind die Dateneingänge.
Ähnlich wie? : Operator in C, dieser Operator funktioniert so einfach, wenn er sonst blockiert.
b = exp. a ? value_1 : value_2
gleich zu
if (exp. a)//if true
b = value_1;
else
b = value_2;
dies wie eine typische Multiplexer 2-zu-1 ist.
Eingaben: A, B, SEL
Ausgänge: OUT
Funktion:
IF (SEL = 1) THEN OUT = B , ELSE OUT = A
OUT = SEL ? B : A ;
Achtung: Wenn SEL = Z (hohe Impedanz oder variabel) THEN = OUT A
Dies ist der Hauptunterschied mit dem typischen Multiplexer 2 zu 1
Die Funktion des typischen Multiplexers 2-zu-1 ist:
IF (SEL = 1) THEN OUT = B , ELSE IF(SEL = 0) OUT = A ;
Hallo, wie kann ich einen Demultiplexer durch den "Conditional Operator" (?) Modellieren. – vapham