亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? des_ctrl.v

?? Verilog實(shí)現(xiàn)的DES和3-DES
?? V
?? 第 1 頁 / 共 3 頁
字號(hào):
  begin
    if(ready) des3_encrypt_busy<=1'b0; 
    else if(DES3_encrypt_start ||(DES3_decrypt_start &&(CFB || OFB)) )  des3_encrypt_busy<=1'b1;
  end
end


//---------------------------
//3DES decipher busy signal
//---------------------------
always @(posedge clk or negedge rst_n)
begin
  if(!rst_n)
     des3_decrypt_busy<=1'b0;
  else
  if(sw_rst) des3_decrypt_busy<=1'b0;
  else
  begin
     if(ready) des3_decrypt_busy<=1'b0;
     else if(DES3_decrypt_start && (ECB || CBC))  des3_decrypt_busy<=1'b1;
  end
end

//---------------------------
//des_busy signal
//---------------------------
always @(posedge clk or negedge rst_n)
begin
  if(!rst_n) 
  	des_busy<=1'b0;
  else if(sw_rst) des_busy<=1'b0;
       else 
       begin
         if(des_start) des_busy<=1'b1;
	 else if(des_ready) des_busy<=1'b0;
       end
end

//---------------------------
//3des busy signal
//---------------------------
always @ (posedge clk or negedge rst_n)
begin
  if(!rst_n)
  	des3_busy<=1'b0;
  else if(sw_rst) des3_busy<=1'b0;
       else
       begin
          if(des3_start) des3_busy<=1'b1;
          else if(des3_ready) des3_busy<=1'b0;
       end
end
/*****************************************************************/

//---------------------------
//iv_reg back tmp
//---------------------------
reg back_tmp;
always @ (posedge clk or negedge rst_n)
begin
  if(!rst_n) back_tmp<=1'b0;
  else if(sw_rst) back_tmp<=1'b0;
       else
         begin
	    if(ready) back_tmp<=1'b0;
	    else if(CFB && (DES_decrypt_start||DES3_decrypt_start)) back_tmp<=1'b1;
	 end
end


/**************************output signal****************************/
/*
reg countero;
always @(posedge clk or negedge rst_n)
begin
  if(!rst_n) countero<=1'd0;
  else if(sw_rst) countero<=1'd0;
       else 
       begin
         if(des_start ||des3_start) countero<=1'b0;
	 else 
         if(buff_out_load ) countero<=1'd1;
       end
end
*/
//wire sel_left,sel_right;
//assign sel_left=((Left_first && (!countero))||((!Left_first) &&(countero||((!countero)&&((OFB||CFB)&&(s_1||s_8|||s_16||s_32)))))) ;
//assign sel_right=((Left_first && countero)||((!Left_first) &&(!countero)&&(!((OFB||CFB)&&(s_1||s_8|||s_16||s_32)))));

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


/**************************whole work mode des and 3des **********/
always @ (posedge clk or negedge rst_n)
begin
  if(!rst_n) 
      des_mode_current_state<=des_mode_idle_state;
  else if(sw_rst) des_mode_current_state<=des_mode_idle_state;
       else des_mode_current_state<=des_mode_next_state;
