硬件描述语言实验报告——四位加法器

硬件描述语言实验:四位加法器实验——实验报告姓名:学号:班级:时间:实验名称:四位加法器实验实验目的:进一步练习VHDL语言设计工程的建立与仿真的步骤和方法、熟悉VHDL语言基本设计实体的编写方法。实验环境:PC个人计算机、WindowsXP操作系统、QuartusII集成开发环境软件。设计要求:设计一个四位加法器,实体名称为“adder4”,其引脚与功能分别如下表。adder4:端口模式端口名数据类型功能逻辑表达式说明in(输入)astd_logic_vector(3downto0)加数b加数cistd_logic低位进位out(输出)sstd_logic_vector(3downto0)s(0)<=a(0)xorb(0)xorcic0<=(a(0)andb(0))or(a(0)andci)or(b(0)andci)…和costd_logicco<=(a(3)andb(3))or(a(3)andc2)or(b(3)andc2)高位进位adder4_2:端口模式端口名数据类型说明in(输入)astd_logic_vector(3downto0)加数b加数cistd_logic低位进位out(输出)sstd_logic_vector(3downto0)和costd_logic高位进位adder4_3:端口模式端口名数据类型说明in(输入)Astd_logic_vector(3downto0)加数B加数Cistd_logic低位进位out(输出)Sstd_logic_vector(3downto0)和Costd_logic高位进位附:其中adder4_3中的实验要求应用一位全加器按如下电路图通过结构描述方式构造四位加法器。实验步骤:①建立工程:首先新建一个工程名为“adder4”的文件夹,其次在QuartrusII中新建同名的的工程,最后新建一个VHDLfile的空白页面。②编辑代码:adder4:设置三个信号变量:signalc0,c1,c2:std_logic;使s的每一位都为a、b对应位上以及低进位的异或:(每一位都类似一位全加器,如0+1=1,0与1取异或结果也是1)s(0)<=a(0)xorb(0)xorci;使信号变量代表的中间低进位为a、b以及低进位两两取并再取或:(如若低进位ci=0,a、b都等于1,a+b=1+1=0,进位是1,则1与1取并为1,1与0取并为0,1与0取并为0,1、0、0取或为1,及得到进位结果也是1)c0<=(a(0)andb(0))or(a(0)andci)or(b(0)andci);……同上,高进位取a、b最高位之和的进位即可:co<=(a(3)andb(3))or(a(3)andc2)or(b(3)andc2);举例:ci=0,a=0101(=5),b=1001(=9),s=1110(=14),从最低位看起,,s(0)=0xor1xor1=0,c0=(0and1)or(0and1)or(1and1)=1,以此类推,即可得到s的值adder4_2:在文件头部位添加库,才可使用“+”:useieee.std_logic_unsigned.all;adder4_3:③编译及修改错误:(sartcompilation,若有错误则查看错误信息,不懂的意思可以在百度翻译中翻译得到,然后修改对应位置的错误代码)④建立仿真波形并仿真:⑤根据仿真结果分析设计是否正确:设置好a、b、ci的波形后,点击startsimulation按钮生成完整的结果波形图,并进行分析,看与编辑的硬件所对应的情况是否符合。实验电路图:代码编译完成后,点击sartcompilation,若有错误修改错误,没有点击Tools->NetlistViewers->RTLViewer显示出代码对应的电路图adder4:s~1c0~0c0~3c0c1~0c1~1c1~3c1s~5c2~0c2~1c2~3c2s~7co~0co~1co~3co~4coa[3..0]b[3..0]s[3..0]s~3c0~1ciadder4_2:+A[4..0]B[4..0]ADDER+A[4..0]B[4..0]ADDERa[3..0]b[3..0]cicos[3..0]Add14'h0--Add01'h0--1'h0--adder4_3:abcicosabcicosabcicosabcicosCiCoA[3..0]S[3..0]B[3..0]full_adder:u3full_adder:u2full_adder:u1full_adder:u0实验仿真:adder4:adder4_2:adder4_3:仿真结果及分析:adder4:5+9=14,所以co=0,s=14;仿真结果符合13+9=22,所以co=1,s=6;仿真结果符合8+9=17,所以co=1,s=1;仿真结果符合8+15=23,所以co=1,s=7;仿真结果符合15+0=15,所以co=0,s=15;仿真结果符合根据以上计算和由波形图得到的结果可分析得,仿真的结果同所设计的硬件语言吻合,该设计是正确的。adder4_2:13+2=15,所以co=0,s=15;仿真结果符合7+10=17,所以co=1,s=1;仿真结果符合11+5=16,所以co=1,s=0;仿真结果符合根据以上计算和由波形图得到的结果可分析得,仿真的结果同所设计的硬件语言吻合,该设计是正确的。adder4_3:ci=1,14+13+1=28,所以有进位co=1,s=28-16=12;仿真结果正确ci=0,7+5=12,没有进位co=0,s=12;仿真结果正确ci=0,3+2=6,没有进位所以co=0,s=6;仿真结果正确ci=1,0+0+1=1,没有进位,所以co=0,s=1;仿真结果正确综合分析:

1、当您付费下载文档后,您只拥有了使用权限,并不意味着购买了版权,文档只能用于自身使用,不得用于其他商业用途(如 [转卖]进行直接盈利或[编辑后售卖]进行间接盈利)。
2、本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供参考,付费前请自行鉴别。
3、如文档内容存在侵犯商业秘密、侵犯著作权等,请点击“举报”。

常见问题具体如下:

1、问:已经付过费的文档可以多次下载吗?

      答:可以。登陆您已经付过费的账号,付过费的文档可以免费进行多次下载。

2、问:已经付过费的文档不知下载到什么地方去了?

     答:电脑端-浏览器下载列表里可以找到;手机端-文件管理或下载里可以找到。

            如以上两种方式都没有找到,请提供您的交易单号或截图及接收文档的邮箱等有效信息,发送到客服邮箱,客服经核实后,会将您已经付过费的文档即时发到您邮箱。

注:微信交易号是以“420000”开头的28位数字;

       支付宝交易号是以“2024XXXX”交易日期开头的28位数字。

客服邮箱:

biganzikefu@outlook.com

所有的文档都被视为“模板”,用于写作参考,下载前须认真查看,确认无误后再购买;

文档大部份都是可以预览的,笔杆子文库无法对文档的真实性、完整性、准确性以及专业性等问题提供审核和保证,请慎重购买;

文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为依据;

如果您还有什么不清楚的或需要我们协助,可以联系客服邮箱:

biganzikefu@outlook.com

常见问题具体如下:

1、问:已经付过费的文档可以多次下载吗?

      答:可以。登陆您已经付过费的账号,付过费的文档可以免费进行多次下载。

2、问:已经付过费的文档不知下载到什么地方去了?

     答:电脑端-浏览器下载列表里可以找到;手机端-文件管理或下载里可以找到。

            如以上两种方式都没有找到,请提供您的交易单号或截图及接收文档的邮箱等有效信息,发送到客服邮箱,客服经核实后,会将您已经付过费的文档即时发到您邮箱。

注:微信交易号是以“420000”开头的28位数字;

       支付宝交易号是以“2024XXXX”交易日期开头的28位数字。

确认删除?