📄 rsencode.v
字号:
// Primitive polynomial(原始多项式) = D^5+D^2+1
// g11-g0: 30 11 15 12 18 3 19 25 31 10 24 31
module rsenc (clk, reset, enable, data, x, y,z);
input [4:0] x;
input clk, reset, enable, data;
output [4:0] y,z;
reg [4:0] y,z;
wire [4:0] scale0, scale1, scale2, scale3, scale4, scale5 ;
wire [4:0] scale6, scale7, scale8, scale9, scale10, scale11 ;
reg [4:0] mem0, mem1, mem2, mem3, mem4, mem5 ;
reg [4:0] mem6, mem7, mem8, mem9, mem10, mem11 ;
reg [4:0] feedback(反馈);
mul m0(31,feedback,scale0);
mul m1(24,feedback,scale1);
mul m2(10,feedback,scale2);
mul m3(31,feedback,scale3);
mul m4(25,feedback,scale4);
mul m5(19,feedback,scale5);
mul m6(3,feedback,scale6);
mul m7(18,feedback,scale7);
mul m8(12,feedback,scale8);
mul m9(15,feedback,scale9);
mul m10(11,feedback,scale10);
mul m11(30,feedback,scale11);
always @ (posedge clk or negedge reset)
begin
if (~reset)
begin
mem0 <= 0;
mem1 <= 0;
mem2 <= 0;
mem3 <= 0;
mem4 <= 0;
mem5 <= 0;
mem6 <= 0;
mem7 <= 0;
mem8 <= 0;
mem9 <= 0;
mem10 <= 0;
mem11 <= 0;
end
else if (enable)
begin
mem11 <= mem10 ^ scale11;
mem10 <= mem9 ^ scale10;
mem9 <= mem8 ^ scale9;
mem8 <= mem7 ^ scale8;
mem7 <= mem6 ^ scale7;
mem6 <= mem5 ^ scale6;
mem5 <= mem4 ^ scale5;
mem4 <= mem3 ^ scale4;
mem3 <= mem2 ^ scale3;
mem2 <= mem1 ^ scale2;
mem1 <= mem0 ^ scale1;
mem0 <= scale0;
end
end
always @ (data or x or mem11)
if (data) feedback = x ^ mem11;
else feedback = 0;
always @ (data or x or mem11)
if (data) y = x;
else y = mem11;
always @ (data or x or mem11)
if (data) z = mem11;
else z = mem11;
endmodule
module mul(a, b, z);
input [4:0] a;
input [4:0] b;
output [4:0] z;
assign z[0] = b[0]&a[0]^b[1]&a[4]^b[4]&a[1]^b[2]&a[3]^b[3]&a[2]^b[4]&a[4];
assign z[1] = b[0]&a[1]^b[1]&a[0]^b[2]&a[4]^b[4]&a[2]^b[3]&a[3];
assign z[2] = b[0]&a[2]^b[2]&a[0]^b[1]&a[1]^b[1]&a[4]^b[4]&a[1]^b[2]&a[3]^b[3]&a[2]^b[3]&a[4]^b[4]&a[3]^b[4]&a[4];
assign z[3] = b[0]&a[3]^b[3]&a[0]^b[1]&a[2]^b[2]&a[1]^b[2]&a[4]^b[4]&a[2]^b[3]&a[3]^b[4]&a[4];
assign z[4] = b[0]&a[4]^b[4]&a[0]^b[1]&a[3]^b[3]&a[1]^b[2]&a[2]^b[3]&a[4]^b[4]&a[3];
endmodule
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -