ImageVerifierCode 换一换
格式:DOCX , 页数:20 ,大小:111.64KB ,
资源ID:83414      下载积分:15 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/83414.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(用verilog编写16位加法器_乘法器_自动售货机.docx)为本站会员(wj)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

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

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&p2&

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1