以下代码获取输入 A 的偶校验。(即,如果 A 包含 0 个 1 或偶数个 1,则奇偶校验 = 1)
reg [7:0] A;
wire parity;
assign parity = ~^A;
如何在程序块中使用 for 循环来获得相同的功能
这样的东西应该有效。基本上你想从向量的一端开始,然后一直走到另一端。每当发现“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