end
always @ (des_mode_current_state or ECB or CBC or CFB or OFB or DES_encrypt_start or DES_decrypt_start or DES3_encrypt_start or
DES3_decrypt_start or des_encrypt_busy or des_decrypt_busy or des_ready or des3_ready or des3_encrypt_busy or des3_decrypt_busy)
begin
  case(des_mode_current_state)
    des_mode_idle_state:
    		if(ECB&&(DES_encrypt_start||DES_decrypt_start||DES3_encrypt_start||DES3_decrypt_start))
		                    des_mode_next_state = des_mode_buff_2_data_1_state;
		else if(CBC&&(DES_encrypt_start || DES3_encrypt_start))
		                    des_mode_next_state = des_mode_buff_xor_iv_state;
		     else if(CBC&&(DES_decrypt_start || DES3_decrypt_start))
		                    des_mode_next_state = des_mode_buff_2_data_2_state;
		           else if((CFB||OFB)&&(DES_encrypt_start||DES_decrypt_start||DES3_encrypt_start||DES3_decrypt_start))
			                  des_mode_next_state = des_mode_iv_2_data_state;
				else des_mode_next_state = des_mode_idle_state;
    des_mode_buff_2_data_1_state:
    		if(des_encrypt_busy || des_decrypt_busy)
				 des_mode_next_state = des_mode_des_cal_1_state;
		else 
		  des_mode_next_state = des_mode_des3_cal_1_state;
   des_mode_des_cal_1_state:
   		if(des_ready) des_mode_next_state = des_mode_idle_state;
		else des_mode_next_state = des_mode_des_cal_1_state;
   des_mode_des3_cal_1_state:
   		if(des3_ready) des_mode_next_state = des_mode_idle_state;
		else des_mode_next_state = des_mode_des3_cal_1_state;
   des_mode_buff_xor_iv_state:
   		if(des_encrypt_busy) des_mode_next_state = des_mode_des_cal_2_state;
		else
		 des_mode_next_state = des_mode_des3_cal_2_state;
   des_mode_buff_2_data_2_state:
   		if(des_decrypt_busy) des_mode_next_state = des_mode_des_cal_2_state;
		else   des_mode_next_state = des_mode_des3_cal_2_state;
   des_mode_des_cal_2_state:
   		if(des_ready && des_encrypt_busy) des_mode_next_state = des_mode_data_2_iv_state;
		else if(des_ready && des_decrypt_busy) des_mode_next_state = des_mode_data_xor_iv_state;
		      else des_mode_next_state = des_mode_des_cal_2_state;
   des_mode_des3_cal_2_state:
   		if(des3_ready && des3_encrypt_busy) des_mode_next_state = des_mode_data_2_iv_state;
		else if(des3_ready && des3_decrypt_busy) des_mode_next_state = des_mode_data_xor_iv_state;
		     else des_mode_next_state = des_mode_des3_cal_2_state;
   des_mode_data_2_iv_state:
   		des_mode_next_state = des_mode_idle_state;
   des_mode_data_xor_iv_state:
   		des_mode_next_state = des_mode_idle_state;
   des_mode_iv_2_data_state:
                if(des_encrypt_busy || des_decrypt_busy) des_mode_next_state =  des_mode_des_cal_3_state;
		else des_mode_next_state = des_mode_des3_cal_3_state;
		
   des_mode_des_cal_3_state:
              	if(des_ready && CFB) des_mode_next_state = des_mode_tmp_xor_data_state;
		else if(des_ready && OFB) des_mode_next_state = des_mode_iv_back_shift_state;
		     else des_mode_next_state = des_mode_des_cal_3_state;
   des_mode_des3_cal_3_state:
   		if(des3_ready && CFB) des_mode_next_state = des_mode_tmp_xor_data_state;
		else if(des3_ready && OFB) des_mode_next_state = des_mode_iv_back_shift_state;
		     else des_mode_next_state = des_mode_des3_cal_3_state;
   des_mode_tmp_xor_data_state:
            	if(CFB) des_mode_next_state = des_mode_iv_back_shift_state;
		else 	des_mode_next_state = des_mode_idle_state;
   des_mode_iv_back_shift_state:
   		if(OFB) des_mode_next_state = des_mode_tmp_xor_data_state;
		else des_mode_next_state = des_mode_idle_state;
   default: des_mode_next_state = des_mode_idle_state;
  endcase
end

