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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? des_ctrl.v

?? Verilog實現的DES和3-DES
?? V
?? 第 1 頁 / 共 3 頁
字號:
/*-----------------------------------------------------------------------
/Module			:	DES_CTRL
/Filename		:	DES_CTRL.v
/Description		:	DES
/Called by		:	DES
/Simulator		:	Modelsim5.7 and  Simvision / WindowsXP
/Synthesis tool		:	Synplify / WindowsXP
/Revision history	:	2008-05-30 v1.0

--------------------------------------------------------------------------*/




module DES_CTRL(
		clk,
		rst_n,
		sw_rst,
		key_321,
		work_mode,
		s_width,
		DES_encrypt_start,
		DES_decrypt_start,
		//DES3_encrypt_start,
		//DES3_decrypt_start,
		load_data,
		load_key,
		load_iv,
		//buff_out_load,
		//Left_first,
		ready,
		lut_en,
	        ls1,ls2,ls3,ls4,ls5,ls6,ls7,ls8,ls9,ls10,ls11,ls12,ls13,ls14,ls15,ls16,
	        dls2,dls3,dls4,dls5,dls6,dls7,dls8,dls9,dls10,dls11,dls12,dls13,dls14,dls15,dls16,
	        IP,
		data_sel_iv,
		data_sel_buff,
		data_sel_com1,
		data_sel_com2,
		k1_sel_key1,
		k2_sel_key2,
		k3_sel_key3,
		key_sel_k1,
		key_sel_k2,
		key_sel_k3,
		iv_sel_tmp,
		iv_sel_data,
		//tmp_sel_data,
		tmp_sel_buff,
		IP_1,
		buff_xor_iv,
		data_xor_iv,
		tmp_xor_data_1,
		tmp_xor_data_8,
		tmp_xor_data_16,
		tmp_xor_data_32,
		tmp_xor_data_64,
		iv_shift_1,
		iv_shift_8,
		iv_shift_16,
		iv_shift_32,
		iv_shift_64,
		iv_back_tmp,
		buff_load,
		buff_load_low,
		iv_load
		//sel_left,
		//sel_right
);
input 	clk;				//systerm clk
input 	rst_n;				//reset signal
input 	sw_rst;				//soft reset signal
input 	[2:0] key_321;			//how many keys
input	[4:0] s_width;			//the width of s bit
//input	buff_out_load;
//input   Left_first;
input 	load_data;			//load data enable signal
input 	load_key;			//load key enable signal
input 	load_iv;			//load iv enable signal
input 	[4:0] work_mode;		//work mode of des
input  	DES_encrypt_start;		//des encipher plaintext start signal
input   DES_decrypt_start;		//des decipher cipertext start signal
//input   DES3_encrypt_start;		//3des encipher plaintext start signal
//input   DES3_decrypt_start;		//3des decipher cipertext start signal

output 	ready;				//des finish signal
output 	lut_en;				//f_fuction enable signal;
output  ls1,ls2,ls3,ls4,ls5,ls6,ls7,ls8,ls9,ls10,ls11,ls12,ls13,ls14,ls15,ls16;
					//key left shift enable signal
output  dls2,dls3,dls4,dls5,dls6,dls7,dls8,dls9,dls10,dls11,dls12,dls13,dls14,dls15,dls16;
					//key right shift enable signal
