4位全加器实验报告.docxVIP

  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文档。上传文档
查看更多
-- --- 四位全加器 11 微电子 黄跃 1117426021 【实验目的】 采用 modelsim 集成开发环境,利用 verilog 硬件描述语言中行为描述模式、结构描述模式或数据流描述模式设计四位进位加法器。 【实验内容】 加法器是数字系统中的基本逻辑器件。 多位加法器的构成有两种方式: 并行 进位和串行进位方式。 并行进位加法器设有并行进位产生逻辑, 运算速度快; 串 行进位方式是将全加器级联构成多位加法器。 通常,并行加法器比串行级联加法 器占用更多的资源, 并且随着位数的增加, 相同位数的并行加法器比串行加法器 的资源占用差距也会越来越大。 实现多位二进制数相加的电路称为加法器 , 它能解决二进制中 1+ 1= 10的功 能(当然还有 0 +0、 0+ 1、 1+ 0) . 【实验原理】 全加器 除本位两个数相加外,还要加上从低位来的进位数,称为全加器。图 4 为全 加器的方框图。图 5 全加器原理图。被加数 A 、加数 B 从低位向本位进位 C 作 i i i-1 为电路的输入,全加和 Si 与向高位的进位 Ci 作为电路的输出。能实现全加运算 功能的电路称为全加电路。全加器的逻辑功能真值表如表 2 中所列。 信号输入端 信号输出端 A i B i Ci S i C i 0 0 0 0 0 0 0 1 1 0 0 1 0 1 0 0 1 1 0 1 1 0 0 1 0 1 0 1 0 1 1 1 0 0 1 1 1 1 1 1 1 表2 全加器逻辑功能真值表 图 4 全加器方框图 图5 全加器原理图 多位全加器连接可以是逐位进位, 也可以是超前进位。 逐位进位也称串行进位,其逻辑电路 简单,但速度也较低。 四位全加器 如图 9 所示,四位全加器是由半加器和一位全加器组建而成: 图 9 四位全加器原理图 【实验步骤 】 (1)建立新工程项目: 打开 modelsim 软件,进入集成开发环境,点击 File →New project 建立一 2 个工程项目 adder_4bit 。 建立文本编辑文件: 点击 File → New在该项目下新建 Verilog 源程序文件 adder_4bit.v 并且输入源程序。 (2)编译和仿真 工程项目: verilog 主页面下,选择 Compile— Compile All 或点击工具栏上的按钮启动编译,直到 project 出现 status 栏全勾,即可进行仿真。 选择 simulate - start simulate 或点击工具栏上的按钮开始仿真,在跳出 来的 start simulate 框中选择 work-test_adder_4bit 测试模块,同时撤销 Enable Optimisim 前的勾,之后选择 ok。 在 sim-default 框内右击选择 test_adder_4bit ,选择 Add Wave,然后选择 simulate-run-runall, 观察波形,得出结论,仿真结束。 四位全加器 1、 原理图设计 如图 9 所示,四位全加器是由半加器和一位全加器组建而成: 图 9 四位全加器原理图 【仿真和测试结果】 下图为四位全加器的仿真图: 3 图 10 仿真图 【程序源代码 】 位全加器程序代码如下: module f_adder(a,b,cin,sum,cout); output sum,cout; input a,b,cin; wire s1,c1,c2; xor(s1,a,b); and(c1,a,b); or(sum,s1,cin); and(c2,s1,cin); xor (cout,c2,c1); endmodule 四位全加器程序代码如下: module adder_4bit(s,co,a,b,ci); output[3:0] s; output co; input[3:0] a,b; input ci; wire ci1,ci2,ci3; f_adder f0(a[0],b[0],ci,s[0],ci1); f_adder f1(a[1],b[1],ci1,s[1],ci2); f_adder f2(a[2],b[2],ci2,s[2],ci3); f_adder f3(a[3],b[3],ci3,s[3],co); Endmodule 四位全加器测试程序代码如下: module test_adder_4bit; reg [3:0] A,B; reg CI; wire [3:0] S; wire CO; adder_4bit A1(S,CO,A,B,CI); initial begin $monitor($time,A=%b,B=%b,CI=%b,CO=%b,S=%b\n,A,B,CI,CO,S); 4 end

文档评论(0)

明若晓溪 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档