用verilog编写16位加法器乘法器自动售货机

上传人:yh****1 文档编号:128293627 上传时间:2020-04-20 格式:DOC 页数:33 大小:159.50KB
返回 下载 相关 举报
用verilog编写16位加法器乘法器自动售货机_第1页
第1页 / 共33页
用verilog编写16位加法器乘法器自动售货机_第2页
第2页 / 共33页
用verilog编写16位加法器乘法器自动售货机_第3页
第3页 / 共33页
用verilog编写16位加法器乘法器自动售货机_第4页
第4页 / 共33页
用verilog编写16位加法器乘法器自动售货机_第5页
第5页 / 共33页
点击查看更多>>
资源描述

《用verilog编写16位加法器乘法器自动售货机》由会员分享,可在线阅读,更多相关《用verilog编写16位加法器乘法器自动售货机(33页珍藏版)》请在金锄头文库上搜索。

1、 .Verilog课程实验报告实验1十六位超前进位加法器1.1系统设计要求 用超前进位加法器实现一个有符号位的16位加法器,并且考虑溢出的情况2.1详细设计 根据超前进位加法器的原理Co = G | ( P & Ci ) S = P Ci设计出4位加法器的子模块,然后通过4个4位加法器的相连来得到十六位的加法器。原理如下图所示。溢出用flag=0表示。 3.1程序/-16位超前进位加法器-module cla16(a,b,s,flag); /含有a,b,输出s,进位flag的模块input 15:0 a,b;/输入a,boutput 16:0 s; /输出 soutput reg flag;

2、/进位wire pp4,pp3,pp2,pp1;wire gg4,gg3,gg2,gg1;wire 15:0 Cp;wire 15:0 p,g;pg i0 (a15:0,b15:0,p15:0,g15:0); add i1 (p3,p2,p1,p0,g3,g2,g1,g0,pp1,gg1);add i2 (p7,p6,p5,p4,g7,g6,g5,g4,pp2,gg2);add i3 (p11,p10,p9,p8,g11,g10,g9,g8,pp3,gg3);add i4 (p15,p14,p13,p12,g15,g14,g13,g12,pp4,gg4);add i5 (pp4,pp3,pp2

3、,pp1,gg4,gg3,gg2,gg1,pp5,gg5);/调用四位加法器模块add4 l0 (p3,p2,p1,p0,g3,g2,g1,g0,1b0,Cp3,Cp2,Cp1,Cp0);add4 l1 (p7,p6,p5,p4,g7,g6,g5,g4,Cp3,Cp7,Cp6,Cp5,Cp4);add4 l2 (p11,p10,p9,p8,g11,g10,g9,g8,Cp7,Cp11,Cp10,Cp9,Cp8);add4 l3 (p15,p14,p13,p12,g15,g14,g13,g12,Cp11,Cp15,Cp14,Cp13,Cp12);assign s0=p01b0; /保留位assi

4、gn s1=p1Cp0;assign s2=p2Cp1;assign s3=p3Cp2;assign s4=p4Cp3;assign s5=p5Cp4;assign s6=p6Cp5;assign s7=p7Cp6;assign s8=p8Cp7;assign s9=p9Cp8;assign s10=p10Cp9;assign s11=p11Cp10;assign s12=p12Cp11;assign s13=p13Cp12;assign s14=p14Cp13;assign s15=p15Cp14;assign s16=pp5|gg5;/溢出判断模块 always(a,b,s) begini