output 	IP;				//IP change enable signal 
output	data_sel_iv;			//data_reg select iv_reg
output 	data_sel_buff;			//buff_reg to data_reg
output  data_sel_com1;			//data_reg select {data_reg[32:63],r2}
output	data_sel_com2;			//data_reg select {r2,data_reg[32:63]}
output	k1_sel_key1;			//k1 select buffin
output  k2_sel_key2;			//k2_select buffin
output  k3_sel_key3;			//k3_select buffin
output 	key_sel_k1;			//x2 port select k1_reg
output	key_sel_k2;			//x2 port select k2_reg
output 	key_sel_k3;			//x2 port select k3_reg
output  iv_sel_tmp;			//tmp to iv resigster
output  iv_sel_data;			//data_reg to iv resigster
output	tmp_sel_buff;			//buff_reg to tmp reg
output	IP_1;				//IP-1 change;
output	buff_xor_iv;			//buff exclusive-or iv
output	data_xor_iv;			//data exclusive-or iv
output	tmp_xor_data_1;			//tmp exclusive-or data  1bit
output	tmp_xor_data_8;			//tmp exclusive-or data  8bits
output	tmp_xor_data_16;       		 //tmp exclusive-or data  16bits
output	tmp_xor_data_32;		//tmp exclusive-or data  32bits
output	tmp_xor_data_64;		//tmp exclusive-or data  64bits
output	iv_shift_1;			//iv left shift 1bit
output	iv_shift_8;			//iv left shift 8bits
output	iv_shift_16;			//iv left shift 16bits
output  iv_shift_32;			//iv left shift	32bits;
output	iv_shift_64;			//iv left shift 64bits;
output  iv_back_tmp;                   //iv back tmp_reg
output  buff_load;			//buffin to buff
output buff_load_low;                  //only load 32bit(most)  to buff_reg
output	iv_load;			//buffin to iv
//output sel_left;
//output sel_right;

wire s_1,s_8,s_16,s_32,s_64;
wire ECB,CBC,OFB,CFB;

reg des_encrypt_busy,des_decrypt_busy,des3_encrypt_busy,des3_decrypt_busy;
reg des_busy,des3_busy;

/***********************work mode des and 3des fsm signal****************/
reg [3:0]	des_mode_current_state;
reg [3:0]	des_mode_next_state;
parameter	des_mode_idle_state			=4'b0000;			//work mode des or 3des idle state;
parameter	des_mode_buff_2_data_1_state		=4'b0001;			//work mode des or 3des buff_reg to data_reg 
parameter	des_mode_des_cal_1_state		=4'b0010;			//work mode des calculate
parameter	des_mode_des3_cal_1_state		=4'b0011;			//work mode 3des calculate
parameter	des_mode_buff_xor_iv_state		=4'b0100;			//buff_reg or iv_reg
parameter	des_mode_buff_2_data_2_state		=4'b0101;			//buff_reg to data_reg
parameter	des_mode_des_cal_2_state		=4'b0110;			//des calculate
parameter	des_mode_des3_cal_2_state		=4'b0111;			//3des calculate
parameter	des_mode_data_2_iv_state		=4'b1000;			//data_reg to iv_reg
parameter 	des_mode_data_xor_iv_state		=4'b1001;			//data_reg xor iv_reg
parameter	des_mode_iv_2_data_state		=4'b1010;			//iv_reg to data_reg
parameter	des_mode_des_cal_3_state		=4'b1011;			//des calculate
parameter	des_mode_des3_cal_3_state		=4'b1100;			//3des calculate
parameter	des_mode_tmp_xor_data_state		=4'b1101;			//tmp_reg xor data_reg
parameter	des_mode_iv_back_shift_state    	=4'b1110;			//iv shift
parameter	des_mode_finish_state				=4'b1111;			//des or 3des finish state
wire buff_2_data,buff_xor_iv,data_2_iv,data_xor_iv,iv_2_data,tmp_xor_data,iv_shift;
/************************************************************************/

/******************************3des fsm signal***************************/
reg [1:0]	des3_current_state;
reg [1:0]	des3_next_state;					
parameter	des3_idle_state		=2'b00;			//3des idle state;
parameter	des3_des1_state		=2'b01;			//3des the first des operation
parameter	des3_des2_state		=2'b10;			//3des the second des opteration
parameter	des3_des3_state		=2'b11;			//3des the thibuff_out_load des opteration
//parameter	des3_ready_state	=3'b100;			//3des finish state
wire des3_ready,des_encrypt,des_decrypt,des_start,des3_start;
wire des1_state,des2_state,des3_state;
wire key_sel_k1,key_sel_k2,key_sel_k3;
/************************************************************************/

