FPGA Verilog HDL格雷码的产生

来源:互联网 发布:英雄联盟登录网络异常 编辑:程序博客网 时间:2024/05/29 16:28

//格雷码地址产生integer I;always @( RADDR ) begin  BNEXT_R[A] = RADDR[A];                          //最左边的一位数保持不变  for( I = A - 1; I >= 0; I = I - 1 )             //将格雷码转换为普通二进制     BNEXT_R[I] = RADDR[I] ^ BNEXT_R[I + 1];      //将格雷码其左边第二个起解码后的值按位异或,即相同为0,不同为1     BNEXT_R = BNEXT_R + 1'b1;                    //普通二进制码自增一     GNEXT_R = ( BNEXT_R >> 1 ) ^ BNEXT_R;        //BNEXT_R右移一位,与自身异或,得到下一个输出的格雷码end
其中RADDR是定义的输出地址,寄存器A为地址的长度,寄存器BNEXT_R用于存储解码后二进制码,寄存器GNEXT_R 用于存储运算得到的下一个格雷码。

0 0
原创粉丝点击