//------------------------------------------------------------------
wire work_idle_state,work_des_cal_1_state,work_des_cal_2_state,work_des_cal_3_state;
wire work_des3_cal_1_state,work_des3_cal_2_state,work_des3_cal_3_state;
assign work_idle_state=(des_mode_current_state==des_mode_idle_state)?1'b1:1'b0;
assign work_des_cal_1_state=(des_mode_current_state==des_mode_des_cal_1_state)?1'b1:1'b0;
assign work_des_cal_2_state=(des_mode_current_state==des_mode_des_cal_2_state)?1'b1:1'b0;
assign work_des_cal_3_state=(des_mode_current_state==des_mode_des_cal_3_state)?1'b1:1'b0;
assign work_des3_cal_1_state=(des_mode_current_state==des_mode_des3_cal_1_state)?1'b1:1'b0;
assign work_des3_cal_2_state=(des_mode_current_state==des_mode_des3_cal_2_state)?1'b1:1'b0;
assign work_des3_cal_3_state=(des_mode_current_state==des_mode_des3_cal_3_state)?1'b1:1'b0;


//------------------------------------------------------------------
//buff_reg to data_reg enable signal
//------------------------------------------------------------------
wire buff_2_data_1_state,buff_2_data_2_state;
wire buff_2_data_1,buff_2_data_2;
		assign buff_2_data_1_state=(des_mode_current_state==des_mode_buff_2_data_1_state)?1'b1:1'b0;
		assign buff_2_data_2_state=(des_mode_current_state==des_mode_buff_2_data_2_state)?1'b1:1'b0;
		assign
buff_2_data_1=(work_idle_state&&ECB&&(DES_encrypt_start||DES_decrypt_start||DES3_encrypt_start||DES3_decrypt_start))?1'b1:1'b0;
		assign buff_2_data_2=(work_idle_state &&CBC&&(DES_decrypt_start || DES3_decrypt_start) )?1'b1:1'b0;
		assign buff_2_data=buff_2_data_1 || buff_2_data_2;
		assign data_sel_buff=buff_2_data ;
		assign tmp_sel_buff=buff_2_data_2 ||iv_2_data;

		
//------------------------------------------------------------------
//des_cal 3des_cal signal
//------------------------------------------------------------------
wire des_cal,des3_cal;
		assign des_cal=(work_des_cal_1_state||
		                work_des_cal_2_state||
				work_des_cal_3_state)?1'b1:1'b0;
				
		assign des3_cal=(work_des3_cal_1_state||
		                work_des3_cal_2_state||
				work_des3_cal_3_state)?1'b1:1'b0;
//------------------------------------------------------------------
//buff xor iv enable signal
//------------------------------------------------------------------
wire buff_xor_iv_state;		
		assign buff_xor_iv=(work_idle_state&&CBC&&(DES_encrypt_start || DES3_encrypt_start))?1'b1:1'b0;
                assign buff_xor_iv_state=(des_mode_current_state==des_mode_buff_xor_iv_state)?1'b1:1'b0;
//------------------------------------------------------------------
//data_reg to  iv_reg enable signal
//------------------------------------------------------------------
wire data_2_iv_state;
		assign data_2_iv_state=(des_mode_current_state==des_mode_data_2_iv_state)?1'b1:1'b0;
		assign data_2_iv=((work_des_cal_2_state&&des_ready && des_encrypt_busy)||
		                  (work_des3_cal_2_state && des3_ready && des3_encrypt_busy) )?1'b1:1'b0;
		assign iv_sel_data=data_2_iv;
//------------------------------------------------------------------
//data xor iv enable signal
//------------------------------------------------------------------
wire data_xor_iv_state;
		assign data_xor_iv_state=(des_mode_current_state==des_mode_data_xor_iv_state)?1'b1:1'b0;
		assign data_xor_iv=((work_des_cal_2_state && des_ready && des_decrypt_busy)||
		                    (work_des3_cal_2_state && des3_ready && des3_decrypt_busy) )?1'b1:1'b0;
		assign iv_sel_tmp=((work_des_cal_2_state && des_ready && des_decrypt_busy)||
		                    (work_des3_cal_2_state && des3_ready && des3_decrypt_busy) )?1'b1:1'b0;