/******************************des_fsm signal****************************/
reg [4:0]	des_current_state;
reg [4:0]	des_next_state; 
parameter	des_idle_state		=5'b00000;			//des idle state
parameter	des_IP_state		=5'b00001;			//des ip change state
parameter	des_lut1_state		=5'b00010;			//des round 1 state
parameter	des_lut2_state		=5'b00011;			//des round 2 state
parameter	des_lut3_state		=5'b00100;			//des round 3 state
parameter	des_lut4_state		=5'b00101;			//des round 4 state
parameter	des_lut5_state		=5'b00110;			//des round 5 state
parameter	des_lut6_state		=5'b00111;			//des round 6 state
parameter	des_lut7_state		=5'b01000;			//des round 7 state
parameter	des_lut8_state		=5'b01001;			//des round 8 state
parameter	des_lut9_state		=5'b01010;			//des round 9 state
parameter	des_lut10_state		=5'b01011;			//des round 10 state
parameter	des_lut11_state		=5'b01100;			//des round 11 state
parameter	des_lut12_state		=5'b01101;			//des round 12 state
parameter	des_lut13_state		=5'b01110;			//des round 13 state
parameter	des_lut14_state		=5'b01111;			//des round 14 state
parameter	des_lut15_state		=5'b10000;			//des round 15 state
parameter	des_lut16_state		=5'b10001;			//des round 16 state
parameter	des_IP_1_state		=5'b10010;			//des ip-1 change state
parameter	des_ready_state		=5'b10011;			//des ready state
wire IP,lut_en,IP_1,des_ready;
wire ls1,ls2,ls3,ls4,ls5,ls6,ls7,ls8,ls9,ls10,ls11,ls12,ls13,ls14,ls15,ls16;
wire dls2,dls3,dls4,dls5,dls6,dls7,dls8,dls9,dls10,dls11,dls12,dls13,dls14,dls15,dls16;

wire IP_state,lut1_state,lut2_state,lut3_state,lut4_state,lut5_state,lut6_state,lut7_state;
wire lut8_state,lut9_state,lut10_state,lut11_state,lut12_state,lut13_state,lut14_state,lut15_state,lut16_state,IP_1_state;


/*************************work mode signal*******************************/
assign ECB=work_mode[0];
assign CBC=work_mode[1];
assign CFB=work_mode[2];
assign OFB=work_mode[3];
//assign ECB=(work_mode[1:0]==2'b00)?1'b1:1'b0;
//assign CBC=(work_mode[1:0]==2'b01)?1'b1:1'b0;
//assign CFB=(work_mode[1:0]==2'b10)?1'b1:1'b0;
//assign OFB=(work_mode[1:0]==2'b11)?1'b1:1'b0;
/************************************************************************/

/************************the number of key******************************/
wire key_1,key_2,key_3;
assign key_1=key_321[0];
assign key_2=key_321[1];
assign key_3=key_321[2];
/***********************************************************************/
wire DES3_encrypt_start;
wire DES3_decrypt_start;
assign DES3_encrypt_start=DES_encrypt_start && (key_2|key_3);
assign DES3_decrypt_start=DES_decrypt_start && (key_2|key_3);



/*************************the wide of s*********************************/
assign s_1=s_width[0];
assign s_8=s_width[1];
assign s_16=s_width[2];
assign s_32=s_width[3];
assign s_64=s_width[4];
/***********************************************************************/
reg [2:0] counter;

