简单加法器实验报告..docVIP

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

《数字逻辑电路》实验报告 课程名称:数字逻辑电路实验 实验编号:05 实验名称:简单加法器设计 报告时间:2013.10.31 实验目的 本实验的目的是复习一位全加器的原理,学习用门级语言、算术赋值语句和利用Altera公司提供的参数化功能模块完成加法器的设计,比较理解各种设计方式的优劣。 具体实验如下: 1.设计4位串行加法器 2.用算术赋值语句实现8位加法器,要求带最低位的进位,有最高位进位和溢出判断 3.查阅相关资料,完成一个只能进行加减运算的32位ALU。由于需要分配的引脚过多,故将实验简化为一个8位的ALU。 实验原理(背景知识) 理论知识: 加法是数字系统中最常执行的算术运算,减法可以看作是与被减数与负的减数的补码相加。因此,可以用加法器同时实现加法和减法的运算。 Carry=C16^CIN (C16为补码加法最高位的进位(补码加法进位其实没意义,实质上是看成无符号数的进位,C0为一开始输入的值,^为异或符号,如果CIN为0则为补码加法,如果CIN为1则为补码减法) Zero:如果结果每位都为0,则Zero为1,否则为0 Overflow:结果溢出。判断规则:只有同号两数相加结果才有可能溢出。如果和的符号位和加数的符号位不同,则结果溢出。 三.实验环境和工具: DE2-70板 Quartus||12.0 四.实验设计思路 1.设计4位串行加法器 先用门级描述语言设计一个1位全加器,然后再完成4位串行加法器。 2.用算术赋值语句实现8位加法器 在Verilog语言中,使用算术赋值语句和向量来执行运算,大大降低代码的复杂度,提高运行效率。 3.设计8位能进行补码加减运算的ALU 利用书上参考的逻辑图,调用系统内部已有的8位加法器模板。 实验的测试序列或验证方法 测试序列:选取几组具有代表性的序列进行时序仿真,见后续的测试代码 实验过程(验收实验的过程) 1.实验4位串行加法器的设计: Verilog代码实现: module add4(a,b,cin,s,cout); input [3:0]a; input [3:0]b; input cin; output [3:0]s; output cout; wire [3:0]temp; add_full i0(a[0],b[0],cin,s[0],temp[0]); add_full i1(a[1],b[1],temp[0],s[1],temp[1]); add_full i2(a[2],b[2],temp[1],s[2],temp[2]); add_full i3(a[3],b[3],temp[2],s[3],temp[3]); assign cout=temp[3]; endmodule module add_full(input a,input b,input ci,output s,output co); assign s=a^b^ci; assign co=(ab)|((a|b)ci); endmodule 2.编写测试代码: a[0]=1b0;a[1]=1b0;a[2]=1b0;a[3]=1b0; b[0]=1b0;b[1]=1b0;b[2]=1b0;b[3]=1b0; cin=1b0; #10; a[0]=1b1;a[1]=1b1;a[2]=1b0;a[3]=1b0; b[0]=1b0;b[1]=1b1;b[2]=1b0;b[3]=1b0; cin=1b0; #10; a[0]=1b1;a[1]=1b0;a[2]=1b0;a[3]=1b1; b[0]=1b1;b[1]=1b0;b[2]=1b1;b[3]=1b0; cin=1b0; #10; a[0]=1b0;a[1]=1b1;a[2]=1b1;a[3]=1b0; b[0]=1b1;b[1]=1b0;b[2]=1b1;b[3]=1b0; cin=1b0; #10; a[0]=1b1;a[1]=1b0;a[2]=1b0;a[3]=1b1; b[0]=1b1;b[1]=1b1;b[2]=1b1;b[3]=1b0; cin=1b1; #10; a[0]=1b1;a[1]=1b1;a[2]=1b1;a[3]=1b1; b[0]=1b0;b[1]=1b0;b[2]=1b1;b[3]=1b0; cin=1b1; #10; a[0]=1b1;a[1]=1b0;a[2]=1b0;a[3]=1b1; b[0]=1b0;b[1]=1b1;b[2]=1b1;b[3]=1b1; cin=1b1; #10; 3.仿真测试结果 2.用算术赋值语句实现8位加法器 Verilog 代码 module woadd(iSW,X,cin,cout,

文档评论(0)

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

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

1亿VIP精品文档

相关文档