📄 const_muls.v
字号:
// //Design : Reed-Solomon decoder RS(204,188) in QAM // //File Name : const_muls.v // //Perpose : const_muls.v contains the constant multipliers on polynomial // bases in GF(2^8) that are needed by the modules in decoder// GF(2^8) of D^8 + D^4 + D^3 + D^2 + 1 (Decimal 285) // //synopsys translate_off `include "timescale.v" //synopsys translate_on //define the production matrix //| c0 | | a0 a7 a6 a5 a4 a3+a7 a2+a6+a7 a1+a5+a6+a7 | | b0 |//| c1 | | a1 a0 a7 a6 a5 a4 a3+a7 a2+a6+a7 | | b1 |//| c2 | | a2 a1+a7 a0+a6 a5+a7 a4+a6 a3+a5+a7 a2+a4+a6+a7 a1+a3+a5+a6 | | b2 |//| c3 | = | a3 a2+a7 a1+a6+a7 a0+a5+a6 a4+a5+a7 a3+a4+a6+a7 a2+a3+a5+a6 a1+a2+a4+a5 | * | b3 |//| c4 | | a4 a3+a7 a2+a6+a7 a1+a5+a6+a7 a0+a4+a5+a6 a3+a4+a5 a2+a3+a4 a1+a2+a3+a7 | | b4 |//| c5 | | a5 a4 a3+a7 a2+a6+a7 a1+a5+a6+a7 a0+a4+a5+a6 a3+a4+a5 a2+a3+a4 | | b5 |//| c6 | | a6 a5 a4 a3+a7 a2+a6+a7 a1+a5+a6+a7 a0+a4+a5+a6 a3+a4+a5 | | b6 |//| c7 | | a7 a6 a5 a4 a3+a7 a2+a6+a7 a1+a5+a6+a7 a0+a4+a5+a6 | | b7 |///////////////////////////////////////////////////////////////////////////////////////////////////////////////module const_mul_w0 ( a , b , sel );input [7:0] a;input sel;output [7:0] b;wire [7:0] p;//define the production matrix // 76543210//w^0 = 00000001////| c0 | | a0 a7 a6 a5 a4 a3+a7 a2+a6+a7 a1+a5+a6+a7 | | 1 |//| c1 | | a1 a0 a7 a6 a5 a4 a3+a7 a2+a6+a7 | | 0 |//| c2 | | a2 a1+a7 a0+a6 a5+a7 a4+a6 a3+a5+a7 a2+a4+a6+a7 a1+a3+a5+a6 | | 0 |//| c3 | = | a3 a2+a7 a1+a6+a7 a0+a5+a6 a4+a5+a7 a3+a4+a6+a7 a2+a3+a5+a6 a1+a2+a4+a5 | * | 0 |//| c4 | | a4 a3+a7 a2+a6+a7 a1+a5+a6+a7 a0+a4+a5+a6 a3+a4+a5 a2+a3+a4 a1+a2+a3+a7 | | 0 |//| c5 | | a5 a4 a3+a7 a2+a6+a7 a1+a5+a6+a7 a0+a4+a5+a6 a3+a4+a5 a2+a3+a4 | | 0 |//| c6 | | a6 a5 a4 a3+a7 a2+a6+a7 a1+a5+a6+a7 a0+a4+a5+a6 a3+a4+a5 | | 0 | //| c7 | | a7 a6 a5 a4 a3+a7 a2+a6+a7 a1+a5+a6+a7 a0+a4+a5+a6 | | 0 |// // c0 = a0// c1 = a1// c2 = a2// c3 = a3// c4 = a4// c5 = a5// c6 = a6// c7 = a7assign p[0] = a[0];assign p[1] = a[1];assign p[2] = a[2];assign p[3] = a[3];assign p[4] = a[4];assign p[5] = a[5];assign p[6] = a[6];assign p[7] = a[7];assign b = ( sel == 1'b1 ) ? 8'h0 : p ;endmodule //const_mul_w0//////////////////////////////////////////////////////////////////////////////////////////////////////////////module const_mul_w1 ( a , b , sel ); input [7:0] a; input sel; output [7:0] b; wire [7:0] p; //define the production matrix // 76543210 //w^1 = 00000010 // //| c0 | | a0 a7 a6 a5 a4 a3+a7 a2+a6+a7 a1+a5+a6+a7 | | 0 |//| c1 | | a1 a0 a7 a6 a5 a4 a3+a7 a2+a6+a7 | | 1 |//| c2 | | a2 a1+a7 a0+a6 a5+a7 a4+a6 a3+a5+a7 a2+a4+a6+a7 a1+a3+a5+a6 | | 0 |//| c3 | = | a3 a2+a7 a1+a6+a7 a0+a5+a6 a4+a5+a7 a3+a4+a6+a7 a2+a3+a5+a6 a1+a2+a4+a5 | * | 0 |//| c4 | | a4 a3+a7 a2+a6+a7 a1+a5+a6+a7 a0+a4+a5+a6 a3+a4+a5 a2+a3+a4 a1+a2+a3+a7 | | 0 |//| c5 | | a5 a4 a3+a7 a2+a6+a7 a1+a5+a6+a7 a0+a4+a5+a6 a3+a4+a5 a2+a3+a4 | | 0 |//| c6 | | a6 a5 a4 a3+a7 a2+a6+a7 a1+a5+a6+a7 a0+a4+a5+a6 a3+a4+a5 | | 0 |//| c7 | | a7 a6 a5 a4 a3+a7 a2+a6+a7 a1+a5+a6+a7 a0+a4+a5+a6 | | 0 |// // c0 = a7 // c1 = a0 // c2 = a1+a7 // c3 = a2+a7 // c4 = a3+a7 // c5 = a4 // c6 = a5 // c7 = a6 assign p[0] = a[7]; assign p[1] = a[0]; assign p[2] = a[1] ^ a[7]; assign p[3] = a[2] ^ a[7]; assign p[4] = a[3] ^ a[7]; assign p[5] = a[4]; assign p[6] = a[5]; assign p[7] = a[6]; assign b = ( sel == 1'b1 ) ? 8'h0 : p ; endmodule //const_mul_w1 //////////////////////////////////////////////////////////////////////////////////////////////////////////////module const_mul_w2 ( a , b , sel ); input [7:0] a; input sel; output [7:0] b; wire [7:0] p; //define the production matrix // 76543210 //w^2 = 00000100 // //| c0 | | a0 a7 a6 a5 a4 a3+a7 a2+a6+a7 a1+a5+a6+a7 | | 0 |//| c1 | | a1 a0 a7 a6 a5 a4 a3+a7 a2+a6+a7 | | 0 |
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -