2017-09-16 3 views
-1

Der folgende Code erhält die gerade Parität für den Eingang A (dh Parität = 1, wenn A 0 1'en enthält oder eine gerade Anzahl von 1en)Verilog: Gerade Parität für Eingang A

reg [7:0] A; 
wire parity; 
assign parity = ~^A; 

Wie werde ich verwenden eine for-Schleife in einem prozeduralen Block, um die gleiche Funktion zu erhalten

+0

sollten Sie Ihren eigenen Versuch dazu tun. – Serge

Antwort

1

So etwas sollte funktionieren. Grundsätzlich wollen Sie an einem Ende des Vektors beginnen und sich bis zum anderen Ende arbeiten. Umdrehen des Paritätsbits, wenn Sie eine '1' entdecken. Wenn Sie keine finden, ist die Parität 1. Wenn Sie eine gerade Zahl sehen, wird auch die Parität 1 sein.

integer i; 
reg parity; 

always (*) begin 
    // Default values 
    parity = 1'b1; 

    for (i = 0; i < 8; i++) 
     if (A[i]) 
      parity = ~parity; 
end