2018年超前进位加法器.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
2018年超前进位加法器.doc

超前进位加法器     说明文档     1. 结构图:     cout a b cin   2. 八段LED 显示器的编码:     假设8段LED 显示器是共阴极的,DP -G -F -E -D -C -B -A 正好组成一个8位的数8seg ,给这个数赋值,即可以显示相应的数字。   编码:     3. 编码器子模块   4到8位LED 编码器   module coder(in,out);   input[3:0] in;   output[7:0] out;   wire[3:0] in;   reg[7:0] out;   always@(in)   begin   case(in)   4h0: out=8h3f;   4h1: out=8h06;   4h2: out=8h5b;   4h3: out=8h4f;   4h4: out=8h66;   4h5: out=8h6d;   4h6: out=8h7d;   4h7: out=8h07;   4h8: out=8h7f;   4h9: out=8h6f;   4ha: out=8h77;   4hb: out=8h7c;   4hc: out=8h39;   4hd: out=8h5e;   4he: out=8h79;   4hf: out=8h71;   endcase   end   endmodule     4. 超前进位加法器子模块     对一个4位全加器,第i 位的两加数分别是Ai 和Bi, 进位输入信号是Ci-1, 这个位产生的进位输出是 Ci,则可以有得到:   Ci=AiBi+(Ai +Bi )Ci-1   令Gi= AiBi(进位产生函数) Pi= Ai+Bi(进位传递函数)   则:Ci=Gi+ PiCi-1   所以有:C0=G0+P0C-1 C1=G1+P1C0   C2=G2+P2C1 C3=G3+P3C2   将上式逐次代入则可以得到如下表达式(C-1是最低位的进位输入)   CO =G0+P0C-1     C1=G1+P1C0   =G1+P1G0+P1P0C-1     C2=G2+P2C1   =G2+P2G1+P2P1C0   =G2+P2G1+P2P1G0+P2P1P0C-1     C3=G3+P3C2   =G3+P3G2+P3P2C1   =G3+P3P2+P3P2C1   =G3+P3P2+P3P2G1+P3P2P1C0   =G3+P3P2+P3P2G1+P3P2P1G0+P3P2P1P0C-1     上述表达式说明只要各位数据和最低位进位同时输入,各位之间的进位信号与和就能同时产生。要据这样的原理可以实现超前进位加法器,这种加法器运算速度显著提高,但是复杂度也提高了。     module add4_head( a, b, cin, sum,cout);   input[3:0] a;   input[3:0] b;   input cin;     output[3:0] sum;   output cout;     wire[3:0] p;   wire[3:0] g;   wire[3:0] t;   wire[2:0] c;     assign p[0] = a[0] | b[0];   assign p[1] = a[1] | b[1];   assign p[2] = a[2] | b[2];   assign p[3] = a[3] | b[3];     assign t[0] = a[0] ^ b[0];   assign t[1] = a[1] ^ b[1];   assign t[2] = a[2] ^ b[2];   assign t[3] = a[3] ^ b[3];     assign g[0] = a[0] b[0];   assign g[1] = a[1] b[1];   assign g[2] = a[2] b[2];   assign g[3] = a[3] b[3];     assign c[0] = (p[0] cin) | g[0];   assign c[1] = (p[1] c[0]) | g[1];   assign c[2] = (p[2] c[1]) | g[2];   assign cout = g[3] | (p[3] (g[2] | p[2] (g[1] | p[1] (g[0]|(p[0]cin)))));   assign sum[0] = t[0] ^ cin;

文档评论(0)

tangtianxu1 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档