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

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

?? des_cal.v

?? Verilog實現的DES和3-DES
?? V
?? 第 1 頁 / 共 3 頁
字號:
/*-----------------------------------------------------------------------
/Module			:	DES_CAL
/Filename		:	DES_CAL.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_CAL(
		clk,
		rst_n,
		sw_rst,
		buffin,
		buffo,
		//Left_first,
		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_buff,
		data_sel_com1,
		data_sel_com2,
		data_sel_iv,
		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_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 	[31:0] buffin;			//the bus of input data
//input	Left_first;			//low bits first
output	[63:0] buffo;			//the bus of output data

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

reg 	[0:63] 	data_reg;		//the register of des calculate
reg 	[0:63]  iv_reg;			//the register of iv
reg	[0:63] 	buff_reg;		//the register of buff text
reg	[0:63] 	tmp_reg;		//the register of temp save data
reg	[0:55]  k1_reg;			//the register of key 1
reg	[0:55] 	k2_reg;			//the register of key 2
reg	[0:55]	k3_reg;			//the register of key 3
reg    [0:55] key_reg;


/***************s_box******************************/
reg s10,s11,s12,s13;
reg s20,s21,s22,s23;
reg s30,s31,s32,s33;
reg s40,s41,s42,s43;
reg s50,s51,s52,s53;
reg s60,s61,s62,s63;
reg s70,s71,s72,s73;
reg s80,s81,s82,s83;
/***************************************************/

/*****************the first xor********************/
wire [0:47] r1;
wire [0:47] x1;
wire [0:47] x2;
assign
x1={data_reg[63],data_reg[32:36],data_reg[35:40],data_reg[39:44],data_reg[43:48],data_reg[47:52],data_reg[51:56],data_reg[55:60],data_reg[59:63],data_reg[32]};
assign x2= {key_reg[13],key_reg[16],key_reg[10],key_reg[23],key_reg[0],key_reg[4],
                        key_reg[2],key_reg[27],key_reg[14],key_reg[5],key_reg[20],key_reg[9],
	                key_reg[22],key_reg[18],key_reg[11],key_reg[3],key_reg[25],key_reg[7],
	                key_reg[15],key_reg[6],key_reg[26],key_reg[19],key_reg[12],key_reg[1],
	                key_reg[40],key_reg[51],key_reg[30],key_reg[36],key_reg[46],key_reg[54],
	                key_reg[29],key_reg[39],key_reg[50],key_reg[44],key_reg[32],key_reg[47],
	                key_reg[43],key_reg[48],key_reg[38],key_reg[55],key_reg[33],key_reg[52],
	                key_reg[45],key_reg[41],key_reg[49],key_reg[35],key_reg[28],key_reg[31]};

	  
assign r1=(lut_en)?x1^x2:48'd0;
/**************************************************/

/*****************the secode xor******************/
wire [0:31] r2;
wire [0:31] x3;
wire [0:31] x4;
assign x3={
           s40,s21,s50,s63,
	   s83,s30,s70,s53,
	   s13,s41,s61,s72,
	   s23,s52,s81,s32,
	   s12,s20,s60,s42,
	   s80,s71,s11,s33,
	   s51,s43,s82,s22,
	   s62,s31,s10,s73   
          };
assign x4=data_reg[0:31]; 
assign r2=x3^x4;

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




assign buffo=data_reg;








//------------------------------------------------------------------
// buff_reg 
//------------------------------------------------------------------
wire buff_load_lst,buff_load_hst;
//assign buff_load_lst=buff_load && Left_first;
//assign buff_load_hst=buff_load && !Left_first;

always @ (posedge clk or negedge rst_n)
begin
  if(!rst_n) buff_reg<=64'd0;
  else if(sw_rst) buff_reg<=64'd0;
       else 
       begin
         case({buff_load_low,buff_load})
	    2'b11: buff_reg<={buffin[31:0],32'd0};
	  //  3'b010:buff_reg<={buff_reg[32:63],buffin[31:0]};
	    2'b01:buff_reg<={buffin[31:0],buff_reg[0:31]};
	    default: buff_reg<=buff_reg;
	  endcase 
	 /* case({buff_load_low,buff_load_lst,buff_load_hst})
	    3'b110,3'b101: buff_reg<={buffin[31:0],32'd0};
	    3'b010:buff_reg<={buff_reg[32:63],buffin[31:0]};
	    3'b001:buff_reg<={buffin[31:0],buff_reg[0:31]};
	    default: buff_reg<=buff_reg;
	  endcase  */     
       end
