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

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

?? sha256_sha512_cal.v

?? Verilog實(shí)現(xiàn)的SHA256/SHA512算法
?? V
字號(hào):
module         sha256_sha512_cal  (                            clk,                                rst_n, 			    sha256_sw_rst,			    sha512_sw_rst,			    sha256_start,			    sha512_start,                                                       reg_a,                            reg_b,                            reg_c,                            reg_d,                            reg_e,                            reg_f,                            reg_g,                            reg_h,                                                        			                                wt_data_out,                            wt_dataout_en,                           // output                                 wt_request      ,                            a_temp          ,                                                                             b_temp          ,                                                            c_temp          ,                                                                 d_temp          ,                                                                 e_temp          ,                            f_temp          ,                                                                 g_temp          ,                                                                 h_temp          ,			                                cal_ready,			    sha256_ready,			    sha512_ready    			    );                                                                                                                      input  clk;          input  rst_n;          input  sha256_sw_rst;input  sha512_sw_rst;input  sha256_start;input  sha512_start;input[63:0]                 reg_a      ;           //data from a reg( A --> a)input[63:0]                 reg_b      ;           //data from b reg( B --> b)input[63:0]                 reg_c      ;           //data from c reg( C --> c) input[63:0]                 reg_d      ;           //data from d reg( D --> d) input[63:0]                 reg_e      ;           //data from e reg( E --> e)   input[63:0]                 reg_f      ;    //temp store the "C", 1, for transfer to "c" 2, for final 32bit adderinput[63:0]                 reg_g      ;    //temp store the "D", 1, for transfer to "d" 2, for final 32bit adderinput[63:0]                 reg_h      ;    //temp store the "E", 1, for transfer to "e" 2, for final 32bit adder     input[63:0]                 wt_data_out     ;           //the data from wt shift reginput                       wt_dataout_en   ;           //enable the wt data output                      wt_request      ;           //request the wt dataoutput[63:0]                a_temp          ;           //a out to adderoutput[63:0]                b_temp          ;           //a out to adder  output[63:0]                c_temp          ;           //a out to adder  output[63:0]                d_temp          ;           //a out to adder  output[63:0]                e_temp          ;           //a out to adder output[63:0]                f_temp          ;           //a out to adder  output[63:0]                g_temp          ;           //a out to adder  output[63:0]                h_temp          ;           //a out to adder output  cal_ready      ;output  sha256_ready;output  sha512_ready;reg                         wt_request      ;                            reg[63:0]                   a_temp          ;reg[63:0]                   b_temp          ;reg[63:0]                   c_temp          ;reg[63:0]                   d_temp          ;reg[63:0]                   e_temp          ;reg[63:0]                   f_temp          ;reg[63:0]                   g_temp          ;reg[63:0]                   h_temp          ;wire  cal_ready      ;reg   sha256_ready;reg   sha512_ready;                 reg[6:0]                    cal_t          ;        // the times of calculating, it is 80 times;wire [63:0] dat1;wire [63:0] dat2;wire start_pulse;reg start_delay;always @ (posedge clk or negedge rst_n)begin  if(!rst_n) start_delay <= 1'b0;  else if(sha256_sw_rst|sha512_sw_rst) start_delay <= 1'b0;  else start_delay <= (sha256_start|sha512_start);endassign start_pulse = (sha256_start|sha512_start)&~start_delay;always@(posedge clk or negedge rst_n)begin    if(!rst_n)           cal_t   <=  7'b0 ;    else if(sha256_sw_rst|sha512_sw_rst)           cal_t   <=  7'b0 ;    else if((sha256_start|sha512_start) && wt_dataout_en)           cal_t   <= cal_t + 1'b1;    else if(cal_ready)           cal_t   <=  7'b0;end           //assign       cal_busy  =  wt_dataout_en   ;           always@(posedge clk or negedge rst_n)begin    if(!rst_n)         wt_request   <= 1'b0;    else if(sha256_sw_rst|sha512_sw_rst)         wt_request   <= 1'b0;    else if(~(sha256_ready|sha512_ready)&      ( (sha512_start&& cal_t <=7'd77)      ||(sha256_start && cal_t <=7'd61)))         wt_request   <= 1'b1;    else          wt_request   <= 1'b0;endalways@(posedge clk or negedge rst_n)begin    if(!rst_n)begin      sha256_ready <= 1'b0;      sha512_ready <= 1'b0;    end             else if(sha256_sw_rst|sha512_sw_rst)begin         sha256_ready <= 1'b0;         sha512_ready <= 1'b0;      end    else begin      sha256_ready <= cal_ready&sha256_start;      sha512_ready <= cal_ready&sha512_start;    end      end                   assign  cal_ready = (cal_t == 7'd80 && sha512_start)|| (cal_t==7'd64 && sha256_start) ;          always@(posedge clk or negedge rst_n)begin     if(!rst_n)          begin              a_temp  <= 64'd0;              b_temp  <= 64'd0;              c_temp  <= 64'd0;              d_temp  <= 64'd0;              e_temp  <= 64'd0;              f_temp  <= 64'd0;              g_temp  <= 64'd0;              h_temp  <= 64'd0;          end         else if(sha256_sw_rst|sha512_sw_rst)          begin              a_temp  <= 64'd0;              b_temp  <= 64'd0;              c_temp  <= 64'd0;              d_temp  <= 64'd0;              e_temp  <= 64'd0;              f_temp  <= 64'd0;              g_temp  <= 64'd0;              h_temp  <= 64'd0;          end         else  if(start_pulse)                               //load "A,,,E" --> "a,,,e"          begin                  a_temp  <=  reg_a;                  b_temp  <=  reg_b;                  c_temp  <=  reg_c;                  d_temp  <=  reg_d;                  e_temp  <=  reg_e;                  f_temp  <=  reg_f;                  g_temp  <=  reg_g;                  h_temp  <=  reg_h;           end     else if(wt_dataout_en)                   begin                   a_temp  <=  dat1 + dat2	;                   b_temp  <=  a_temp        	;                   c_temp  <=  b_temp		;                   d_temp  <=  c_temp        	;                   e_temp  <=  d_temp + dat1 	;                    f_temp  <=  e_temp		;                   g_temp  <=  f_temp        	;                   h_temp  <=  g_temp        	;           endend           wire [63:0] kt;sha256_sha512_k  u_sha256_sha512_k(.sha256_start(sha256_start),.cal_t(cal_t),.kt(kt));wire [31:0] dat1_256_1 = h_temp[63:32];wire [63:0] dat1_256_2 = sha256_rot1(e_temp);wire [63:0] dat1_256_3 = ch(e_temp,f_temp,g_temp);wire [31:0] dat1_256_4 = kt[63:32];wire [31:0] dat1_256_5 = wt_data_out[63:32];wire [31:0] dat1_256 =  dat1_256_1 + dat1_256_2[63:32] + dat1_256_3[63:32] + dat1_256_4 + dat1_256_5;wire [63:0] dat1_256_f = {dat1_256,32'd0};wire [63:0] dat2_256_1 = sha256_rot0(a_temp);wire [63:0] dat2_256_2 =  maj(a_temp,b_temp,c_temp);wire [31:0] dat2_256 = dat2_256_1[63:32] + dat2_256_2[63:32];assign dat1 = sha256_start ? ({dat1_256,32'd0}) : (h_temp + sha512_rot1(e_temp) + ch(e_temp,f_temp,g_temp) + kt + wt_data_out);assign dat2 = sha256_start ? ({dat2_256,32'd0}) : (sha512_rot0(a_temp) + maj(a_temp,b_temp,c_temp));             // -------------------------------------------// 	-- function realize --// -------------------------------------------function [63:0] ch;input [63:0] x;input [63:0] y;input [63:0] z;reg [63:0] tmp1,tmp2;begin	tmp1 = x&y;	tmp2 = (~x)&z;	ch = tmp1^tmp2;endendfunction//		--------------function [63:0] maj;input [63:0] x;input [63:0] y;input [63:0] z;begin	maj = (x&y)^(y&z)^(x&z);endendfunction//		--------------function [63:0] sha512_rot0;input [63:0] x;reg [63:0] rot28;reg [63:0] rot34;reg [63:0] rot39;begin	rot28 = {x[27:0],x[63:28]};	rot34 = {x[33:0],x[63:34]};	rot39 = {x[38:0],x[63:39]};	sha512_rot0 = rot28^rot34^rot39;endendfunction//		--------------function [63:0] sha512_rot1;input [63:0] x;reg [63:0] rot14;reg [63:0] rot18;reg [63:0] rot41;begin	rot14 = {x[13:0],x[63:14]};	rot18 = {x[17:0],x[63:18]};	rot41 = {x[40:0],x[63:41]};	sha512_rot1 = rot14^rot18^rot41;endendfunction//		--------------function [63:0] sha256_rot0;input [63:0] x;reg [31:0] rot2;reg [31:0] rot13;reg [31:0] rot22;reg [31:0] y;begin	rot2 =  {x[33:32],x[63:34]};	rot13 = {x[44:32],x[63:45]};	rot22 = {x[53:32],x[63:54]};	y = rot2^rot13^rot22;	sha256_rot0 = {y,32'd0};endendfunction//		--------------function [63:0] sha256_rot1;input [63:0] x;reg [31:0] rot6;reg [31:0] rot11;reg [31:0] rot25;reg [31:0] y;begin	rot6  = {x[37:32],x[63:38]};	rot11 = {x[42:32],x[63:43]};	rot25 = {x[56:32],x[63:57]};	y = rot6^rot11^rot25;	sha256_rot1 = {y,32'd0};endendfunction          endmodule                                                 

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日韩**一区毛片| 日韩影院免费视频| 欧美另类高清zo欧美| 久久av老司机精品网站导航| 国产精品久久久久久久久久久免费看 | 国产日韩欧美亚洲| 欧洲日韩一区二区三区| 国产精品一级片在线观看| 亚洲高清免费一级二级三级| 国产精品日日摸夜夜摸av| 91精品国产美女浴室洗澡无遮挡| 成人99免费视频| 精品一区二区在线免费观看| 亚洲一区二区视频| 国产精品久久久久久久浪潮网站| 日韩欧美国产一区在线观看| 欧美图区在线视频| 粉嫩av一区二区三区在线播放| 奇米精品一区二区三区四区 | 久久久精品tv| 欧美丰满嫩嫩电影| 欧美专区亚洲专区| 99视频一区二区| 成人av小说网| 国产麻豆精品久久一二三| 奇米色一区二区| 午夜成人免费视频| 亚洲一区二区影院| 亚洲精品国产一区二区三区四区在线 | 亚洲裸体xxx| 国产精品久久网站| 欧美韩日一区二区三区四区| 久久综合给合久久狠狠狠97色69| 日韩一二三四区| 日韩一区二区三区四区| 7777精品伊人久久久大香线蕉| 欧美在线啊v一区| 91福利视频在线| 欧美性猛交xxxxxx富婆| 色网站国产精品| 色网站国产精品| 欧美在线一区二区三区| 欧美亚洲高清一区| 在线精品观看国产| 欧美日韩高清一区二区不卡| 欧美日韩国产综合一区二区三区| 91成人在线精品| 欧洲一区二区三区免费视频| 欧美日韩一区高清| 欧美精品少妇一区二区三区| 欧美精品日韩一区| 日韩欧美亚洲国产另类| 精品三级在线看| 久久久99久久精品欧美| 日本一区二区视频在线观看| 国产精品超碰97尤物18| 亚洲免费观看在线视频| 亚洲成人av中文| 欧美在线啊v一区| 欧美一区二区在线播放| 欧美成人r级一区二区三区| 精品久久久久99| 中文字幕av不卡| 亚洲狼人国产精品| 午夜激情一区二区三区| 国精品**一区二区三区在线蜜桃 | 91日韩一区二区三区| 色屁屁一区二区| 91麻豆精品91久久久久久清纯| 日韩欧美卡一卡二| 国产精品日韩精品欧美在线| 一区二区久久久| 日韩高清不卡在线| 国产成人综合亚洲91猫咪| 97久久超碰国产精品| 欧美精品自拍偷拍| 国产拍揄自揄精品视频麻豆| 一级女性全黄久久生活片免费| 日韩电影在线看| 丁香桃色午夜亚洲一区二区三区| 91黄色免费版| 久久精品日韩一区二区三区| 亚洲情趣在线观看| 蜜桃一区二区三区在线观看| 成人精品亚洲人成在线| 欧美日韩高清一区二区不卡| 欧美激情在线看| 亚洲va欧美va天堂v国产综合| 国产一区二区不卡在线| 色老综合老女人久久久| 精品盗摄一区二区三区| 亚洲欧美日韩中文字幕一区二区三区 | 久久久九九九九| 亚洲va韩国va欧美va| 国产一区二区三区黄视频 | 1024成人网| 免费欧美高清视频| 91一区二区在线| 精品久久久久久久久久久久久久久| 亚洲美女精品一区| 国产99久久久国产精品潘金| 欧美日韩激情在线| 亚洲精品免费看| 国产91富婆露脸刺激对白| 欧美一区二区三区四区五区| 亚洲三级在线看| 国产精品主播直播| 91精品国产麻豆国产自产在线 | 精品一区免费av| 在线亚洲精品福利网址导航| 中文字幕精品三区| 美脚の诱脚舐め脚责91 | 国产不卡免费视频| 欧美一区二区三区男人的天堂| 亚洲六月丁香色婷婷综合久久| 国产精品自拍毛片| 欧美一级片免费看| 亚洲二区视频在线| 一本色道久久综合亚洲91| 国产精品无人区| 国产成人av自拍| 精品粉嫩超白一线天av| 日韩电影网1区2区| 欧美三级欧美一级| 91香蕉国产在线观看软件| wwwwww.欧美系列| 玖玖九九国产精品| 91精品国产手机| 日韩精品高清不卡| 欧美精品aⅴ在线视频| 亚洲夂夂婷婷色拍ww47| 日本韩国一区二区三区视频| 国产精品不卡一区| 成人av资源下载| 亚洲人成精品久久久久久| fc2成人免费人成在线观看播放| 国产欧美日韩久久| 成人污污视频在线观看| 欧美国产精品劲爆| 成人av电影在线观看| 国产精品久久免费看| www.成人网.com| 亚洲精品国产一区二区三区四区在线| 99re8在线精品视频免费播放| 国产精品福利一区| 91亚洲精品久久久蜜桃网站 | 卡一卡二国产精品| 26uuu精品一区二区 | 欧美日韩成人激情| 天涯成人国产亚洲精品一区av| 在线不卡欧美精品一区二区三区| 日韩和的一区二区| 日韩视频不卡中文| 国产成人精品一区二区三区四区| 日本一区二区动态图| 91浏览器打开| 偷拍一区二区三区四区| 日韩午夜av电影| 国产一区二区不卡在线| 国产精品五月天| 在线观看网站黄不卡| 免费成人在线视频观看| 久久久久久久久久久99999| 成人在线综合网| 亚洲欧美一区二区三区久本道91| 欧洲人成人精品| 另类小说图片综合网| 国产日产精品1区| 91极品美女在线| 激情综合网av| 亚洲视频在线一区观看| 欧美又粗又大又爽| 韩国视频一区二区| 一区二区在线观看av| 日韩一二三区视频| 99视频在线观看一区三区| 日韩精品一区第一页| 国产片一区二区三区| 欧美色图在线观看| 美女视频免费一区| 一区精品在线播放| 欧美一区二区三区人| 成人va在线观看| 奇米在线7777在线精品 | 日本成人在线网站| 国产精品久久久久影院色老大| 欧美色区777第一页| 国产精品亚洲а∨天堂免在线| 一区二区三区成人| 久久久久亚洲蜜桃| 欧美日韩一区二区三区在线看 | 午夜精品成人在线视频| 久久久亚洲精品石原莉奈| 色悠悠久久综合| 国产麻豆精品95视频| 午夜视频一区二区三区| 国产精品久久久久久久久免费丝袜| 日韩视频免费观看高清完整版 | 亚洲精品免费播放| 国产日韩欧美综合一区|