网站大量收购独家精品文档,联系QQ:2885784924

2位BCD码加法器.doc

  1. 1、本文档共10页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
深 圳 大 学 实 验 报 告 课程名称: 可编程ASIC设计 实验项目名称: 2位BCD码加法器 学院: 电子科学与技术学院 专业: 电子科学与技术 指导教师: 刘春平 报告人: 学号: 班级: 电子2班 实验报告提交时间: 2015-3-9 设计原理 图1 2位BCD码加法器整体框架图 本实验制作一个2位BCD码加法器,其整体框架图如图1所示。本制作用VerilogHDL编程,在DE2平台上实现加数、被加数、和分别用数码管显示。整体由2个子模块构成:2位BCD码加法器模块、七段数码管译码器模块(7个)。图中A0、A1、B0、B1、S0、S1均为4bit的端口,S2为1bit的端口,A0为第一个加数的个位,A2为第一个加数的十位,B0为第二个加数的个位,B1为第二个加数的十位,S0为和的个位,S1为和的十位,S2为和的百位(进位)。 源程序代码 //①顶层模块 module BCDadder2(A0,A1,B0,B1,OUT0,OUT1,OUT2,OUT3,OUT4,OUT5,OUT6,OUT7); input [3:0] A0,A1,B0,B1; output[6:0] OUT0,OUT1,OUT2,OUT3,OUT4,OUT5,OUT6,OUT7; wire[3:0] S1,S0; wire S2; adder2 adder(A0,A1,B0,B1,S0,S1,S2); decode4_7 U0(OUT0,S0); decode4_7 U1(OUT1,S1); decode4_7 U2(OUT2,S2); decode4_7 U3(OUT3,A0); decode4_7 U4(OUT4,A1); decode4_7 U5(OUT5,B0); decode4_7 U6(OUT6,B1); decode4_7 U7(OUT7,0); //OUT7只是为了将无用的数码管置0 endmodule //②2位BCD码加法器模块 module adder2(A0,A1,B0,B1,S0,S1,S2); input [3:0] A0,A1,B0,B1; output[3:0] S0,S1; output S2; reg S2; reg[3:0] S0,S1; reg[4:0] T1,T2,Z1,Z2; reg C1,C2; always @(A0 or A1 or B0 or B1) begin T1=A0+B0; if(T19) begin Z1=10; C1=1; end else begin Z1=0; C1=0; end S0=T1-Z1; T2=A1+B1+C1; if(T29) begin Z2=10; C2=1; end else begin Z2=0; C2=0; end S1=T2-Z2; S2=C2; end endmodule //③七段数码管译码器模块 module decode4_7(decodeout,indec); output[6:0] decodeout; input[3:0] indec; //4位十进制表示1位十进制数 reg[6:0] decodeout; always @(indec) begin case(indec) //用case 语句进行译码 //七段数码管为共阴连接 4d0:decodeout=7b1000000; 4d1:decodeout=7b1111001; 4d2:decodeout=7b0100100; 4d3:decodeout=7b0110000; 4d4:decodeou

文档评论(0)

骨干 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档