iverilog实现4位CLA加法器,4bit超前进位加法器verilog,并测试

1.建立adder_CLA4.v文件。在终端输入“vim adder_CLA4.v”,如下图所示。

iverilog实现4位CLA加法器,4bit超前进位加法器verilog,并测试

 

2.回车进入下图所示。点击键盘i进入编辑模式,输入程序。但这里输入不方便。按键盘“Esc”进入命令模式,然后输入“:wq”,保存并退出。

iverilog实现4位CLA加法器,4bit超前进位加法器verilog,并测试

3.编程。在桌面(或其他位置)找到adder_CLA4.v文件,打开,输入以下程序。

`timescale 1ns / 1ns

module adder_CLA4(

        input wire [3:0]  a ,

                          b ,

        input wire        ci,

        output wire       co,

        output wire [3:0] s

              );

              

        wire [4:0] c   ;

        wire [3:0] g, p;

        wire [3:0] G, P;

                   

        assign g = a & b;

        assign p = a ^ b;

        

        assign {G[0], P[0]} = {g[0], p[0]}                      ;

        assign {G[1], P[1]} = {g[1]|(p[1] & G[0]), p[1] & P[0]} ;

        assign {G[2], P[2]} = {g[2]|(p[2] & G[1]), p[2] & P[1]} ;

        assign {G[3], P[3]} = {g[3]|(p[3] & G[2]), p[3] & P[2]} ;

        

        assign co     = c[4]           ;

        assign c[0]   = ci             ;

        assign c[4:1] = G|(P & c[3:0]) ;

        assign s      = p ^ c[3:0]  ;

endmodule

4.编译。终端输入“iverilog adder_CLA4.v”并Enter。无错误。

iverilog实现4位CLA加法器,4bit超前进位加法器verilog,并测试 

5.建立并编写测试文件。终端输入“vim adder_CLA4tb.v”。输入以下程序。

`timescale 1ns/1ns
module adder_CLA4tb;
reg  [3:0] a, b;
reg   ci       ;
wire  co       ;
wire  [3:0]s   ;

adder_CLA4 uadder_CLA4(
  .a(a)  ,
  .b(b)  ,
  .ci(ci),
  .s(s)  ,
  .co(co)
  );
integer i, j;
initial begin
  ci = 1'b0;
  a = 4'b0 ;
  b = 4'b0 ;
  for (i = 0; i < 16; i = i+1)
  begin
      for (j = 0; j < 16; j = j+1)
          begin
          #5
          a = i   ;
          b = j   ;
          ci = ~ci;
          
          end
  end
end 
initial 
  $monitor("%d %d %b: %b %d", a, b, ci, co, s);
initial begin
  $dumpfile("adder_CLA4.vcd");
  $dumpvars(0, adder_CLA4tb) ;
  end
endmodule

6.编译。终端输入“iverilog adder_CLA4.v adder_CLA4tb.v”。

iverilog实现4位CLA加法器,4bit超前进位加法器verilog,并测试 

7.生成输出文件。用-o指定文件名称。生成的文件名为adder_CLA4test。

iverilog实现4位CLA加法器,4bit超前进位加法器verilog,并测试 

8.生成波形文件。输入“vvp -n adder_CLA4test -1xt2”。生成vcd文件。

iverilog实现4位CLA加法器,4bit超前进位加法器verilog,并测试 

9.打开vcd文件,看到波形。iverilog实现4位CLA加法器,4bit超前进位加法器verilog,并测试

 

上一篇:【VTK】win下借助GitHubActions增加CI


下一篇:Docker服务器的图形显示方案