4位全加器实验报告.doc
四位全加器实验目的采用modelsim集成开发环境,利用verilog硬件描述语言中行为描述模式、结构描述模式或数据流描述模式设计四位进位加法器。实验内容加法器是数字系统中的基本逻辑器件。多位加法器的构成有两种方式:并行进位和串行进位方式。并行进位加法器设有并行进位产生逻辑,运算速度快;串行进位方式是将全加器级联构成多位加法器。通常,并行加法器比串行级联加法器占用更多的资源,并且随着位数的增加,相同位数的并行加法器比串行加法器的资源占用差距也会越来越大。实现多位二进制数相加的电路称为加法器,它能解决二进制中1110的功能当然还有 00、01、10.实验原理全加器 除本位两个数相加外,还要加上从低位来的进位数,称为全加器。图4为全加器的方框图。图5全加器原理图。被加数Ai、加数Bi从低位向本位进位Ci-1作为电路的输入,全加和Si与向高位的进位Ci作为电路的输出。能实现全加运算功能的电路称为全加电路。全加器的逻辑功能真值表如表2中所列。信号输入端信号输出端AiBiCiSiCi0000000110010100110110010101011100111111表2 全加器逻辑功能真值表图4 全加器方框图图5 全加器原理图多位全加器连接可以是逐位进位,也可以是超前进位。逐位进位也称串行进位,其逻辑电路简单,但速度也较低。四位全加器如图9所示,四位全加器是由半加器和一位全加器组建而成:图9 四位全加器原理图实验步骤<1>建立新工程项目:打开modelsim软件,进入集成开发环境,点击FileNew project建立一个工程项目adder_4bit。建立文本编辑文件:点击FileNew在该项目下新建Verilog源程序文件adder_4bit.v并且输入源程序。<2>编译和仿真工程项目:在verilog主页面下,选择Compile Compile All或点击工具栏上的按钮启动编译,直到project出现status栏全勾,即可进行仿真。选择simulate - start simulate或点击工具栏上的按钮开始仿真,在跳出来的 start simulate框中选择work-test_adder_4bit测试模块,同时撤销Enable Optimisim前的勾,之后选择ok。在sim-default框内右击选择test_adder_4bit,选择Add Wave,然后选择simulate-run-runall,观察波形,得出结论,仿真结束。四位全加器1、 原理图设计如图9所示,四位全加器是由半加器和一位全加器组建而成:图9 四位全加器原理图仿真和测试结果下图为四位全加器的仿真图:图10 仿真图程序源代码1位全加器程序代码如下:module f_adder<a,b,cin,sum,cout> output sum,cout; input a,b,cin; wire s1,c1,c2; xor<s1,a,b> and<c1,a,b> or<sum,s1,cin> and<c2,s1,cin> xor <cout,c2,c1> endmodule四位全加器程序代码如下:module adder_4bit<s,co,a,b,ci> output3:0 s;output co;input3:0 a,b;input ci;wire ci1,ci2,ci3;f_adder f0<a0,b0,ci,s0,ci1>f_adder f1<a1,b1,ci1,s1,ci2>f_adder f2<a2,b2,ci2,s2,ci3>f_adder f3<a3,b3,ci3,s3,co>Endmodule四位全加器测试程序代码如下:module test_adder_4bit; reg 3:0 A,B; reg CI; wire 3:0 S; wire CO; adder_4bit A1<S,CO,A,B,CI> initial begin $monitor<$time,"A=%b,B=%b,CI=%b,CO=%b,S=%bn",A,B,CI,CO,S>endinitialbegin A=4'd0;B=4'd0; CI=1'B0; #5 A=4'd3;B=4'd4; #5 A=4'd2;B=4'd5; #5 A=4'd9;B=4'd9; #5 A=4'd10;B=4'd15; #5 A=4'd10;B=4'd5;CI=1'b1;endendmodule实验心得和体会通过设计4位全加器,熟练了原理图输入方法,学会使用Verilog语言输入方法,也能较灵活地使用modlesim软件。由时序图可以看出实现了4位全加器的功能,Verilog的程序设计是正确的,实验是成功的。. .