收藏 分享(赏)

四位超前进位加法器.doc

上传人:精品资料 文档编号:10383552 上传时间:2019-11-05 格式:DOC 页数:6 大小:81KB
下载 相关 举报
四位超前进位加法器.doc_第1页
第1页 / 共6页
四位超前进位加法器.doc_第2页
第2页 / 共6页
四位超前进位加法器.doc_第3页
第3页 / 共6页
四位超前进位加法器.doc_第4页
第4页 / 共6页
四位超前进位加法器.doc_第5页
第5页 / 共6页
点击查看更多>>
资源描述

1、四位超前进位加法器1 实验目的练习在 Modesim 下编写 Verilog 程序,熟悉 Modelsim 运行过程,并学会用 Verilog 语言编写一个四位超前进位加法器。2 实验要求编写一个四位的具有超前进位功能的程序实现超前进位加法;并且编写一测试程序来测试该模块。3. 实验内容及步骤 3.1 实验内容编写四位超前进位加法器程序及测试程序 3.2 本次所实现的功能描述输入两个四位二进制数和一个二进制数进位输入,输出一个二进制结果和一个二进制数进位输出 3.3 具体步骤如下:1打开 Modelsim 软件,建立工程,键入工程名后,再在下面路径添加一个自己的文件夹。在工程下建立两个文件分别

2、为功能模块文件和测试激励模块文件。2双击模块文件进入文件后编写代码。3保存文件,编译,如果程序出错对程序则进行修改。然后再编译,编译成功后进行仿真。4单击运行并添加波形,观察仿真结果是否符合事先的设计。若不符合,则继续修改代码直至符合事先的设计要求。源程序:module add_4(a,b,c_in,c_out,sum);input 3:0 a,b;input c_in;output 3:0 sum;output c_out;wire 2:0 c;wire 3:0 p;wire 3:0 g;wire 9:0 k;xor(p0,a0,b0);xor(p1,a1,b1);xor(p2,a2,b2)

3、;xor(p3,a3,b3);and(g0,a0,b0);and(g1,a1,b1);and(g2,a2,b2);and(g3,a3,b3);and(k0,p0,c_in);or(c0,k0,g0);and(k1,p1,g0);and(k2,k1,c_in);or(c1,g1,k1,k2);and(k3,p2,g1);and(k4,k3,g0);and(k5,k4,c_in);or(c2,g2,k3,k4,k5);and(k6,p3,g2);and(k7,k6,g1);and(k8,k7,g0);and(k9,k8,c_in);or(c_out,g3,k6,k7,k8,k9);xor(sum0

4、,p0,c_in);xor(sum1,p1,c0);xor(sum2,p2,c1);xor(sum3,p3,c2);endmodule测试程序:module adder_th;reg 3:0 a,b;reg c_in;wire 3:0 sum;wire c_out;integer i,j;add_4 f0(.a(a),.b(b),.c_in(c_in),.sum(sum),.c_out(c_out);always #5 c_in=c_in;initialbegina=4b0;b=4b0;c_in=1b0;i=0;j=0;endinitialbeginfor(i=0;i16;i=i+1)for(

5、j=0;j16;j=j+1)begin#5 a=i;b=j;endendinitialbegin$monitor($time,“a=%d,b=%d,c_in=%b _ _ _ sum=%d,c_out=%b“,a,b,c_in,sum,c_out);endendmodule测试输出结果:测试波形:4. 实验总结这是第二次用 Verilog 做实验,在使用 Modesim 方面还不熟练,在经过一定的练习之后终于可以简单的使用它了。这个程序对于我来说有一定的难度,虽然数字电路这门课学过超前进位加法器的原理,但要真正的用 Verilog 语言实现还是不简单的,我也是通过查找资料才实现的。注意测试激励的输出申明成了 reg 类型的就不行,后来改成了 wire 类型才对!还要注意激励模块与测试模块的连接顺序,使用命名方式连接。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 企业管理 > 管理学资料

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报