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

📄 add16_adv.v

📁 在ISE下用verilog开发的16位进位现行加法器
💻 V
字号:
`timescale 1ns/10psmodule add16_adv( vA, vB, vS, cin, cout);input   [15:0]   vA;input   [15:0]   vB;  output   [15:0]  vS;input            cin;output           cout;reg   [15:0]     vS;reg   [15:0]     vg;reg   [15:0]     vp;   reg   [3:0]      vg_;reg   [3:0]      vp_;wire  [4:0]      vc_; reg   [15:0]     vc;integer t;always @(*)   for(t=0;t<16;t=t+1)begin        vg[t]=vA[t]&vB[t];        vp[t]=vA[t]|vB[t];   end   integer   i;always @(*)   for(i=0;i<4;i=i+1)begin        vp_[i]=vp[4*i]&vp[4*i+1]&vp[4*i+2]&vp[4*i+3];        vg_[i]=vg[4*i+3] | vp[4*i+3]&vg[4*i+2] | vp[4*i+3]&vp[4*i+2]&vg[4*i+1] | vp[4*i+3]&vp[4*i+2]&vp[4*i+1]&vg[4*i+1];   end //------------vc_[4:0]      assign vc_[0]=cin;   assign vc_[1]=vg_[0] | vp_[0]&cin;assign vc_[2]=vg_[1] | vp_[1]&vg_[0] |vp_[1]&vp_[0]&cin;assign vc_[3]=vg_[2] | vp_[2]&vg_[1] |vp_[2]&vp_[1]&vg_[0] | vp_[2]&vp_[1]&vp_[0]&cin;assign vc_[4]=vg_[3] | vp_[3]&vg_[2] |vp_[3]&vp_[2]&vg_[1] | vp_[3]&vp_[2]&vp_[1]&vp_[0]&cin;assign cout = vc_[4];//------------vc[15:0];integer j;always @(*)begin   for(j=0;j<4;j=j+1)begin       //j=0;       vc[4*j+0]=vc_[j];       vc[4*j+1]=vg[4*j] | vp[4*j]&vc_[j];       vc[4*j+2]=vg[4*j+1] | vp[4*j+1]&vg[4*j] |vp[4*j+1]&vp[4*j+0]&vc_[j];       vc[4*j+3]=vg[4*j+2] | vp[4*j+2]&vg[4*j+1] |vp[4*j+2]&vp[4*j+1]&vg[4*j+0] | vp[4*j+2]&vp[4*j+1]&vp[4*j+0]&vc_[j];   endend//-------------vS[15:0]integer k;always @(*)   for(k=0;k<16;k=k+1)begin       vS[k]=vA[k]^vB[k]^vc[k];   endendmodule

⌨️ 快捷键说明

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