File: assign.v

package info (click to toggle)
iverilog 12.0-3
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 30,148 kB
  • sloc: cpp: 109,972; ansic: 62,713; yacc: 10,216; sh: 3,470; vhdl: 3,246; perl: 1,814; makefile: 1,774; python: 78; csh: 2
file content (35 lines) | stat: -rw-r--r-- 623 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
/*
 * Basics tests of continuous assignment.
 */
module testbench();
  reg [3:0] a, b;
  integer   c, d;
  wire [3:0] x, y, z;

  assign x = a + b + b;
  assign y = b - a;
  assign z = a + (a * b);

  initial begin
    a <= 4'h2;
    b <= 4'h3;
    #1;
    if (x !== 4'h8)
      begin
        $display("FAILED -- 2 + 3 + 3 !== 8");
        $finish;
      end
    if (y !== 4'h1)
      begin
        $display("FAILED -- 3 - 2 !== 1");
        $finish;
      end
    if (z !== 4'h8)
      begin
        $display("FAILED -- 2 + (2 * 3) !== 8");
        $finish;
      end
    $display("PASSED");
  end

endmodule // testbench