Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- module error_correction(
- input [6:0]IN,
- output [6:0]OUT
- );
- wire s1,s2,s3;
- assign s1 = IN[6]^IN[5]^IN[4]^IN[2];
- assign s2 = IN[6]^IN[5]^IN[3]^IN[1];
- assign s3 = IN[6]^IN[4]^IN[3]^IN[0];
- assign OUT= COR(IN,{s1,s2,s3});
- function [6:0]COR;
- input [6:0]in;
- input [2:0]q;
- case(q)
- 3'b111:COR = {~in[6],in[5:0]};
- 3'b110:COR = {in[6],~in[5],in[4:0]};
- 3'b101:COR = {in[6:5],~in[4],in[3:0]};
- 3'b011:COR = {in[6:4],~in[3],in[2:0]};
- 3'b100:COR = {in[6:3],~in[2],in[1:0]};
- 3'b010:COR = {in[6:2],~in[1],in[0]};
- 3'b001:COR = {in[6:1],~in[0]};
- 3'b000:COR = in;
- endcase
- endfunction
- endmodule
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement