8位数据的verilog奇偶校验

标签:
verilog运算符异或操作数奇偶校验 |
分类: Verilog学习 |
利用Verilog语言实现对一个8位数据进行奇偶检验,具体方法如下,
module modelsim_test (even_bit,odd_bit,a);
endmodule
然后利用modelsim测试一下得到波形如下图。
http://blog.chinaunix.net/attachment/201310/3/24343357_1380785004OAN0.jpg
可以看到实现了奇偶校验的效果。但是一直对,assign
even_bit = ^a;这段不明白。
^是按位异或,是二目运算符,这里怎么只用一个操作数呢?
其实在verilog中,与,或,非,异或,同或,这5个运算符,除了非以外,其他4个都是二目运算符,也即是需要两个操作数,然后中间加上相应的运算符。
但是这里有一种称作,一元约减运算符,就是说,与,或,异或,同或,这4个运算符可以作为一元约减运算符,也即是只需要一个操作数,例如:even_bit
= ^a;
不过运算的过程,和二目运算符不同了,一元约减运算符的运算过程是:首先将操作数的第一位和第二位进行与、或、非运算;然后再将运算结果和第三位进行与、或、非运算;
依次类推直至最后一位。
就是说,assign even_bit =
^a;等效于
最后提到一下C语言