📄 const_muls.v
字号:
//define the production matrix // 76543210 //w^8 = 00011101 // //| 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 | | 1 |//| 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 | * | 1 |//| 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 | | 1 |//| 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 + a6 + a5 + a4 = a0 + a4 + a5 + a6 // c1 = a1 + a7 + a6 + a5 = a1 + a5 + a6 + a7 // c2 = a2 + a0+a6 + a5+a7 + a4+a6 = a0 + a2 + a4 + a5 + a7 // c3 = a3 + a1+a6+a7 + a0+a5+a6 + a4+a5+a7 = a0 + a1 + a3 + a4 // c4 = a4 + a2+a6+a7 + a1+a5+a6+a7 + a0+a4+a5+a6 = a0 + a1 + a2 + a6 // c5 = a5 + a3+a7 + a2+a6+a7 + a1+a5+a6+a7 = a1 + a2 + a3 + a7 // c6 = a6 + a4 + a3+a7 + a2+a6+a7 = a2 + a3 + a4 // c7 = a7 + a5 + a4 + a3+a7 = a3 + a4 + a5 assign p[0] = a[0] ^ a[4] ^ a[5] ^ a[6]; assign p[1] = a[1] ^ a[5] ^ a[6] ^ a[7]; assign p[2] = a[0] ^ a[2] ^ a[4] ^ a[5] ^ a[7]; assign p[3] = a[0] ^ a[1] ^ a[3] ^ a[4]; assign p[4] = a[0] ^ a[1] ^ a[2] ^ a[6]; assign p[5] = a[1] ^ a[2] ^ a[3] ^ a[7]; assign p[6] = a[2] ^ a[3] ^ a[4]; assign p[7] = a[3] ^ a[4] ^ a[5]; assign b = ( sel == 1'b1 ) ? 8'h0 : p ; endmodule //const_mul_w8 //////////////////////////////////////////////////////////////////////////////////////////////////////////////module const_mul_w9 ( a , b , sel ); input [7:0] a; input sel; output [7:0] b; wire [7:0] p; //define the production matrix // 76543210 //w^9 = 00111010 // //| 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 | * | 1 |//| 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 | | 1 |//| c5 | | a5 a4 a3+a7 a2+a6+a7 a1+a5+a6+a7 a0+a4+a5+a6 a3+a4+a5 a2+a3+a4 | | 1 |//| 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 + a5 + a4 + a3+a7 = a3 + a4 + a5 // c1 = a0 + a6 + a5 + a4 = a0 + a4 + a5 + a6 // c2 = a1+a7 + a5+a7 + a4+a6 + a3+a5+a7 = a1 + a3 + a4 + a6 + a7 // c3 = a2+a7 + a0+a5+a6 + a4+a5+a7 + a3+a4+a6+a7 = a0 + a2 + a3 + a7 // c4 = a3+a7 + a1+a5+a6+a7 + a0+a4+a5+a6 + a3+a4+a5 = a0 + a1 + a5 // c5 = a4 + a2+a6+a7 + a1+a5+a6+a7 + a0+a4+a5+a6 = a0 + a1 + a2 + a6 // c6 = a5 + a3+a7 + a2+a6+a7 + a1+a5+a6+a7 = a1 + a2 + a3 + a7 // c7 = a6 + a4 + a3+a7 + a2+a6+a7 = a2 + a3 + a4 assign p[0] = a[3] ^ a[4] ^ a[5]; assign p[1] = a[0] ^ a[4] ^ a[5] ^ a[6]; assign p[2] = a[1] ^ a[3] ^ a[4] ^ a[6] ^ a[7]; assign p[3] = a[0] ^ a[2] ^ a[3] ^ a[7]; assign p[4] = a[0] ^ a[1] ^ a[5]; assign p[5] = a[0] ^ a[1] ^ a[2] ^ a[6]; assign p[6] = a[1] ^ a[2] ^ a[3] ^ a[7]; assign p[7] = a[2] ^ a[3] ^ a[4]; assign b = ( sel == 1'b1 ) ? 8'h0 : p ; endmodule //const_mul_w9 //////////////////////////////////////////////////////////////////////////////////////////////////////////////module const_mul_w10 ( a , b , sel ); input [7:0] a; input sel; output [7:0] b; wire [7:0] p; //define the production matrix // 76543210 //w^10 = 01110100 // //| 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 |//| c2 | | a2 a1+a7 a0+a6 a5+a7 a4+a6 a3+a5+a7 a2+a4+a6+a7 a1+a3+a5+a6 | | 1 |//| 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 | | 1 |//| c5 | | a5 a4 a3+a7 a2+a6+a7 a1+a5+a6+a7 a0+a4+a5+a6 a3+a4+a5 a2+a3+a4 | | 1 |//| c6 | | a6 a5 a4 a3+a7 a2+a6+a7 a1+a5+a6+a7 a0+a4+a5+a6 a3+a4+a5 | | 1 |//| c7 | | a7 a6 a5 a4 a3+a7 a2+a6+a7 a1+a5+a6+a7 a0+a4+a5+a6 | | 0 |// // c0 = a6 + a4 + a3+a7 + a2+a6+a7 = a2 + a3 + a4 // c1 = a7 + a5 + a4 + a3+a7 = a3 + a4 + a5 // c2 = a0+a6 + a4+a6 + a3+a5+a7 + a2+a4+a6+a7 = a0 + a2 + a3 + a5 + a6 // c3 = a1+a6+a7 + a4+a5+a7 + a3+a4+a6+a7 + a2+a3+a5+a6 = a1 + a2 + a6 + a7 // c4 = a2+a6+a7 + a0+a4+a5+a6 + a3+a4+a5 + a2+a3+a4 = a0 + a4 + a7 // c5 = a3+a7 + a1+a5+a6+a7 + a0+a4+a5+a6 + a3+a4+a5 = a0 + a1 + a5 // c6 = a4 + a2+a6+a7 + a1+a5+a6+a7 + a0+a4+a5+a6 = a0 + a1 + a2 + a6 // c7 = a5 + a3+a7 + a2+a6+a7 + a1+a5+a6+a7 = a1 + a2 + a3 + a7 assign p[0] = a[2] ^ a[3] ^ a[4]; assign p[1] = a[3] ^ a[4] ^ a[5];assign p[2] = a[0] ^ a[2] ^ a[3] ^ a[5] ^ a[6];assign p[3] = a[1] ^ a[2] ^ a[6] ^ a[7]; assign p[4] = a[0] ^ a[4] ^ a[7]; assign p[5] = a[0] ^ a[1] ^ a[5]; assign p[6] = a[0] ^ a[1] ^ a[2] ^ a[6]; assign p[7] = a[1] ^ a[2] ^ a[3] ^ a[7]; assign b = ( sel == 1'b1 ) ? 8'h0 : p ; endmodule //const_mul_w10 ////////////////////////////////////////////////////////////////////////////////////////////////////////////// module const_mul_w11 ( a , b , sel ); input [7:0] a; input sel;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -