⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 des_ctrl.v

📁 Verilog实现的DES和3-DES
💻 V
📖 第 1 页 / 共 3 页
字号:
		else des3_next_state = des3_des2_state;
    des3_des3_state:
    		if(des_ready)	des3_next_state = des3_idle_state;
		else des3_next_state = des3_des3_state;
  endcase
end



//------------------------------------------------------------------
//des1 state,des2_state,des3_state;
//------------------------------------------------------------------
		assign des1_state=(des3_current_state==des3_des1_state)?1'b1:1'b0;
		assign des2_state=(des3_current_state==des3_des2_state)?1'b1:1'b0;
		assign des3_state=(des3_current_state==des3_des3_state)?1'b1:1'b0;

//------------------------------------------------------------------
//des3 ready signal
//------------------------------------------------------------------
	assign des3_ready=(des3_current_state==des3_des3_state && des_ready)?1'b1:1'b0;		     
			    
//------------------------------------------------------------------
//des encrypt signal
//------------------------------------------------------------------
		assign des_encrypt=((des3_encrypt_busy && (des1_state||des3_state))||
		                    (des3_decrypt_busy && des2_state)||
				    (des_encrypt_busy && des_cal)) ? 1'b1:1'b0;

//-----------------------------------------------------------------
//des decrypt signal
//-----------------------------------------------------------------
		assign des_decrypt=((des3_decrypt_busy && (des1_state||des3_state))||
		                    (des3_encrypt_busy && des2_state)||
				    (des_decrypt_busy && des_cal)) ? 1'b1:1'b0;

	
/****************************************************************/

/**************************des fsm*******************************/
always @ (posedge clk or negedge rst_n)
begin
  if(!rst_n)
      des_current_state<=des_idle_state;
   else if(sw_rst) des_current_state<=des_idle_state;
        else  des_current_state<=des_next_state;
end

always @ (des_current_state or des_start or des3_busy )
begin
  case(des_current_state)
    des_idle_state:
             if(des_start)
	       des_next_state = des_IP_state;
	     else des_next_state = des_idle_state;
    des_IP_state:
    		des_next_state = des_lut1_state;
    des_lut1_state:
 		des_next_state = des_lut2_state;               	
    des_lut2_state:
    		des_next_state = des_lut3_state;
    des_lut3_state:
    		des_next_state = des_lut4_state;
    des_lut4_state:
    		des_next_state = des_lut5_state;
    des_lut5_state:
    		des_next_state = des_lut6_state;
    des_lut6_state:
    		des_next_state = des_lut7_state;
    des_lut7_state:
    		des_next_state = des_lut8_state;
    des_lut8_state:
    		des_next_state = des_lut9_state;
    des_lut9_state:
    		des_next_state = des_lut10_state;
    des_lut10_state:
    		des_next_state = des_lut11_state;
    des_lut11_state:
    		des_next_state = des_lut12_state;
    des_lut12_state:
    		des_next_state = des_lut13_state;
    des_lut13_state:
    		des_next_state = des_lut14_state;
    des_lut14_state:
    		des_next_state = des_lut15_state;
    des_lut15_state:
    		des_next_state = des_lut16_state;
    des_lut16_state:              
    		des_next_state = des_IP_1_state;
    des_IP_1_state:
     		des_next_state = des_ready_state;
    des_ready_state:
                if(des_start && des3_busy)
		  
		    des_next_state = des_IP_state;
		 else  
    		    des_next_state = des_idle_state;
    default:	
    		des_next_state = des_idle_state;    
  endcase
end
//------------------------------------------------------------------
//state signal
//------------------------------------------------------------------
		assign IP_state=(des_current_state==des_IP_state)?1'b1:1'b0;
		assign lut1_state=(des_current_state==des_lut1_state)?1'b1:1'b0;
		assign lut2_state=(des_current_state==des_lut2_state)?1'b1:1'b0;
		assign lut3_state=(des_current_state==des_lut3_state)?1'b1:1'b0;
		assign lut4_state=(des_current_state==des_lut4_state)?1'b1:1'b0;
		assign lut5_state=(des_current_state==des_lut5_state)?1'b1:1'b0;
		assign lut6_state=(des_current_state==des_lut6_state)?1'b1:1'b0;
		assign lut7_state=(des_current_state==des_lut7_state)?1'b1:1'b0;
		assign lut8_state=(des_current_state==des_lut8_state)?1'b1:1'b0;
		assign lut9_state=(des_current_state==des_lut9_state)?1'b1:1'b0;
		assign lut10_state=(des_current_state==des_lut10_state)?1'b1:1'b0;
		assign lut11_state=(des_current_state==des_lut11_state)?1'b1:1'b0;
		assign lut12_state=(des_current_state==des_lut12_state)?1'b1:1'b0;
		assign lut13_state=(des_current_state==des_lut13_state)?1'b1:1'b0;
		assign lut14_state=(des_current_state==des_lut14_state)?1'b1:1'b0;
		assign lut15_state=(des_current_state==des_lut15_state)?1'b1:1'b0;
		assign lut16_state=(des_current_state==des_lut16_state)?1'b1:1'b0;
		assign IP_1_state=(des_current_state==des_IP_1_state)?1'b1:1'b0;
		
//------------------------------------------------------------------
// IP change enable signal
//------------------------------------------------------------------
    	assign IP=(IP_state)? 1'b1:1'b0;    

//------------------------------------------------------------------
// des round enable signal
//------------------------------------------------------------------   
assign	
lut_en=(lut1_state||lut2_state||lut3_state||lut4_state||lut5_state||lut6_state||lut7_state||lut8_state||		
        lut9_state||lut10_state||lut11_state||lut12_state||lut13_state||lut14_state||lut15_state||lut16_state)?1'b1:1'b0;	

//------------------------------------------------------------------
// key shift 1 enable signal (encrypt)
//------------------------------------------------------------------   
	assign ls1=(IP_state && des_encrypt) ? 1'b1:1'b0;
	
	
//------------------------------------------------------------------
// key shift 2 enable signal (encrypt)
//------------------------------------------------------------------		
	assign ls2=(lut1_state && des_encrypt) ? 1'b1:1'b0;
	
//------------------------------------------------------------------
// key shift 3 enable signal (encrypt)
//------------------------------------------------------------------			
	assign ls3=(lut2_state && des_encrypt) ? 1'b1:1'b0;
		
//------------------------------------------------------------------
// key shift 4 enable signal (encrypt)
//------------------------------------------------------------------		
	assign ls4=(lut3_state && des_encrypt) ? 1'b1:1'b0;
		
//------------------------------------------------------------------
// key shift 5 enable signal (encrypt)
//------------------------------------------------------------------		
	assign ls5=(lut4_state && des_encrypt) ? 1'b1:1'b0;

//------------------------------------------------------------------
// key shift 6 enable signal (encrypt)
//------------------------------------------------------------------		
	assign ls6=(lut5_state && des_encrypt) ? 1'b1:1'b0;

//------------------------------------------------------------------
// key shift 7 enable signal (encrypt)
//------------------------------------------------------------------		
	assign ls7=(lut6_state && des_encrypt) ? 1'b1:1'b0;
	
//------------------------------------------------------------------
// key shift 8 enable signal (encrypt)
//------------------------------------------------------------------		
	assign ls8=(lut7_state && des_encrypt) ? 1'b1:1'b0;
	
//------------------------------------------------------------------
// key shift 9 enable signal (encrypt)
//------------------------------------------------------------------		
	assign ls9=(lut8_state && des_encrypt) ? 1'b1:1'b0;
	
//------------------------------------------------------------------
// key shift 10 enable signal (encrypt)
//------------------------------------------------------------------		
	assign ls10=(lut9_state && des_encrypt) ? 1'b1:1'b0;
	
//------------------------------------------------------------------
// key shift 11 enable signal (encrypt)
//------------------------------------------------------------------		
	assign ls11=(lut10_state && des_encrypt) ? 1'b1:1'b0;
	
//------------------------------------------------------------------
// key shift 12 enable signal (encrypt)
//------------------------------------------------------------------		
	assign ls12=(lut11_state && des_encrypt) ? 1'b1:1'b0;
	
//------------------------------------------------------------------
// key shift 13 enable signal (encrypt)
//------------------------------------------------------------------		
	assign ls13=(lut12_state && des_encrypt) ? 1'b1:1'b0;

//------------------------------------------------------------------
// key shift 14 enable signal (encrypt)
//------------------------------------------------------------------		
  	assign ls14=(lut13_state && des_encrypt) ? 1'b1:1'b0;
	