5、f (a15=1&b15=1&s15=0)|(a15=0&b15=0&s15=1) flag=1b1; else flag=1b0; endendmodule/4位加法器模块module add4(p3,p2,p1,p0,g3,g2,g1,g0,Co,Cp3,Cp2,Cp1,Cp0); input 3:0p,g;input Co;output 3:0 Cp;assign Cp0=g0|p0&Co;assign Cp1=g1|p1&Cp0;assign Cp2=g2|p2&Cp1;assign Cp3=g3|p3&Cp2;endmodule/模块间的进位module add(p3,p2,p1,p

6、0,g3,g2,g1,g0,pp,gg); input 3:0p,g;output pp,gg;assign pp=p3&p2&p1&p0;assign gg=g3|(p3&(g2|p2&(g1|p1&g0);endmodule/进位信号的产生module pg(a,b,p,g); input 15:0 a,b;output 15:0 p,g;assign p=ab;assign g=a&b; endmodule4.1测试程序通过产生一个随机输入a和b,来验证c=a+b。/16位加法器的测试文件timescale 1ns/1nsinclude./sixteenadder.vmodule six

7、teenaddertest; wire 15:0 s; reg 15:0a,b; wire flag; parameter times=5; /随机产生一个数 ,总共产生6次 initial begin a=$random%65536; b=$random%65536; repeat(times) begin #100 a=$random%65536; b=$random%65536; end #100 $stop; end cla16 cal161(a,b,s,flag); endmodule5.1仿真波形用mudelsim10.0仿真得到的波形如下所示: 如图a=13604,b=24193

8、 s=-27739.s为负数,产生溢出,溢出标位sto=1.当a=-10743,b=22115.s=11372没有溢出,sto=0.通过这个实验验证了s=a+b,实现了带符号位的加法器。实验二 十六位加减法器1.1系统设计要求 将加法器和减法器结合到一起,实现带符号位的16位加减法运算,并考虑溢出。2.1详细设计 在16位加法器的基础上,加上一条判断语句,如果出现减的操作,被减数取反加一,这样就实现了减的运算,用add_sub来表示加减运算符,当add_sub=0时候实现的是减运算,add_sub=1的时候实现的是加运算。3.1程序/-16位加减法器-module cla16(a,b,s);

9、/定义模块包括a,b,sinput 15:0 a,b;/输入a,boutput 16:0 s; /输出swire pp4,pp3,pp2,pp1;wire gg4,gg3,gg2,gg1;wire 15:0 Cp;wire 15:0 p,g;pg i0 (a15:0,b15:0,p15:0,g15:0);add i1 (p3,p2,p1,p0,g3,g2,g1,g0,pp1,gg1);add i2 (p7,p6,p5,p4,g7,g6,g5,g4,pp2,gg2);add i3 (p11,p10,p9,p8,g11,g10,g9,g8,pp3,gg3);add i4 (p15,p14,p13,

10、p12,g15,g14,g13,g12,pp4,gg4);add i5 (pp4,pp3,pp2,pp1,gg4,gg3,gg2,gg1,pp5,gg5);add4 l0 (p3,p2,p1,p0,g3,g2,g1,g0,1b0,Cp3,Cp2,Cp1,Cp0);add4 l1 (p7,p6,p5,p4,g7,g6,g5,g4,Cp3,Cp7,Cp6,Cp5,Cp4);add4 l2 (p11,p10,p9,p8,g11,g10,g9,g8,Cp7,Cp11,Cp10,Cp9,Cp8);add4 l3 (p15,p14,p13,p12,g15,g14,g13,g12,Cp11,Cp15,Cp1

11、4,Cp13,Cp12);assign s0=p01b0;assign s1=p1Cp0;assign s2=p2Cp1;assign s3=p3Cp2;assign s4=p4Cp3;assign s5=p5Cp4;assign s6=p6Cp5;assign s7=p7Cp6;assign s8=p8Cp7;assign s9=p9Cp8;assign s10=p10Cp9;assign s11=p11Cp10;assign s12=p12Cp11;assign s13=p13Cp12;assign s14=p14Cp13;assign s15=p15Cp14;assign s16=pp5|gg5;endmodulemodule add4(p3,p2,p1,p0,g3,g2,g1,g0,Co,Cp3,Cp2,Cp1,Cp0); input 3:0p,g;input Co;output 3:0 Cp;assign Cp0=g0|p0&Co;assign Cp1=g1|p1&Cp0;assign Cp2=g2|p2&Cp1;assign Cp3=g3|p3&Cp2;endmodulemodule add(p3,p2,p1,p0,g3,g2,g1,g0,pp,gg); input 3:0p,g;output pp,gg;assign pp=p3&

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 建筑/环境 > 设计及方案

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号