- 1、本文档共20页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
用verilog编写16位加法器乘法器自动售货机
Verilog课程实验报告实验1十六位超前进位加法器1.1系统设计要求 用超前进位加法器实现一个有符号位的16位加法器,并且考虑溢出的情况2.1详细设计 根据超前进位加法器的原理Co = G | ( P Ci ) S = P ^ Ci设计出4位加法器的子模块,然后通过4个4位加法器的相连来得到十六位的加法器。原理如下图所示。溢出用flag=0表示。 3.1程序//-------------16位超前进位加法器-----------------module cla16(a,b,s,flag); //含有a,b,输出s,进位flag的模块input [15:0] a,b;//输入a,boutput [16:0] s; //输出 soutput reg flag; //进位wire pp4,pp3,pp2,pp1;wire gg4,gg3,gg2,gg1;wire [15:0] Cp;wire [15:0] p,g;pg i0 (a[15:0],b[15:0],p[15:0],g[15:0]); add i1 (p[3],p[2],p[1],p[0],g[3],g[2],g[1],g[0],pp1,gg1);add i2 (p[7],p[6],p[5],p[4],g[7],g[6],g[5],g[4],pp2,gg2);add i3 (p[11],p[10],p[9],p[8],g[11],g[10],g[9],g[8],pp3,gg3);add i4 (p[15],p[14],p[13],p[12],g[15],g[14],g[13],g[12],pp4,gg4);add i5 (pp4,pp3,pp2,pp1,gg4,gg3,gg2,gg1,pp5,gg5);//调用四位加法器模块add4 l0 (p[3],p[2],p[1],p[0],g[3],g[2],g[1],g[0],1b0,Cp[3],Cp[2],Cp[1],Cp[0]);add4 l1 (p[7],p[6],p[5],p[4],g[7],g[6],g[5],g[4],Cp[3],Cp[7],Cp[6],Cp[5],Cp[4]);add4 l2 (p[11],p[10],p[9],p[8],g[11],g[10],g[9],g[8],Cp[7],Cp[11],Cp[10],Cp[9],Cp[8]);add4 l3 (p[15],p[14],p[13],p[12],g[15],g[14],g[13],g[12],Cp[11],Cp[15],Cp[14],Cp[13],Cp[12]);assign s[0]=p[0]^1b0; //保留位assign s[1]=p[1]^Cp[0];assign s[2]=p[2]^Cp[1];assign s[3]=p[3]^Cp[2];assign s[4]=p[4]^Cp[3];assign s[5]=p[5]^Cp[4];assign s[6]=p[6]^Cp[5];assign s[7]=p[7]^Cp[6];assign s[8]=p[8]^Cp[7];assign s[9]=p[9]^Cp[8];assign s[10]=p[10]^Cp[9];assign s[11]=p[11]^Cp[10];assign s[12]=p[12]^Cp[11];assign s[13]=p[13]^Cp[12];assign s[14]=p[14]^Cp[13];assign s[15]=p[15]^Cp[14];assign s[16]=pp5|gg5;//溢出判断模块 always@(a,b,s) beginif ((a[15]==1b[15]==1s[15]==0)||(a[15]==0b[15]==0s[15]==1)) flag=1b1; else flag=1b0; endendmodule//4位加法器模块module add4(p[3],p[2],p[1],p[0],g[3],g[2],g[1],g[0],Co,Cp[3],Cp[2],Cp[1],Cp[0]); input [3:0]p,g;input Co;output [3:0] Cp;assign Cp[0]=g[0]|p[0]Co;assign Cp[1]=g[1]|p[1]Cp[0];assign Cp[2]=g[2]|p[2]Cp[1];assign Cp[3]=g[3]|p[3]Cp[2];endmodule//模块间的进位module add(p[3],p[2],p[1],p[0],g[3],g[2],g[1],g[0],pp,gg); input [3:0]p,g;output pp,gg;assign pp=p[3]
您可能关注的文档
- 物质的分类及转化习题普通版.doc
- 物质的简单运动习题.docx
- 物质的简单运动培优.doc
- 狱中杂记自己设计.doc
- 王树与伊东丰雄.docx
- 王澍作品中的传统文人色彩和建筑机理.doc
- 环保再生涤纶牛仔面料开发研究.doc
- 环保措施专项施工方案.doc
- 环保职业健康安全技术交底.doc
- 环境保护概论(名词解释).doc
- 新高考生物二轮复习讲练测第6讲 遗传的分子基础(检测) (原卷版).docx
- 新高考生物二轮复习讲练测第12讲 生物与环境(检测)(原卷版).docx
- 新高考生物二轮复习讲练测第3讲 酶和ATP(检测)(原卷版).docx
- 新高考生物二轮复习讲练测第9讲 神经调节与体液调节(检测)(原卷版).docx
- 新高考生物二轮复习讲练测第11讲 植物生命活动的调节(讲练)(原卷版).docx
- 新高考生物二轮复习讲练测第8讲 生物的变异、育种与进化(检测)(原卷版).docx
- 新高考生物二轮复习讲练测第5讲 细胞的分裂、分化、衰老和死亡(讲练)(原卷版).docx
- 新高考生物二轮复习讲练测第5讲 细胞的分裂、分化、衰老和死亡(检测)(原卷版).docx
- 新高考生物二轮复习讲练测第12讲 生物与环境(讲练)(原卷版).docx
- 新高考生物二轮复习讲练测第11讲 植物生命活动的调节(检测)(原卷版).docx
文档评论(0)