小舍YZ 发表于 2017-8-22 15:50:16

圈子秘钥的生成

圈子秘钥的生成

module key_get(input pre_key,   
   input des_mode,
               input inter_num,
               output wire new_key,
               output reg out_key);
               
   
reg pre_key_0, pre_key_1;
reg pre_key_var;
               
always @(*)
begin
if(des_mode == 1'b0)
begin   
case(inter_num)   
4'd0, 4'd1, 4'd8, 4'd15:   
begin   
   pre_key_var = pre_key;   
   pre_key_0 = pre_key_var;   
   pre_key_var =pre_key_var << 1;   
   pre_key_var = pre_key_0;   
   pre_key_0 = pre_key_var;   
   pre_key_var =pre_key_var << 1;   
   pre_key_var = pre_key_0;   
end         4'd2, 4'd3, 4'd4, 4'd5, 4'd6, 4'd7, 4'd9, 4'd10, 4'd11,
4'd12,
4'd13, 4'd14:   
begin   
   pre_key_var = pre_key;   
   {pre_key_1, pre_key_0} = pre_key_var;

   pre_key_var =pre_key_var << 2;   
   pre_key_var = {pre_key_1, pre_key_0};   
   {pre_key_1, pre_key_0} = pre_key_var;   
   pre_key_var =pre_key_var << 2;   
   pre_key_var = {pre_key_1, pre_key_0};   
end   
endcase
end
else
begin   
    case(inter_num)   
4'd0: pre_key_var = pre_key;   
4'd1, 4'd8, 4'd15:   
begin   
   pre_key_var = pre_key;   
   pre_key_0 = pre_key_var;   
   pre_key_var =pre_key_var >> 1;   
   pre_key_var = pre_key_0;   
   pre_key_0 = pre_key_var;   
   pre_key_var =pre_key_var >> 1;   
   pre_key_var = pre_key_0;      
end         
default:   
begin      
   pre_key_var = pre_key;   
   {pre_key_1, pre_key_0} = pre_key_var;   
   pre_key_var =pre_key_var >> 2;   
   pre_key_var = {pre_key_1, pre_key_0};   
   {pre_key_1, pre_key_0} = pre_key_var;   
   pre_key_var =pre_key_var >> 2;   
   pre_key_var = {pre_key_1, pre_key_0};      
end   
endcase
end   
out_key = pre_key_var;
end
   
assign   new_key =

                                        {pre_key_var,pre_key_var,pre_key_var,pre_key_var,pre_key_var,pre_key_var,         
                                          
                                        pre_key_var,pre_key_var,pre_key_var,pre_key_var,pre_key_var,pre_key_var,      
                                                       
                                        pre_key_var,pre_key_var,pre_key_var,pre_key_var,pre_key_var,pre_key_var,      
                                                       
                                        pre_key_var,pre_key_var,pre_key_var,pre_key_var,pre_key_var,pre_key_var,      
                                                       
                                        pre_key_var,pre_key_var,pre_key_var,pre_key_var,pre_key_var,pre_key_var,      
                                                               
                                        pre_key_var,pre_key_var,pre_key_var,pre_key_var,pre_key_var,pre_key_var,      
                                                               
                                        pre_key_var,pre_key_var,pre_key_var,pre_key_var,pre_key_var,pre_key_var,      
                                                               
                                        pre_key_var,pre_key_var,pre_key_var,pre_key_var,pre_key_var,pre_key_var};
                                                  
endmodule
页: [1]
查看完整版本: 圈子秘钥的生成