//------------------------------------------------------------------
//iv_reg to data_reg enable signal
//------------------------------------------------------------------
wire iv_2_data_state;
wire tmp_xor_data_state;
		assign iv_2_data_state=(des_mode_current_state==des_mode_iv_2_data_state)?1'b1:1'b0;
		assign iv_2_data=(work_idle_state &&(CFB||OFB)&&(DES_encrypt_start||DES_decrypt_start||DES3_encrypt_start||DES3_decrypt_start) )?1'b1:1'b0;
		assign data_sel_iv=iv_2_data;
//------------------------------------------------------------------
//iv_reg shift enable signal
//------------------------------------------------------------------
wire iv_shift_state;
                assign iv_shift=((work_des3_cal_3_state && des3_ready && OFB)||(work_des_cal_3_state && des_ready &&
		OFB)||(tmp_xor_data_state && CFB ))?1'b1:1'b0;
		assign iv_shift_state=(des_mode_current_state==des_mode_iv_back_shift_state)?1'b1:1'b0;
		assign iv_shift_1=(iv_shift && s_1)?1'b1:1'b0;
		assign iv_shift_8=(iv_shift && s_8)?1'b1:1'b0;
		assign iv_shift_16=(iv_shift && s_16)?1'b1:1'b0;
		assign iv_shift_32=(iv_shift && s_32)?1'b1:1'b0;
		assign iv_shift_64=(iv_shift && s_64)?1'b1:1'b0;
		assign iv_back_tmp=back_tmp && iv_shift;
//------------------------------------------------------------------
//tmp_reg xor data_reg enable signal
//------------------------------------------------------------------

		assign tmp_xor_data=((work_des3_cal_3_state &&des3_ready && CFB)||(work_des_cal_3_state &&des_ready && CFB
		)||(iv_shift_state&& OFB ) )?1'b1:1'b0;
		assign tmp_xor_data_state=(des_mode_current_state==des_mode_tmp_xor_data_state)?1'b1:1'b0;
		assign tmp_xor_data_1=(tmp_xor_data && s_1)?1'b1:1'b0;
		assign tmp_xor_data_8=(tmp_xor_data && s_8)?1'b1:1'b0;
		assign tmp_xor_data_16=(tmp_xor_data && s_16)?1'b1:1'b0;
		assign tmp_xor_data_32=(tmp_xor_data && s_32)?1'b1:1'b0;
		assign tmp_xor_data_64=(tmp_xor_data && s_64)?1'b1:1'b0;
//------------------------------------------------------------------
//des start signal
//------------------------------------------------------------------
assign des_start=(des3_start||(des_ready&(des1_state||des2_state))|| 
                 ((des_encrypt_busy||des_decrypt_busy)&&(buff_2_data_1_state||buff_2_data_2_state||buff_xor_iv_state||iv_2_data_state))
		 )?1'b1:1'b0;


assign key_sel_k1=(((des_encrypt_busy || des_decrypt_busy) && des_start)||
                    (des3_encrypt_busy&&des3_start)||
		    (des3_decrypt_busy && des_ready && des2_state))?1'b1:1'b0;
assign key_sel_k2=(des1_state && des_ready)?1'b1:1'b0;	
assign key_sel_k3=((des3_encrypt_busy && des_ready && des2_state)||
                    (des3_decrypt_busy && des3_start))? 1'b1:1'b0;			     
//------------------------------------------------------------------
//3des start signal
//------------------------------------------------------------------
assign des3_start=((buff_2_data_1_state||buff_2_data_2_state||buff_xor_iv_state||iv_2_data_state)&&
                   (des3_encrypt_busy||des3_decrypt_busy))?1'b1:1'b0;


//------------------------------------------------------------------
//ready signal
//------------------------------------------------------------------
		assign ready=(((work_des_cal_1_state)&&des_ready)||
		               ((work_des3_cal_1_state)&&des3_ready)||
			       (work_des_cal_2_state && des_ready&&des_encrypt_busy)||
			       (work_des3_cal_2_state && des3_ready && des3_encrypt_busy)||
			       data_xor_iv_state||
			       tmp_xor_data_state 
			        )?1'b1:1'b0;



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