//------------------------------------------------------------------
//k1_reg select buffin enable signal
//------------------------------------------------------------------
		assign k1_sel_key1=(counter[2:1]==2'b00 &&load_key)?1'b1:1'b0;
		assign k2_sel_key2=(counter[2:1]==2'b01 && (key_2||key_3) && load_key)?1'b1:1'b0;
		assign k3_sel_key3=(((counter[2:1]==2'b10 && key_3)||(counter[2:1]==2'b00 && key_2)) && load_key)?1'b1:1'b0;


//------------------------------------------------------------------
//buff_reg load data enable signal
//------------------------------------------------------------------
		assign buff_load=load_data;
		
                assign buff_load_low=(buff_load && (CFB||OFB) && (s_1||s_8||s_16||s_32))? 1'b1:1'b0;

//------------------------------------------------------------------
//buff_reg load iv enable signal
//------------------------------------------------------------------
		assign iv_load=load_iv;

//----------------------------
//how the counter work
//----------------------------
wire counter_inc,counter_clr;
assign counter_inc=load_key || load_data;
assign counter_clr=((load_key && ((key_3 && counter==3'b101)||(key_2 && counter==3'b011)||(key_1 && counter==3'b001)))||
                    (load_data &&((counter==3'b001)||
		                  (counter==3'b000&&(s_1||s_8||s_16||s_32)&&(CFB || OFB))
				 )))?1'b1:1'b0;
always @(posedge clk or negedge rst_n)
begin
  if(!rst_n) counter<=3'b000;
  else if(sw_rst) counter<=3'b000;
       else 
       begin
          if(counter_clr) counter<=3'b000;
	  else  if(counter_inc) counter<=counter+1'b1;
       end
end


/************************busy_signal*************************************/
//----------------------------
//DES encipher busy signal
//---------------------------
always @(posedge clk or negedge rst_n)
begin
  if(!rst_n)
     des_encrypt_busy<=1'b0;
  else
  if(sw_rst) des_encrypt_busy<=1'b0;
  else
  begin
    if(ready) des_encrypt_busy<=1'b0;
    else    if((DES_encrypt_start&&(!DES3_encrypt_start)) || (DES_decrypt_start&&(!DES3_decrypt_start)&& (CFB||OFB)))  des_encrypt_busy<=1'b1;
      
  end
end


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


//---------------------------
//3DES encipher busy signal
//--------------------------
always @(posedge clk or negedge rst_n)
begin
  if(!rst_n)
     des3_encrypt_busy<=1'b0;
  else 
  if(sw_rst) des3_encrypt_busy<=1'b0;
  else

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日韩视频国产视频| 26uuu亚洲综合色| 成人久久视频在线观看| 精品一区二区国语对白| 喷水一区二区三区| 日本不卡不码高清免费观看| 天堂精品中文字幕在线| 午夜av一区二区| 日av在线不卡| 久久超碰97中文字幕| 国产伦精品一区二区三区免费 | 日韩欧美激情一区| 日韩一区二区三区免费看| 日韩一级大片在线| 精品国产91亚洲一区二区三区婷婷| 日韩一区二区麻豆国产| 精品免费国产二区三区 | 久久久www成人免费毛片麻豆| 国产色91在线| 一区二区三区在线观看网站| 午夜伊人狠狠久久| 久久99在线观看| av在线播放不卡| 欧美精品成人一区二区三区四区| 欧美一区二区三区色| 国产欧美日韩卡一| 亚洲精品成人精品456| 人妖欧美一区二区| 成人一区二区三区在线观看| 91成人免费在线| 亚洲精品在线观看视频| 亚洲欧美一区二区三区国产精品 | 久久国产精品99久久久久久老狼| 国产精品一区在线观看你懂的| 99re6这里只有精品视频在线观看| 欧美日韩精品一区视频| 久久青草欧美一区二区三区| 一区二区三区国产| 经典三级一区二区| 欧美四级电影网| 国产日产精品1区| 婷婷综合另类小说色区| 成人av网址在线观看| 正在播放亚洲一区| 18欧美乱大交hd1984| 精品一区免费av| 欧洲精品在线观看| 国产午夜精品在线观看| 免费久久精品视频| 91精品91久久久中77777| 久久精品一区二区三区不卡牛牛 | 一区二区三区中文字幕| 国产精品自在在线| 欧美乱妇15p| 自拍偷拍亚洲欧美日韩| 国产精品夜夜嗨| 日韩一区二区麻豆国产| 亚洲成年人影院| 色综合天天综合色综合av| 日韩久久精品一区| 日韩成人午夜精品| 欧美色视频在线观看| 国产精品国产三级国产专播品爱网 | 日韩欧美一二三| 香蕉影视欧美成人| 欧美色图一区二区三区| 亚洲靠逼com| 暴力调教一区二区三区| 国产日韩成人精品| 成人一区在线观看| 久久精品在线观看| 国产成人h网站| 精品99999| 精品中文字幕一区二区| 日韩一区二区三| 日韩精品久久理论片| 欧美日韩美少妇| 日韩中文字幕不卡| 欧美电影一区二区| 日韩高清一级片| 精品少妇一区二区三区在线播放| 日韩1区2区3区| 精品欧美乱码久久久久久| 狠狠色狠狠色综合日日91app| 欧美mv和日韩mv国产网站| 久久草av在线| 久久久精品国产免大香伊| 高清不卡在线观看| 国产精品日日摸夜夜摸av| www.激情成人| 亚洲国产裸拍裸体视频在线观看乱了| 欧美日韩一区二区三区四区五区| 亚洲网友自拍偷拍| 日韩一区二区在线观看| 国产精品一区二区91| 国产精品丝袜久久久久久app| 99国产一区二区三精品乱码| 一区二区在线观看不卡| 欧美剧情片在线观看| 久久狠狠亚洲综合| 久久久久久久久岛国免费| 97久久人人超碰| 天天色图综合网| 国产欧美日韩视频在线观看| 91香蕉国产在线观看软件| 五月激情综合色| 国产日韩欧美精品一区| 91久久线看在观草草青青| 日韩中文字幕区一区有砖一区| 久久看人人爽人人| 色94色欧美sute亚洲线路二| 久久99国内精品| 亚洲人成小说网站色在线| 欧美一区二区三区免费视频 | 肉肉av福利一精品导航| 国产精品毛片久久久久久| 51精品秘密在线观看| 成人免费黄色在线| 日韩av不卡一区二区| 亚洲特级片在线| 精品国产制服丝袜高跟| 波多野结衣视频一区| 青青草视频一区| 日韩理论电影院| 精品国产一区二区三区不卡| 欧美特级限制片免费在线观看| 国产在线视视频有精品| 亚洲第一激情av| 中文字幕欧美日韩一区| 日韩精品在线一区二区| 色综合久久久网| 国产精品一区二区无线| 视频在线观看国产精品| 亚洲手机成人高清视频| 国产亚洲欧美日韩在线一区| 欧美老女人第四色| 在线观看一区二区视频| 99国产精品国产精品久久| 国产精品88888| 精品一区二区免费| 日本美女视频一区二区| 亚洲va天堂va国产va久| 亚洲综合色成人| 日韩一区欧美小说| 国产精品美女久久久久久| 欧美精品一区二区不卡 | 成人中文字幕在线| 美女视频第一区二区三区免费观看网站 | 九九久久精品视频| 日韩主播视频在线| 五月婷婷综合网| 夜夜操天天操亚洲| 亚洲欧美国产高清| 亚洲日本丝袜连裤袜办公室| 国产精品二三区| 亚洲天堂成人网| 亚洲欧美电影院| 一区二区三区高清在线| 一区二区三区四区中文字幕| 成人欧美一区二区三区小说| 国产精品国产自产拍高清av王其 | 亚洲国产精品久久艾草纯爱| 一区二区三区中文字幕精品精品| 亚洲欧美福利一区二区| 伊人色综合久久天天人手人婷| 亚洲免费伊人电影| 午夜亚洲福利老司机| 日韩精品91亚洲二区在线观看| 美美哒免费高清在线观看视频一区二区 | 亚洲精品国产无天堂网2021| 亚洲影视资源网| 日韩国产欧美视频| 久久99久久精品| 国产99久久久国产精品免费看| 成人高清在线视频| 91高清在线观看| 制服丝袜中文字幕亚洲| 日韩美女主播在线视频一区二区三区 | 亚洲尤物在线视频观看| 婷婷综合另类小说色区| 经典三级视频一区| www.亚洲人| 欧美精品在线观看播放| 精品国产免费一区二区三区四区 | 日本免费在线视频不卡一不卡二| 精品一区二区三区免费视频| 国产成人精品www牛牛影视| 97久久精品人人做人人爽| 91麻豆精品国产91久久久久久久久 | www.日韩精品| 欧美久久一二区| 精品88久久久久88久久久| 亚洲欧美区自拍先锋| 日韩不卡一区二区三区 | 91福利在线免费观看| 日韩一区二区免费视频| 亚洲欧美日韩成人高清在线一区| 日韩av电影一区| 成人综合婷婷国产精品久久蜜臀 | 欧美一级片在线看|