一位全加器的设计与仿真

1. 实验题目

       一位全加器的设计与仿真  

2. 实验目的

      设计一个一位全加器模型并编写测试程序进行仿真测试。

3. 实验要求

设计模块名称 fulladd,输入端口 a,b,c_in。输出端口 sum,c_out。编写的测试程序要保证测试充分。

利用公式:

• sum = a⊕b⊕c_in

• c_out =ab + (a⊕b) c_in

4. 程序代码

VerilogHDL代码:
module full_adder(a,b,c_in,c_out,sum);
  input a,b,c_in;
  output c_out,sum;
  wire sum,c_out;
  assign {c_out,sum}=a+b+c_in;
endmodule

Test bench仿真代码:
`timescale 1ns/1ns
module full_adder_tb;
  reg a,b,c_in;
  wire c_out,sum;
  integer i,j;
  parameter delay=100;
  full_adder U1(a,b,c_in,c_out,sum);
  initial
  begin
    a=0;b=0;c_in=0;
    for(i=0;i<2;i=i+1)
    for(j=0;j<2;j=j+1)
    begin
      a=i;b=j;c_in=0;
      #delay;
    end
    for(i=0;i<2;i=i+1)
    for(j=0;j<2;j=j+1)
    begin
      a=i;b=j;c_in=1;
      #delay;
    end
  end
endmodule 

5. 运行结果

       全加器包含两个半加器和一个或门,半加器的端口a和b分别是两位相加的二进制输入信号,C是进位输出信号,构成的全加器中,A、B、C分别是该一位全加器的三个二进制输入端,Ci是进位端,Si是相加和输出信号的和,下面是波形图所对应的真值表:

信号输入端 信号输出端
Ai Bi Ci Si Ci
0 0 0 0 0
0 0 1 1 0
0 1 0 1 0
0 1 1 0 1
1 0 0 1 0
1 0 1 0 1
1 1 0 0 1
1 1 1 1 1
发布了38 篇原创文章 · 获赞 130 · 访问量 3万+

猜你喜欢

转载自blog.csdn.net/qq_41587612/article/details/98616952