end
//------------------------------------------------------------------
// tmp_reg 
//------------------------------------------------------------------
always @ (posedge clk or negedge rst_n)
begin
  if(!rst_n) tmp_reg<=64'd0;
  else if(sw_rst) tmp_reg<=64'd0;
       else 
       begin
         if(tmp_sel_buff) tmp_reg<=buff_reg;
       end
end

//------------------------------------------------------------------
// k1_reg 
//------------------------------------------------------------------
wire ls1_16=ls1||ls2||ls9||ls16;
wire ls3_15=ls3|ls4|ls5|ls6|ls7|ls8|ls10|ls11|ls12|ls13|ls14|ls15;
wire dls2_16=dls2|dls9|dls16;
wire dls3_15=dls3|dls4|dls5|dls6|dls7|dls8|dls10|dls11|dls12|dls13|dls14|dls15;


wire [0:55]sel_key;

assign sel_key=(key_sel_k1)? { k1_reg[49],k1_reg[42], k1_reg[35], k1_reg[28], k1_reg[21], k1_reg[14], k1_reg[7],
                             k1_reg[0], k1_reg[50], k1_reg[43], k1_reg[36], k1_reg[29], k1_reg[22], k1_reg[15],
                             k1_reg[8], k1_reg[1], k1_reg[51], k1_reg[44], k1_reg[37], k1_reg[30], k1_reg[23],
                             k1_reg[16], k1_reg[9], k1_reg[2], k1_reg[52], k1_reg[45], k1_reg[38], k1_reg[31], 

                             k1_reg[55],k1_reg[48], k1_reg[41], k1_reg[34], k1_reg[27], k1_reg[20], k1_reg[13],
                             k1_reg[6], k1_reg[54], k1_reg[47], k1_reg[40], k1_reg[33], k1_reg[26], k1_reg[19],
                             k1_reg[12], k1_reg[5], k1_reg[53], k1_reg[46], k1_reg[39], k1_reg[32], k1_reg[25],
                             k1_reg[18], k1_reg[11], k1_reg[4], k1_reg[24], k1_reg[17], k1_reg[10], k1_reg[3]}:
               (key_sel_k2)?{ k2_reg[49],k2_reg[42], k2_reg[35], k2_reg[28], k2_reg[21], k2_reg[14], k2_reg[7],
                             k2_reg[0], k2_reg[50], k2_reg[43], k2_reg[36], k2_reg[29], k2_reg[22], k2_reg[15],
                             k2_reg[8], k2_reg[1], k2_reg[51], k2_reg[44], k2_reg[37], k2_reg[30], k2_reg[23],
                             k2_reg[16], k2_reg[9], k2_reg[2], k2_reg[52], k2_reg[45], k2_reg[38], k2_reg[31], 

                             k2_reg[55],k2_reg[48], k2_reg[41], k2_reg[34], k2_reg[27], k2_reg[20], k2_reg[13],
                             k2_reg[6], k2_reg[54], k2_reg[47], k2_reg[40], k2_reg[33], k2_reg[26], k2_reg[19],
                             k2_reg[12], k2_reg[5], k2_reg[53], k2_reg[46], k2_reg[39], k2_reg[32], k2_reg[25],
                             k2_reg[18], k2_reg[11], k2_reg[4], k2_reg[24], k2_reg[17], k2_reg[10], k2_reg[3]}:
		(key_sel_k3)?{ k3_reg[49],k3_reg[42], k3_reg[35], k3_reg[28], k3_reg[21], k3_reg[14], k3_reg[7],
                             k3_reg[0], k3_reg[50], k3_reg[43], k3_reg[36], k3_reg[29], k3_reg[22], k3_reg[15],
                             k3_reg[8], k3_reg[1], k3_reg[51], k3_reg[44], k3_reg[37], k3_reg[30], k3_reg[23],
                             k3_reg[16], k3_reg[9], k3_reg[2], k3_reg[52], k3_reg[45], k3_reg[38], k3_reg[31], 

                             k3_reg[55],k3_reg[48], k3_reg[41], k3_reg[34], k3_reg[27], k3_reg[20], k3_reg[13],
                             k3_reg[6], k3_reg[54], k3_reg[47], k3_reg[40], k3_reg[33], k3_reg[26], k3_reg[19],
                             k3_reg[12], k3_reg[5], k3_reg[53], k3_reg[46], k3_reg[39], k3_reg[32], k3_reg[25],
                             k3_reg[18], k3_reg[11], k3_reg[4], k3_reg[24], k3_reg[17], k3_reg[10], k3_reg[3]}:64'd0;