/**************************3des fsm******************************/
always @ (posedge clk or negedge rst_n)
begin
  if(!rst_n)
  	des3_current_state<=des3_idle_state;
  else if(sw_rst) des3_current_state<=des3_idle_state;
       else des3_current_state<=des3_next_state;
end

always @(des3_current_state or des3_start or des_ready )
begin
  case(des3_current_state)
    des3_idle_state:
    		if(des3_start)	des3_next_state = des3_des1_state;
		else des3_next_state = des3_idle_state;
    des3_des1_state:
    		if(des_ready) 	des3_next_state = des3_des2_state;
		else des3_next_state = des3_des1_state;
    des3_des2_state:
    		if(des_ready)	des3_next_state = des3_des3_state;

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
黄色日韩三级电影| 欧美精品九九99久久| 日本乱码高清不卡字幕| 日韩午夜在线观看| 亚洲精品乱码久久久久久| 国产乱码精品一区二区三区五月婷 | 亚洲欧美激情一区二区| 久久精品久久99精品久久| 欧美在线视频你懂得| 国产精品护士白丝一区av| 国产乱色国产精品免费视频| 日韩欧美一二三四区| 天天色综合成人网| 在线免费亚洲电影| 亚洲视频在线一区二区| 国产精品91一区二区| 精品久久久久久久久久久久久久久 | 亚洲色图欧洲色图婷婷| 丁香婷婷综合五月| 久久综合资源网| 久久精品国产99国产| 日韩一区二区三区免费观看| 日韩福利电影在线| 日韩丝袜美女视频| 日本亚洲视频在线| 3751色影院一区二区三区| 丝袜美腿亚洲一区| 欧美一级搡bbbb搡bbbb| 日本欧美一区二区三区| 日韩欧美国产高清| 国产一区二区三区免费在线观看| 日韩视频免费观看高清完整版| 秋霞午夜鲁丝一区二区老狼| 日韩一区二区视频| 久久电影网站中文字幕| 精品国产伦一区二区三区观看方式 | 成人免费看黄yyy456| 中文字幕第一区第二区| 成人激情图片网| 亚洲精品v日韩精品| 欧美影院精品一区| 日韩精品1区2区3区| 欧美va亚洲va在线观看蝴蝶网| 久久69国产一区二区蜜臀| 国产亚洲欧美日韩俺去了| 成人午夜视频在线| 亚洲自拍偷拍综合| 日韩欧美色电影| 国产a区久久久| 亚洲精品成a人| 日韩网站在线看片你懂的| 国产精品乡下勾搭老头1| 国产精品久久久久久久久快鸭| 91欧美一区二区| 日日摸夜夜添夜夜添国产精品| 精品国产伦一区二区三区观看方式| 国产成人综合在线| 玉米视频成人免费看| 欧美一区国产二区| 成人免费高清视频在线观看| 亚洲一二三四久久| 精品久久久久久亚洲综合网 | 亚洲蜜臀av乱码久久精品| 欧美另类久久久品| 国产成人鲁色资源国产91色综| 一区二区三区在线免费观看| 91精品麻豆日日躁夜夜躁| 顶级嫩模精品视频在线看| 亚洲国产精品久久人人爱| 精品久久久久久久久久久久久久久久久| 国产1区2区3区精品美女| 亚洲国产视频一区二区| 久久精品人人爽人人爽| 欧美日韩国产乱码电影| 国产大陆a不卡| 免费观看91视频大全| ●精品国产综合乱码久久久久| 欧美一区二区三区四区五区| 99精品视频中文字幕| 精品无码三级在线观看视频 | 5858s免费视频成人| 成人三级在线视频| 久久99精品久久久| 亚洲国产综合人成综合网站| 国产精品免费av| 日韩精品专区在线影院观看| 在线观看日韩av先锋影音电影院| 国产大陆a不卡| 国产又粗又猛又爽又黄91精品| 婷婷国产v国产偷v亚洲高清| 中文字幕综合网| 国产欧美日韩麻豆91| 精品国产不卡一区二区三区| 欧美区一区二区三区| 在线亚洲一区二区| www.久久精品| 成人免费高清视频| 国产99精品在线观看| 国产精品1区2区| 精品一区二区三区日韩| 全部av―极品视觉盛宴亚洲| 亚洲成人三级小说| 午夜精品久久久久| 日本欧洲一区二区| 蜜乳av一区二区| 日本一区中文字幕| 日本成人在线一区| 奇米色777欧美一区二区| 视频一区欧美日韩| 图片区小说区国产精品视频| 亚洲第一电影网| 亚洲成av人片| 日韩高清在线一区| 日本欧美一区二区在线观看| 日本成人在线一区| 国产在线精品一区二区三区不卡| 美女诱惑一区二区| 国产一区二区三区不卡在线观看| 国内久久精品视频| 国产成人自拍网| 成人sese在线| 在线免费一区三区| 在线播放视频一区| 亚洲精品在线观看视频| 国产视频一区不卡| 日韩一区在线免费观看| 亚洲精品乱码久久久久久久久| 夜夜精品浪潮av一区二区三区| 亚洲国产精品一区二区尤物区| 午夜a成v人精品| 狠狠色丁香婷综合久久| 成人免费看视频| 欧美日韩在线三级| 欧美大肚乱孕交hd孕妇| 国产精品沙发午睡系列990531| 亚洲欧美另类小说视频| 日韩高清一区二区| 国产iv一区二区三区| 欧美视频一区二区三区在线观看 | 88在线观看91蜜桃国自产| 精品国产乱码久久久久久久| 亚洲国产精品激情在线观看| 一区二区三区**美女毛片| 午夜久久久久久久久| 狠狠久久亚洲欧美| 色婷婷久久99综合精品jk白丝| 91麻豆精品久久久久蜜臀| 国产调教视频一区| 亚洲成人动漫在线免费观看| 国产一区欧美日韩| 91福利视频久久久久| 精品国产一区二区三区久久久蜜月 | 日韩av一区二区在线影视| 国产很黄免费观看久久| 欧美系列日韩一区| 久久九九久久九九| 亚洲一区二区三区四区在线| 国产精品1区二区.| 69堂精品视频| 亚洲视频狠狠干| 经典三级视频一区| 欧美日韩中文一区| 中文字幕精品—区二区四季| 日韩精品午夜视频| 日本久久精品电影| 欧美国产一区视频在线观看| 蜜臀av一区二区三区| 欧美视频自拍偷拍| 国产精品国产三级国产有无不卡| 日韩**一区毛片| 欧美性色黄大片手机版| 亚洲欧洲韩国日本视频| 国产乱码一区二区三区| 日韩欧美一级二级三级| 亚洲电影中文字幕在线观看| 成人av午夜影院| 国产婷婷色一区二区三区在线| 肉肉av福利一精品导航| 欧美日韩精品一区二区天天拍小说 | 成人做爰69片免费看网站| 日韩精品专区在线影院观看| 婷婷久久综合九色综合绿巨人| 91啪亚洲精品| 亚洲欧美激情一区二区| 91亚洲精品乱码久久久久久蜜桃| 日本一区二区三区在线不卡 | 国产精品乱码一区二区三区软件 | 中文字幕av一区二区三区高| 国内偷窥港台综合视频在线播放| 欧美一区二区三区精品| 天天操天天干天天综合网| 欧洲一区二区三区免费视频| 亚洲天堂av老司机| 91浏览器入口在线观看| 中文字幕视频一区| 91香蕉视频污| 一区二区视频在线| 一本一道综合狠狠老| 亚洲尤物视频在线| 欧美影视一区二区三区|