//------------------------------------------------------------------
// key shift 15 enable signal (encrypt)
//------------------------------------------------------------------		
	assign ls15=(lut14_state && des_encrypt) ? 1'b1:1'b0;
	
//------------------------------------------------------------------
// key shift 16 enable signal (encrypt)
//------------------------------------------------------------------		
	assign ls16=(lut15_state && des_encrypt) ? 1'b1:1'b0;

//------------------------------------------------------------------
// key shift 2 change enable signal (decrypt)
//------------------------------------------------------------------
	assign dls2=(lut1_state && des_decrypt) ? 1'b1:1'b0;

//------------------------------------------------------------------
// key shift 3 change enable signal (decrypt)
//------------------------------------------------------------------
	assign dls3=(lut2_state && des_decrypt) ? 1'b1:1'b0;

//------------------------------------------------------------------
// key shift 4 change enable signal (decrypt)
//------------------------------------------------------------------
	assign dls4=(lut3_state && des_decrypt) ? 1'b1:1'b0;

//------------------------------------------------------------------
// key shift 5 change enable signal (decrypt)
//------------------------------------------------------------------
	assign dls5=(lut4_state && des_decrypt) ? 1'b1:1'b0;

//------------------------------------------------------------------
// key shift 6 change enable signal (decrypt)
//------------------------------------------------------------------
	assign dls6=(lut5_state && des_decrypt) ? 1'b1:1'b0;

//------------------------------------------------------------------
// key shift 7 change enable signal (decrypt)
//------------------------------------------------------------------
	assign dls7=(lut6_state && des_decrypt) ? 1'b1:1'b0;

//------------------------------------------------------------------
// key shift 8 change enable signal (decrypt)
//------------------------------------------------------------------
	assign dls8=(lut7_state && des_decrypt) ? 1'b1:1'b0;

//------------------------------------------------------------------
// key shift 9 change enable signal (decrypt)
//------------------------------------------------------------------
	assign dls9=(lut8_state && des_decrypt) ? 1'b1:1'b0;

//------------------------------------------------------------------
// key shift 10 change enable signal (decrypt)
//------------------------------------------------------------------
	assign dls10=(lut9_state && des_decrypt) ? 1'b1:1'b0;


//------------------------------------------------------------------
// key shift 11 change enable signal (decrypt)
//------------------------------------------------------------------
	assign dls11=(lut10_state && des_decrypt) ? 1'b1:1'b0;

//------------------------------------------------------------------
// key shift 12 change enable signal (decrypt)
//------------------------------------------------------------------
	assign dls12=(lut11_state && des_decrypt) ? 1'b1:1'b0;

//------------------------------------------------------------------
// key shift 13 change enable signal (decrypt)
//------------------------------------------------------------------
	assign dls13=(lut12_state && des_decrypt) ? 1'b1:1'b0;

//------------------------------------------------------------------
// key shift 14 change enable signal (decrypt)
//------------------------------------------------------------------
	assign dls14=(lut13_state && des_decrypt) ? 1'b1:1'b0;

//------------------------------------------------------------------
// key shift 15 change enable signal (decrypt)
//------------------------------------------------------------------
	assign dls15=(lut14_state && des_decrypt) ? 1'b1:1'b0;

//------------------------------------------------------------------
// key shift 16 change enable signal (decrypt)
//------------------------------------------------------------------
	assign dls16=(lut15_state && des_decrypt) ? 1'b1:1'b0;

			
//------------------------------------------------------------------
// des ip-1 change enable signal
//------------------------------------------------------------------		
	assign IP_1=(IP_1_state) ? 1'b1:1'b0;

//------------------------------------------------------------------
// data_reg select com1 enable signal
//------------------------------------------------------------------		
	assign data_sel_com1=(lut1_state||lut2_state||lut3_state||lut4_state||lut5_state||lut6_state||lut7_state||lut8_state||
	                      lut9_state||lut10_state||lut11_state||lut12_state||lut13_state||lut14_state||lut15_state)?1'b1:1'b0;
			      
//------------------------------------------------------------------
// data_reg select com2 enable signal
//------------------------------------------------------------------		
	assign data_sel_com2=(lut16_state)?1'b1:1'b0;

//------------------------------------------------------------------
// des ready signal
//------------------------------------------------------------------		
	assign des_ready=(des_current_state==des_ready_state) ? 1'b1:1'b0;

/****************************************************************/

endmodule

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -