- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
用Verilog HDL语言编写的四位超前进位加法器
四位超前进位加法器;四位超前进位加法器的进位是并行同时产生的,能够极大的减少加法器由进位引起的延时。增加了逻辑器件,但有效的减少的延迟。进位是由ALU部件超前算出,本位是由四个不含进位的加法器算出。;Verilog HDL代码如下:
module jiafaqi_4(x,y,c0,c4,f); //四位超前进位加法器
input [4:1]x; //四位x值
input [4:1]y; //四位y值
output [4:1]f; //四位加和f
input c0; //上一的级进位
output c4; //向下一级的进位
wire [3:1]c; //超前进位
wire [4:1]p;
wire [4:1]g;
wire [4:1]cd;
assign p=x|y;
assign g=xy;;assign c[1]=g[1]|p[1]c0; //c[1]~c4为ALU部件
assign c[2]=g[2]|p[2]g[1]|p[2]p[1]c0;
assign c[3]=g[3]|p[3]g[2]|p[2]p[3]g[1]|p[3]p[2]p[1]c0;
assign c4=g[4]|p[4]g[3]|p[4]p[3]g[2]|p[4]p[3]p[2]g[1]|p[4]p[3]p[2]p[1]c0;
jiafaqi_1 jia1(x[1],y[1],c0,f[1]);
jiafaqi_1 jia2(x[2],y[2],c[1],f[2]);
jiafaqi_1 jia3(x[3],y[3],c[2],f[3]);
jiafaqi_1 jia4(x[4],y[4],c[3],f[4]);
endmodule;module jiafaqi_1(x,y,c0,f); //一位加法器模块
input x;
input y;
input c0;
output f;
assign f=(x^y)^c0;
endmodule
//该一位加法器只有本位输出,不含向下一级的进位输出,进位输出是由顶层模块的并行超前进位提供;// 在BASYS2开发板上的管脚配置
NET c4 LOC = N5;
NET c0 LOC = A7;
NET x[1] LOC = P11;
NET x[2] LOC = L3;
NET x[3] LOC = K3;
NET x[4] LOC = B4;
NET y[1] LOC = G3;
NET y[2] LOC = F3;
NET y[3] LOC = E2;
NET y[4] LOC = N3;
NET f[1] LOC = M5;
NET f[2] LOC = M11;
NET f[3] LOC = P7;
NET f[4] LOC = P6;
文档评论(0)