📄 key_sel.v.txt
字号:
///////////////////////////////////////////////////////////////////////// //////// KEY_SEL //////// Select one of 16 sub-keys for round //////// //////// Author: Rudolf Usselmann //////// russelmann@hotmail.com //////// ///////////////////////////////////////////////////////////////////////////// //////// Copyright (C) 2000 Rudolf Usselmann //////// russelmann@hotmail.com //////// //////// This source file may be used and distributed without //////// restriction provided that this copyright statement is not //////// removed from the file and that any derivative work contains //////// the original copyright notice and the associated disclaimer.//////// //////// THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY //////// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED //////// TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS //////// FOR A PARTICULAR PURPOSE. IN NO EVENT SHALL THE AUTHOR //////// OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, //////// INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES //////// (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE //////// GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR //////// BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF //////// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT //////// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT //////// OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE //////// POSSIBILITY OF SUCH DAMAGE. //////// /////////////////////////////////////////////////////////////////////////module key_sel(K_sub, K, roundSel);output [1:48] K_sub;input [55:0] K;input [3:0] roundSel;reg [1:48] K_sub;wire [1:48] K1, K2, K3, K4, K5, K6, K7, K8, K9;wire [1:48] K10, K11, K12, K13, K14, K15, K16;always @(K1 or K2 or K3 or K4 or K5 or K6 or K7 or K8 or K9 or K10 or K11 or K12 or K13 or K14 or K15 or K16 or roundSel) case (roundSel) // synopsys full_case parallel_case 0: K_sub = K1; 1: K_sub = K2; 2: K_sub = K3; 3: K_sub = K4; 4: K_sub = K5; 5: K_sub = K6; 6: K_sub = K7; 7: K_sub = K8; 8: K_sub = K9; 9: K_sub = K10; 10: K_sub = K11; 11: K_sub = K12; 12: K_sub = K13; 13: K_sub = K14; 14: K_sub = K15; 15: K_sub = K16; endcaseassign K1[1] = K[47];assign K1[2] = K[11];assign K1[3] = K[26];assign K1[4] = K[3];assign K1[5] = K[13];assign K1[6] = K[41];assign K1[7] = K[27];assign K1[8] = K[6];assign K1[9] = K[54];assign K1[10] = K[48];assign K1[11] = K[39];assign K1[12] = K[19];assign K1[13] = K[53];assign K1[14] = K[25];assign K1[15] = K[33];assign K1[16] = K[34];assign K1[17] = K[17];assign K1[18] = K[5];assign K1[19] = K[4];assign K1[20] = K[55];assign K1[21] = K[24];assign K1[22] = K[32];assign K1[23] = K[40];assign K1[24] = K[20];assign K1[25] = K[36];assign K1[26] = K[31];assign K1[27] = K[21];assign K1[28] = K[8];assign K1[29] = K[23];assign K1[30] = K[52];assign K1[31] = K[14];assign K1[32] = K[29];assign K1[33] = K[51];assign K1[34] = K[9];assign K1[35] = K[35];assign K1[36] = K[30];assign K1[37] = K[2];assign K1[38] = K[37];assign K1[39] = K[22];assign K1[40] = K[0];assign K1[41] = K[42];assign K1[42] = K[38];assign K1[43] = K[16];assign K1[44] = K[43];assign K1[45] = K[44];assign K1[46] = K[1];assign K1[47] = K[7];assign K1[48] = K[28];assign K2[1] = K[54];assign K2[2] = K[18];assign K2[3] = K[33];assign K2[4] = K[10];assign K2[5] = K[20];assign K2[6] = K[48];assign K2[7] = K[34];assign K2[8] = K[13];assign K2[9] = K[4];assign K2[10] = K[55];assign K2[11] = K[46];assign K2[12] = K[26];assign K2[13] = K[3];assign K2[14] = K[32];assign K2[15] = K[40];assign K2[16] = K[41];assign K2[17] = K[24];assign K2[18] = K[12];assign K2[19] = K[11];assign K2[20] = K[5];assign K2[21] = K[6];assign K2[22] = K[39];assign K2[23] = K[47];assign K2[24] = K[27];assign K2[25] = K[43];assign K2[26] = K[38];assign K2[27] = K[28];assign K2[28] = K[15];assign K2[29] = K[30];assign K2[30] = K[0];assign K2[31] = K[21];assign K2[32] = K[36];assign K2[33] = K[31];assign K2[34] = K[16];assign K2[35] = K[42];assign K2[36] = K[37];assign K2[37] = K[9];assign K2[38] = K[44];assign K2[39] = K[29];assign K2[40] = K[7];assign K2[41] = K[49];assign K2[42] = K[45];assign K2[43] = K[23];assign K2[44] = K[50];assign K2[45] = K[51];assign K2[46] = K[8];assign K2[47] = K[14];assign K2[48] = K[35];assign K3[1] = K[11];assign K3[2] = K[32];assign K3[3] = K[47];assign K3[4] = K[24];assign K3[5] = K[34];assign K3[6] = K[5];assign K3[7] = K[48];assign K3[8] = K[27];assign K3[9] = K[18];assign K3[10] = K[12];assign K3[11] = K[3];assign K3[12] = K[40];assign K3[13] = K[17];assign K3[14] = K[46];assign K3[15] = K[54];assign K3[16] = K[55];assign K3[17] = K[13];assign K3[18] = K[26];assign K3[19] = K[25];assign K3[20] = K[19];assign K3[21] = K[20];assign K3[22] = K[53];assign K3[23] = K[4];assign K3[24] = K[41];assign K3[25] = K[2];assign K3[26] = K[52];assign K3[27] = K[42];assign K3[28] = K[29];assign K3[29] = K[44];assign K3[30] = K[14];assign K3[31] = K[35];assign K3[32] = K[50];assign K3[33] = K[45];assign K3[34] = K[30];assign K3[35] = K[1];assign K3[36] = K[51];assign K3[37] = K[23];assign K3[38] = K[31];assign K3[39] = K[43];assign K3[40] = K[21];assign K3[41] = K[8];assign K3[42] = K[0];assign K3[43] = K[37];assign K3[44] = K[9];assign K3[45] = K[38];assign K3[46] = K[22];assign K3[47] = K[28];assign K3[48] = K[49];assign K4[1] = K[25];assign K4[2] = K[46];assign K4[3] = K[4];assign K4[4] = K[13];assign K4[5] = K[48];assign K4[6] = K[19];assign K4[7] = K[5];assign K4[8] = K[41];assign K4[9] = K[32];assign K4[10] = K[26];assign K4[11] = K[17];assign K4[12] = K[54];assign K4[13] = K[6];assign K4[14] = K[3];assign K4[15] = K[11];assign K4[16] = K[12];assign K4[17] = K[27];assign K4[18] = K[40];assign K4[19] = K[39];assign K4[20] = K[33];assign K4[21] = K[34];assign K4[22] = K[10];assign K4[23] = K[18];assign K4[24] = K[55];assign K4[25] = K[16];assign K4[26] = K[7];assign K4[27] = K[1];assign K4[28] = K[43];assign K4[29] = K[31];assign K4[30] = K[28];assign K4[31] = K[49];assign K4[32] = K[9];assign K4[33] = K[0];assign K4[34] = K[44];assign K4[35] = K[15];assign K4[36] = K[38];assign K4[37] = K[37];assign K4[38] = K[45];assign K4[39] = K[2];assign K4[40] = K[35];assign K4[41] = K[22];assign K4[42] = K[14];assign K4[43] = K[51];assign K4[44] = K[23];assign K4[45] = K[52];assign K4[46] = K[36];assign K4[47] = K[42];assign K4[48] = K[8];assign K5[1] = K[39];assign K5[2] = K[3];assign K5[3] = K[18];assign K5[4] = K[27];assign K5[5] = K[5];assign K5[6] = K[33];assign K5[7] = K[19];assign K5[8] = K[55];assign K5[9] = K[46];assign K5[10] = K[40];assign K5[11] = K[6];assign K5[12] = K[11];assign K5[13] = K[20];assign K5[14] = K[17];assign K5[15] = K[25];assign K5[16] = K[26];assign K5[17] = K[41];assign K5[18] = K[54];assign K5[19] = K[53];assign K5[20] = K[47];assign K5[21] = K[48];assign K5[22] = K[24];assign K5[23] = K[32];assign K5[24] = K[12];assign K5[25] = K[30];assign K5[26] = K[21];assign K5[27] = K[15];assign K5[28] = K[2];assign K5[29] = K[45];assign K5[30] = K[42];assign K5[31] = K[8];assign K5[32] = K[23];assign K5[33] = K[14];assign K5[34] = K[31];assign K5[35] = K[29];assign K5[36] = K[52];assign K5[37] = K[51];assign K5[38] = K[0];assign K5[39] = K[16];assign K5[40] = K[49];assign K5[41] = K[36];assign K5[42] = K[28];assign K5[43] = K[38];assign K5[44] = K[37];assign K5[45] = K[7];assign K5[46] = K[50];assign K5[47] = K[1];assign K5[48] = K[22];assign K6[1] = K[53];assign K6[2] = K[17];assign K6[3] = K[32];assign K6[4] = K[41];assign K6[5] = K[19];assign K6[6] = K[47];assign K6[7] = K[33];assign K6[8] = K[12];assign K6[9] = K[3];assign K6[10] = K[54];assign K6[11] = K[20];assign K6[12] = K[25];assign K6[13] = K[34];assign K6[14] = K[6];assign K6[15] = K[39];assign K6[16] = K[40];assign K6[17] = K[55];assign K6[18] = K[11];assign K6[19] = K[10];assign K6[20] = K[4];assign K6[21] = K[5];assign K6[22] = K[13];assign K6[23] = K[46];assign K6[24] = K[26];assign K6[25] = K[44];assign K6[26] = K[35];assign K6[27] = K[29];assign K6[28] = K[16];assign K6[29] = K[0];assign K6[30] = K[1];assign K6[31] = K[22];assign K6[32] = K[37];assign K6[33] = K[28];assign K6[34] = K[45];assign K6[35] = K[43];assign K6[36] = K[7];assign K6[37] = K[38];assign K6[38] = K[14];assign K6[39] = K[30];assign K6[40] = K[8];assign K6[41] = K[50];assign K6[42] = K[42];assign K6[43] = K[52];assign K6[44] = K[51];assign K6[45] = K[21];assign K6[46] = K[9];assign K6[47] = K[15];assign K6[48] = K[36];assign K7[1] = K[10];assign K7[2] = K[6];assign K7[3] = K[46];assign K7[4] = K[55];assign K7[5] = K[33];assign K7[6] = K[4];assign K7[7] = K[47];assign K7[8] = K[26];assign K7[9] = K[17];assign K7[10] = K[11];assign K7[11] = K[34];assign K7[12] = K[39];assign K7[13] = K[48];assign K7[14] = K[20];assign K7[15] = K[53];assign K7[16] = K[54];assign K7[17] = K[12];assign K7[18] = K[25];assign K7[19] = K[24];assign K7[20] = K[18];assign K7[21] = K[19];assign K7[22] = K[27];assign K7[23] = K[3];assign K7[24] = K[40];assign K7[25] = K[31];assign K7[26] = K[49];assign K7[27] = K[43];assign K7[28] = K[30];assign K7[29] = K[14];assign K7[30] = K[15];assign K7[31] = K[36];assign K7[32] = K[51];assign K7[33] = K[42];assign K7[34] = K[0];assign K7[35] = K[2];assign K7[36] = K[21];assign K7[37] = K[52];assign K7[38] = K[28];assign K7[39] = K[44];assign K7[40] = K[22];assign K7[41] = K[9];assign K7[42] = K[1];assign K7[43] = K[7];assign K7[44] = K[38];assign K7[45] = K[35];assign K7[46] = K[23];assign K7[47] = K[29];assign K7[48] = K[50];assign K8[1] = K[24];assign K8[2] = K[20];assign K8[3] = K[3];assign K8[4] = K[12];assign K8[5] = K[47];assign K8[6] = K[18];assign K8[7] = K[4];assign K8[8] = K[40];assign K8[9] = K[6];assign K8[10] = K[25];assign K8[11] = K[48];assign K8[12] = K[53];assign K8[13] = K[5];assign K8[14] = K[34];assign K8[15] = K[10];assign K8[16] = K[11];assign K8[17] = K[26];assign K8[18] = K[39];
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -