将奇偶校验从使用一元 XOR 转换为“for”循环

问题描述 投票:0回答:1

以下代码获取输入 A 的偶校验。(即,如果 A 包含 0 个 1 或偶数个 1,则奇偶校验 = 1)

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

如何在程序块中使用 for 循环来获得相同的功能

for-loop verilog parity
1个回答
1
投票

这样的东西应该有效。基本上你想从向量的一端开始,然后一直走到另一端。每当发现“1”时翻转奇偶校验位。如果没有发现任何,奇偶校验为 1。如果发现偶数 #,奇偶校验也将为 1。

integer i;
reg parity;

always (*) begin
    // Default values
    parity = 1'b1;
    
    for (i = 0; i < 8; i++)
        if (A[i])
            parity = ~parity;
end
© www.soinside.com 2019 - 2024. All rights reserved.