|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?注册
x
本帖最后由 小yz 于 2016-6-13 23:04 编辑
求助如下代码中20行和22行两行的具体含义?为啥可以完成gray码与二进制码的转换??
麻烦仔细说明一下那两行代码
- `define width 4
- module graycounter(clk,rst,gray);
- input clk ;
- input rst ;
- output reg [`width-1:0] gray ;
- reg [`width-1:0] gnxt,bnxt,bin;
- integer i;
-
- always@(posedge clk or negedge rst) //寄存器输出
- if(!rst)
- gray <= 0;
- else
- gray <=gnxt; //gray码寄存器
- always@(gray)
- begin
- for(i = 0;i<`width;i= i+1)
- bin[i] = ^(gray>>i); //gray_to_bin
- bnxt = bin+1;
- gnxt = (bnxt>>1) ^ bnxt; //bin_to_gray
- end
- endmodule
-
-
-
-
-
复制代码 |
|