欢迎来到天天文库
浏览记录
ID:44177424
大小:63.53 KB
页数:4页
时间:2019-10-19
《异或^的几个作用》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、异或A的几个作用一、交换两个整数的值而不必用第三个参数a=9;b=11;a=aAb;1001A1011=0010b=bAa;1011A0010=1001a=aAb;0010A1001=1011a=11;b=9;二、奇偶判断Aa操作就是将a屮的每一位按位逐一进行异或,例如a=4'b1010,贝0b=1A0M^0=0,由此可以判断a中为1的位数是奇数还是偶数,是一个便捷的操作。三、格雷码(Graycode)格雷码(Graycode)是由贝尔实验室的FrankGray在1940年提出,用于在PCM(PusleCodeModulation)方法传送讯号吋防止出错,并于1953
2、年三月十七F!取得美国专利。格雷码是一个数列集合,相邻两数间只冇一个位元改变,为无权数码,且格雷码的顺序不是唯一的。直接排列以二进制为0值的格雷码为第零项,第一项改变最右边的位元,第二项改变右起第一个为1的位元的左边位元,第三、四项方法同第一、二项,如此反覆,即可排列出n个位元的格雷码。1、白然二进制码转换成二进制格雷码自然二进制码转换成二进制格雷码,其法则是保留自然二进制码的最高位作为格雷码的最高位,而次高位格雷码为二进制码的高位与次高位相异或,而格雷码其余各位与次高位的求法相类似。某一进制数为巴一1瓦一2…艮耳耳II异或运算:耳对应的格雷码为GJiG才2•…相同为
3、o一相异为1其中:最高位保留——6心=£才1其他各位G=5+l㊉耳1,2,…,«-2例:二进制数为10110®®®®格雷码为111012、二迹制榕雷码转换成口然二进制码二进制格雷码转换成口然二进制码,其法则是保留格雷码的最高位作为口然二进制码的最高位,而次髙位自然二进制码为鬲位自然二进制码与次高位格雷码相界或,而自然二进制码的其余各位与次髙位B然二进制码的求法相类似。某二进制格雷码为…QGGd其对应的自然二进制码为■■•禺砸0异或运算:相同为0其中:麻咼位保留Bn^=Gn-}相异为]其他各位——%=G「㊉马2,…,«-1例:二进制格雷码为自然二进制码为1011011
4、U11二进制数转格雷码(假设以二进制为0的值做为格雷码的0)格雷码第口位=二进制码第(n+1)位+二进制码第n位。不必理会进制。Verilog彳弋码:gray=(binary>>1)Abinary;格雷码转二进制数二进制码第门位=二进制码第(n+1)位+格雷码第n位。因为二进制码和格雷码皆有相同位数,所以二进制码町从最高位的左边位元取0,以进行计算。verilog代码://假设reg[n・1]gray,binary;integeri;for(i=0;i<=n・1;i=i+1)binary[i]=A(gray>>i)//gray移位后,自身按位异或放一段代码这,用于参考
5、:/★LogictoconvertbinarynumbersintoGraycodedbinmrynumbersisimplementedinthefollowingVerilogCode.*/modulebinary2gray();regelk;regrstn;reg[5:0]counter_binary,counter_binary_reg,counter_grayfcounter_gray_reg;integercount,file_wr;/*Initia丄blocktogenerateclockandreset*/initialbeginelk=0;rstn=
6、0;#100rstn=1;foreverbegin#10elk=!elk;endend/*SynchronousLogicforregisteringthedataandincrementingthecounterforbinarydata*/always@(posedgeelkornegedgerstn)beginif(!rstn)begincounter_bi<=1bO;counter_gray_reg<=1bO;endelsebegincounter_binary_reg<=counter_binary+1;counter_gi:4y_reg<=coun;$di
7、splay(nbinarynumber=6!b%b:grayen-codedbinarynumber=61b%bnzcounter_binary_regAcounter_gray_reg);endend/*LogicistogetGraycodefromBinarycode*/function[5:0]binary2gray;input[5:0]value;integeri;beginbinary2gray[5]=value[5];for(i=5;i>0;i=i-1)binary2gray[i-1]=value[i]八value[i一1];enden
此文档下载收益归作者所有