您将如何编写将偶校验位添加到 7 位向量的 SystemVerilog 函数?

How would you write a SystemVerilog Function that adds an even parity bit to a 7-bit vector?

您是否将一个 7 位逻辑变量作为输入并 return 一个 8 位逻辑输出,奇偶校验位是输出的 MSB(最左边的位)? 在使用偶校验的系统中,您希望输出向量中 1 的总位数是偶数,对吗? 一元^运算符可以用来计算偶校验吗?

想弄清楚那会是什么样子?

我是这样开始的:

Code for parity

抱歉,如果这是一个以上的问题。

我会这样做:

input logic [N-1:0] data_in;
output logic [N:0] data_out;

assign data_out = {^data_in, data_in};

^归约运算符对操作数中的所有位进行异或运算。 (因此,如果 data_in 的个数为奇数,它将 return '1。)