异或:相同为0,不同为1。
一、可用于两个整数的值进行交换,不用借助第三个变量。
若a = 5(0101),b = 10(1010)经以下变换,可完成 值 的交换:
a=a^b; 0101 ^ 1010= 1111
b=b^a; 1010 ^ 1111 = 0101
a=a^b; 1111 ^ 0101= 1010
最后得:a = 10,b = 5。
二、可用于奇偶校验
^a:将数据a中的每一位按位逐一进行 异或,最后结果为1位宽(0或1)。
例如:a=4'b0101,则b=1^0^1^0=0,由此可以得到数据a中为1的位数个数是偶数。
三、应用举例——四位数据奇偶校验器
功能:用于检测四位宽数据中1的个数是奇数还是偶数。
Verilog Code:
1 module odd_even 2 ( 3 input wire [3:0] data,//4位宽数据输入 4 output wire flag //奇偶标志位输出 5 ); 6 assign flag = ^data;//按位逐一异或 7 endmodule
标签:0101,1111,异或,按位,Verilog,应用,1010 From: https://www.cnblogs.com/cybrave/p/17133555.html