wire key_sel_key123=key_sel_k1 || key_sel_k2||key_sel_k3;

always @ (posedge clk or negedge rst_n)
begin
  if(!rst_n) key_reg<=56'd0;
  else if(sw_rst) key_reg<=56'd0;
       else 
       begin
            case({key_sel_key123,ls1_16,ls3_15,dls2_16,dls3_15})
	      5'b10000: //key_sel_k1
	               key_reg<=sel_key;
			   
	      5'b01000://ls1_16
	                    key_reg<={key_reg[1:27],key_reg[0],key_reg[29:55],key_reg[28]};
	      5'b00100: //ls3_15
	                   key_reg<={key_reg[2:27],key_reg[0:1],key_reg[30:55],key_reg[28:29]};
	      5'b00010: //dls2_16
	                   key_reg<={key_reg[27],key_reg[0:26],key_reg[55],key_reg[28:54]};
	      5'b00001: //dls3_15
	                   key_reg<={key_reg[26:27],key_reg[0:25],key_reg[54:55],key_reg[28:53]}; 
		default: key_reg<=key_reg;
	      
	    endcase              
              
	   end

end



always @ (posedge clk or negedge rst_n)
begin
  if(!rst_n)   k1_reg<=56'd0;
  else if(sw_rst) k1_reg<=56'd0;
       else 
       begin
          if(k1_sel_key1) k1_reg<={buffin[31:25],buffin[23:17],buffin[15:9],buffin[7:1],k1_reg[0:27]};

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
激情久久久久久久久久久久久久久久| av电影天堂一区二区在线 | 成人av高清在线| 午夜电影网一区| 中文字幕乱码日本亚洲一区二区 | 午夜精品福利视频网站| 国产精品午夜免费| 精品捆绑美女sm三区| 亚洲综合清纯丝袜自拍| 久久综合色之久久综合| 欧美日韩aaaaa| 91浏览器入口在线观看| 国产aⅴ精品一区二区三区色成熟| 日韩极品在线观看| 亚洲超碰精品一区二区| 亚洲一区二区综合| 亚洲一区二区视频| 亚洲国产视频a| 亚洲成人免费在线| 亚洲大片精品永久免费| 亚洲制服丝袜av| 日韩成人av影视| 美女视频一区二区三区| 另类专区欧美蜜桃臀第一页| 久久精品国产亚洲aⅴ| 日韩电影在线免费观看| 欧美一区二区久久| 91啪在线观看| 成人免费视频国产在线观看| 亚洲综合色噜噜狠狠| 欧美三级日韩在线| 成人午夜视频网站| 亚洲成人精品在线观看| 亚洲乱码一区二区三区在线观看| 国产精品女同互慰在线看| 久久久久久夜精品精品免费| 精品国产乱码久久久久久1区2区| 3d动漫精品啪啪| 日韩欧美一区二区不卡| 欧美电影在线免费观看| 欧美日韩视频专区在线播放| 欧美欧美午夜aⅴ在线观看| 欧美日韩国产另类不卡| 欧美狂野另类xxxxoooo| 欧美一区二区美女| 中文字幕欧美激情一区| 国产日韩欧美综合一区| 亚洲一线二线三线久久久| 一区二区三区精品视频在线| 麻豆中文一区二区| 国产iv一区二区三区| 欧洲在线/亚洲| 欧美一区二区精品| 欧美国产日韩a欧美在线观看 | 日韩一区二区免费高清| 国产精品伦一区二区三级视频| 日韩制服丝袜av| 99riav久久精品riav| 精品国一区二区三区| 一区二区在线免费观看| 国产成人免费视| 精品国产乱码久久久久久免费| 亚洲黄色在线视频| 成人美女在线观看| 久久噜噜亚洲综合| 日日骚欧美日韩| 在线观看国产日韩| 亚洲精品视频在线看| 成人免费毛片嘿嘿连载视频| 久久久电影一区二区三区| 蜜臀av亚洲一区中文字幕| 欧美性大战久久| 一区二区三区毛片| 91精彩视频在线观看| 亚洲欧美激情小说另类| 高清不卡一二三区| 国产精品久久久久久久久免费相片| 精品一区二区三区久久| 欧美xxx久久| 九一九一国产精品| 日本一区二区在线不卡| 97成人超碰视| 亚洲午夜久久久久| 欧美区在线观看| 国产一区二区三区精品视频| 日韩免费高清电影| 国产成人日日夜夜| 亚洲视频狠狠干| 欧美日韩一区不卡| 九九久久精品视频| 亚洲特级片在线| 欧美一区二区三区视频在线观看| 视频精品一区二区| 久久久综合视频| 色先锋资源久久综合| 亚洲成人高清在线| 精品久久久久久久久久久久包黑料| 蜜桃视频一区二区三区在线观看 | 91日韩在线专区| 午夜久久久久久| 久久久.com| 91福利在线观看| 久久精品久久综合| 中文字幕中文字幕在线一区 | 国内精品国产三级国产a久久| 成人免费一区二区三区在线观看| 欧美一区二区日韩| 欧美一区二区三区四区在线观看| 色悠悠久久综合| 国产高清亚洲一区| 日本欧美肥老太交大片| 中文字幕欧美一| 国产欧美视频一区二区| 欧美一二三区在线| 色成年激情久久综合| 成人性生交大片免费| 韩国女主播一区二区三区| 亚洲一级不卡视频| 亚洲日本在线天堂| 中文字幕制服丝袜成人av| 精品欧美乱码久久久久久1区2区| 在线观看日韩电影| 色婷婷久久综合| 色欧美日韩亚洲| 色94色欧美sute亚洲线路二 | 美女视频黄频大全不卡视频在线播放 | 九一久久久久久| 日本亚洲天堂网| 亚洲综合在线视频| 一区二区三区四区五区视频在线观看 | 国产精品一区二区三区99| 久久er精品视频| 国产精品77777竹菊影视小说| 免费精品视频在线| 韩国欧美国产1区| 国产精品小仙女| 成人免费毛片嘿嘿连载视频| 不卡的av电影在线观看| 色婷婷av一区| 5月丁香婷婷综合| 国产欧美日韩综合| 亚洲综合久久久久| 麻豆国产一区二区| 成人蜜臀av电影| 欧美三片在线视频观看| 日韩欧美在线观看一区二区三区| 欧美成人精品1314www| 中文字幕高清一区| 亚洲国产一区视频| 日日夜夜精品视频免费| 国产一区中文字幕| 91福利国产精品| 欧美大片国产精品| 亚洲欧美电影一区二区| 日本三级韩国三级欧美三级| 国内精品写真在线观看| 大胆亚洲人体视频| 日韩一区二区中文字幕| 欧美精品一区二区三区一线天视频 | 久久综合国产精品| 日韩精品免费视频人成| 色噜噜狠狠色综合中国| 久久久精品国产99久久精品芒果| 亚洲精品欧美综合四区| 国内精品国产成人国产三级粉色 | 精品一区二区免费| 在线观看亚洲精品视频| 中文字幕欧美日韩一区| 激情文学综合网| 日韩三级av在线播放| 亚洲国产精品一区二区久久| 国产91精品一区二区麻豆网站| 91精品在线观看入口| 亚洲人成网站影音先锋播放| 国产乱人伦偷精品视频免下载| 欧美日韩中文另类| 亚洲一区视频在线观看视频| 成人免费视频网站在线观看| 国产无人区一区二区三区| 精品在线一区二区| 欧美一级二级在线观看| 免费一级片91| 91精品国产福利| 久久国产夜色精品鲁鲁99| 日韩欧美一二三四区| 男人操女人的视频在线观看欧美 | 欧美色综合天天久久综合精品| 亚洲自拍都市欧美小说| 色呦呦一区二区三区| 亚洲乱码中文字幕| 欧美性生活影院| 老司机一区二区| 久久久国产一区二区三区四区小说 | 欧美成人国产一区二区| 韩国一区二区在线观看| 最好看的中文字幕久久| 色视频成人在线观看免| 免费观看成人鲁鲁鲁鲁鲁视频| 日韩一区二区三区电影| 激情小说亚洲一区|