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

📄 claa_32b.v

📁 hmac的verilog代码, 通过控制字选择进行sha1运算或hmac运算
💻 V
字号:
module claa_32b(adder1,adder2,sum);input [31:0] adder1;input [31:0] adder2;output [31:0] sum;reg [31:0] sum;reg [31:0] p;reg [31:0] g;reg [30:0] carry;reg [6:0] P;reg [6:0] G;always @(adder1 or adder2 or p or g or carry or P or G)begin	p=adder1^adder2;	g=adder1&adder2;	carry[0]=g[0];	carry[1]=p[1]&carry[0]|g[1];	carry[2]=p[2]&carry[1]|g[2];	G[0]=g[3]+(p[3]&g[2])+(p[3]&p[2]&g[1])+(p[3]&p[2]&p[1]&g[0]);	P[0]=p[3]&p[2]&p[1]&p[0];	carry[3]=G[0];	carry[4]=p[4]&carry[3]|g[4];	carry[5]=p[5]&carry[4]|g[5];	carry[6]=p[6]&carry[5]|g[6];	G[1]=g[7]+(p[7]&g[6])+(p[7]&p[6]&g[5])+(p[7]&p[6]&p[5]&g[4]);	P[1]=p[7]&p[6]&p[5]&p[4];	carry[7]=G[1]+(P[1]&carry[3]);	carry[8]=p[8]&carry[7]|g[8];	carry[9]=p[9]&carry[8]|g[9];	carry[10]=p[10]&carry[9]|g[10];	G[2]=g[11]+(p[11]&g[10])+(p[11]&p[10]&g[9])+(p[11]&p[10]&p[9]&g[8]);	P[2]=p[11]&p[10]&p[9]&p[8];	carry[11]=G[2]+(P[2]&carry[7]);	carry[12]=p[12]&carry[11]|g[12];	carry[13]=p[13]&carry[12]|g[13];	carry[14]=p[14]&carry[13]|g[14];	G[3]=g[15]+(p[15]&g[14])+(p[15]&p[14]&g[13])+(p[15]&p[14]&p[13]&g[12]);	P[3]=p[15]&p[14]&p[13]&p[12];//	carry[15]=G[3]+(P[3]&carry[11]);	carry[15]=G[3]+(P[3]&G[2])+(P[3]&P[2]&G[1])+(P[3]&P[2]&P[1]&G[0]);	carry[16]=p[16]&carry[15]|g[16];	carry[17]=p[17]&carry[16]|g[17];	carry[18]=p[18]&carry[17]|g[18];	G[4]=g[19]+(p[19]&g[18])+(p[19]&p[18]&g[17])+(p[19]&p[18]&p[17]&g[16]);	P[4]=p[19]&p[18]&p[17]&p[16];	carry[19]=G[4]+(P[4]&carry[15]);	carry[20]=p[20]&carry[19]|g[20];	carry[21]=p[21]&carry[20]|g[21];	carry[22]=p[22]&carry[21]|g[22];	G[5]=g[23]+(p[23]&g[22])+(p[23]&p[22]&g[21])+(p[23]&p[22]&p[21]&g[20]);	P[5]=p[23]&p[22]&p[21]&p[20];	carry[23]=G[5]+(P[5]&carry[19]);	carry[24]=p[24]&carry[23]|g[24];	carry[25]=p[25]&carry[24]|g[25];	carry[26]=p[26]&carry[25]|g[26];	G[6]=g[27]+(p[27]&g[26])+(p[27]&p[26]&g[25])+(p[27]&p[26]&p[25]&g[24]);	P[6]=p[27]&p[26]&p[25]&p[24];	carry[27]=G[6]+(P[6]&carry[23]);	carry[28]=p[28]&carry[27]|g[28];	carry[29]=p[29]&carry[28]|g[29];	carry[30]=p[30]&carry[29]|g[30];	sum[0]=p[0];	sum[1]=p[1]+carry[0];	sum[2]=p[2]+carry[1];	sum[3]=p[3]+carry[2];	sum[4]=p[4]+carry[3];	sum[5]=p[5]+carry[4];	sum[6]=p[6]+carry[5];	sum[7]=p[7]+carry[6];	sum[8]=p[8]+carry[7];	sum[9]=p[9]+carry[8];	sum[10]=p[10]+carry[9];	sum[11]=p[11]+carry[10];	sum[12]=p[12]+carry[11];	sum[13]=p[13]+carry[12];	sum[14]=p[14]+carry[13];	sum[15]=p[15]+carry[14];	sum[16]=p[16]+carry[15];	sum[17]=p[17]+carry[16];	sum[18]=p[18]+carry[17];	sum[19]=p[19]+carry[18];	sum[20]=p[20]+carry[19];	sum[21]=p[21]+carry[20];	sum[22]=p[22]+carry[21];	sum[23]=p[23]+carry[22];	sum[24]=p[24]+carry[23];	sum[25]=p[25]+carry[24];	sum[26]=p[26]+carry[25];	sum[27]=p[27]+carry[26];	sum[28]=p[28]+carry[27];	sum[29]=p[29]+carry[28];	sum[30]=p[30]+carry[29];	sum[31]=p[31]+carry[30];endendmodule

⌨️ 快捷键说明

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