基于Verilog HDL的10位超前进位加法器计.doc

  1. 1、本文档共12页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
基于Verilog HDL的10位超前进位加法器计

基于Verilog HDL的10位超前进位加法器设计 院 系 电子与通信工程学院 专 业 通信工程 学 生 班 级 2011级 姓 名 学 号 指导教师单位 电子与通信工程学院 指导教师姓名 陈宇宁 2014年6月22日 设计题目:设计一个10位的超前进位加法器。要求作出功能和时序仿真。 一 总体设计方案 1.1 设计原理 将n个全加器相连可得n位加法器,但是加法时间较长。解决的方法之一是采用“超前进位产生电路”来同时形成各位进位,从而实现快速加法。超前进位产生电路是根据各位进位的形成条件来实现的。 4位超前进位加法器的设计:首先对于1位全加器其本位值和与进位输出可表示如下: 从上面的式子可看出:如果a和b都为1,则进位输出为1,如果a和b有一个为1,则进位输出等于。令G=ab。P=a+b,则有:。 由此可以用G和P来写出4位超前进位链如下:(设定4位被加数和加数为A和B,进位输入为,进位输出为,进位产生,进位传输。) 由上面的超前进位链可看出:各个进位彼此独立产生,将进位级连传播给去掉了,因此,减小了进位产生的延迟时间。 1.2 10位超前进位加法器的Verilog描述 由上面的4位超前进位加法器可以推出10位超前进位加法器的Verilog描述: module add_ahead(sum,cout,a,b,cin); input[9:0] a,b; input cin ; output[9:0] sum; output cout; wire[9:0] G,P;wire[9:0] C,sum; assign G[0]=a[0]b[0]; assign P[0]=a[0]|b[0]; assign C[0]=cin; assign sum[0]=G[0]^P[0]^C[0]; assign G[1]=a[1]b[1]; assign P[1]=a[1]|b[1]; assign C[1]=G[0]|(P[0]cin); assign sum[1]=G[1]^P[1]^C[1]; assign G[2]=a[2]b[2]; assign P[2]=a[2]|b[2]; assign C[2]=G[1]|(P[1]C[1]); assign sum[2]=G[2]^P[2]^C[2]; assign G[3]=a[3]b[3]; assign P[3]=a[3]|b[3]; assign C[3]=G[2]|(P[2]C[2]); assign sum[3]=G[3]^P[3]^C[3]; assign G[4]=a[4]b[4]; assign P[4]=a[4]|b[4]; assign C[4]=G[3]|(P[3]C[3]); assign sum[4]=G[4]^P[4]^C[4]; assign G[5]=a[5]b[5]; assign P[5]=a[5]|b[5]; assign C[5]=G[4]|(P[4]C[4]); assign sum[5]=G[5]^P[5]^C[5]; assign G[6]=a[6]b[6]; assign P[6]=a[6]|b[6]; assign C[6]=G[5]|(P[5]C[5]); assign sum[6]=G[6]^P[6]^C[6]; assign G[7]=a[7]b[7]; assign P[7]=a[7]|b[7]; assign C[7]=G[6]|(P[6]C[6]); assign sum[7]=G[7]^P[7]^C[7]; assign G[8]=a[8]b[8]; assign P[8]=a[8]|b[8]; assign C[8]=G[7]|(P[7]C[7]); assign sum[8]=G[8]^P[8]^C[8]; assign G[9]=a[9]b[9]; assign P[9]=a[9]|b[9]; assign C[9]=G[8]|(P[8]C[8]); assign sum[9]=G[9]^P[9]^C[9]; assign cout=G[9]|(P[9]C[9]); endmodule 1.3 设计环境 本文在设计10位超前进位加法器过程中,采用Quartus II9.0软件。对于硬件,在实验设计过程中,用到了TPG-EDA/SOPC教学实验箱。 二 采用Quartus II9.0软件进行仿真 2.1主要步骤: 打开Quartu

文档评论(0)

dajuhyy + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档