|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?注册
x
这是《无线通信matlab和FPGA实现》书中的一个例子
使用Verilog实现RS(10,8)的编码电路程序如下:
module rs_enc(clk,reset,x,y);
input clk;
input reset;
input[3:0] x; /////输入数据
output[3:0] y; ////输出数据
reg[3:0] cnt;
reg[3:0] D1,x_in; ////中间寄存变量
always @ (posedge clk)
begin
if(reset)
begin
cnt<=4'b1001;
D1<=0;
x_in<=0;
end
else
begin
if(cnt==4'b1001)
cnt<=0;
else
cnt<=cnt+1;
if(cnt==4'b0000)
begin
D1<=0;
x_in<=0;
end
else
begin
D1[3]<=x_in[2]^x_in[1]^x_in[3];
D1[2]<=x_in[1]^x_in[1]^x_in[0]^x_in[2];
D1[1]<=x_in[2]^x_in[0]^x_in[1];
D1[0]<=x_in[3]^x_in[2]^x_in[1];
x_in<=D1^x;
end
end
end
assign y=(cnt==4'b1000)?D1cnt==4'b1001)?x_in:x;
endmodule
问题是:实现RS(10,8)编码,那么有用信息位不应该为8位,输出数据应该是10位,为什么程序里输入输出寄存器的位宽都才4位?求大神解答啊~ |
|