[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

gEDA: Verilog: ternary test code



Might as well post this---maybe it will save some typing.
Possibly there is a cleverer for-loop-based version, sigh.

module main;
  wire out;
  reg cond,a,b;
  assign out = cond ? a : b;
  initial begin
    cond = 1'b0; a = 1'b0; b = 1'b0;  #1; $display("%b %b %b %b",out,cond,a,b);
    cond = 1'b0; a = 1'b0; b = 1'b1;  #1; $display("%b %b %b %b",out,cond,a,b);
    cond = 1'b0; a = 1'b0; b = 1'bx;  #1; $display("%b %b %b %b",out,cond,a,b);
    cond = 1'b0; a = 1'b0; b = 1'bz;  #1; $display("%b %b %b %b",out,cond,a,b);
    cond = 1'b0; a = 1'b1; b = 1'b0;  #1; $display("%b %b %b %b",out,cond,a,b);
    cond = 1'b0; a = 1'b1; b = 1'b1;  #1; $display("%b %b %b %b",out,cond,a,b);
    cond = 1'b0; a = 1'b1; b = 1'bx;  #1; $display("%b %b %b %b",out,cond,a,b);
    cond = 1'b0; a = 1'b1; b = 1'bz;  #1; $display("%b %b %b %b",out,cond,a,b);
    cond = 1'b0; a = 1'bx; b = 1'b0;  #1; $display("%b %b %b %b",out,cond,a,b);
    cond = 1'b0; a = 1'bx; b = 1'b1;  #1; $display("%b %b %b %b",out,cond,a,b);
    cond = 1'b0; a = 1'bx; b = 1'bx;  #1; $display("%b %b %b %b",out,cond,a,b);
    cond = 1'b0; a = 1'bx; b = 1'bz;  #1; $display("%b %b %b %b",out,cond,a,b);
    cond = 1'b0; a = 1'bz; b = 1'b0;  #1; $display("%b %b %b %b",out,cond,a,b);
    cond = 1'b0; a = 1'bz; b = 1'b1;  #1; $display("%b %b %b %b",out,cond,a,b);
    cond = 1'b0; a = 1'bz; b = 1'bx;  #1; $display("%b %b %b %b",out,cond,a,b);
    cond = 1'b0; a = 1'bz; b = 1'bz;  #1; $display("%b %b %b %b",out,cond,a,b);
    cond = 1'b1; a = 1'b0; b = 1'b0;  #1; $display("%b %b %b %b",out,cond,a,b);
    cond = 1'b1; a = 1'b0; b = 1'b1;  #1; $display("%b %b %b %b",out,cond,a,b);
    cond = 1'b1; a = 1'b0; b = 1'bx;  #1; $display("%b %b %b %b",out,cond,a,b);
    cond = 1'b1; a = 1'b0; b = 1'bz;  #1; $display("%b %b %b %b",out,cond,a,b);
    cond = 1'b1; a = 1'b1; b = 1'b0;  #1; $display("%b %b %b %b",out,cond,a,b);
    cond = 1'b1; a = 1'b1; b = 1'b1;  #1; $display("%b %b %b %b",out,cond,a,b);
    cond = 1'b1; a = 1'b1; b = 1'bx;  #1; $display("%b %b %b %b",out,cond,a,b);
    cond = 1'b1; a = 1'b1; b = 1'bz;  #1; $display("%b %b %b %b",out,cond,a,b);
    cond = 1'b1; a = 1'bx; b = 1'b0;  #1; $display("%b %b %b %b",out,cond,a,b);
    cond = 1'b1; a = 1'bx; b = 1'b1;  #1; $display("%b %b %b %b",out,cond,a,b);
    cond = 1'b1; a = 1'bx; b = 1'bx;  #1; $display("%b %b %b %b",out,cond,a,b);
    cond = 1'b1; a = 1'bx; b = 1'bz;  #1; $display("%b %b %b %b",out,cond,a,b);
    cond = 1'b1; a = 1'bz; b = 1'b0;  #1; $display("%b %b %b %b",out,cond,a,b);
    cond = 1'b1; a = 1'bz; b = 1'b1;  #1; $display("%b %b %b %b",out,cond,a,b);
    cond = 1'b1; a = 1'bz; b = 1'bx;  #1; $display("%b %b %b %b",out,cond,a,b);
    cond = 1'b1; a = 1'bz; b = 1'bz;  #1; $display("%b %b %b %b",out,cond,a,b);
    cond = 1'bx; a = 1'b0; b = 1'b0;  #1; $display("%b %b %b %b",out,cond,a,b);
    cond = 1'bx; a = 1'b0; b = 1'b1;  #1; $display("%b %b %b %b",out,cond,a,b);
    cond = 1'bx; a = 1'b0; b = 1'bx;  #1; $display("%b %b %b %b",out,cond,a,b);
    cond = 1'bx; a = 1'b0; b = 1'bz;  #1; $display("%b %b %b %b",out,cond,a,b);
    cond = 1'bx; a = 1'b1; b = 1'b0;  #1; $display("%b %b %b %b",out,cond,a,b);
    cond = 1'bx; a = 1'b1; b = 1'b1;  #1; $display("%b %b %b %b",out,cond,a,b);
    cond = 1'bx; a = 1'b1; b = 1'bx;  #1; $display("%b %b %b %b",out,cond,a,b);
    cond = 1'bx; a = 1'b1; b = 1'bz;  #1; $display("%b %b %b %b",out,cond,a,b);
    cond = 1'bx; a = 1'bx; b = 1'b0;  #1; $display("%b %b %b %b",out,cond,a,b);
    cond = 1'bx; a = 1'bx; b = 1'b1;  #1; $display("%b %b %b %b",out,cond,a,b);
    cond = 1'bx; a = 1'bx; b = 1'bx;  #1; $display("%b %b %b %b",out,cond,a,b);
    cond = 1'bx; a = 1'bx; b = 1'bz;  #1; $display("%b %b %b %b",out,cond,a,b);
    cond = 1'bx; a = 1'bz; b = 1'b0;  #1; $display("%b %b %b %b",out,cond,a,b);
    cond = 1'bx; a = 1'bz; b = 1'b1;  #1; $display("%b %b %b %b",out,cond,a,b);
    cond = 1'bx; a = 1'bz; b = 1'bx;  #1; $display("%b %b %b %b",out,cond,a,b);
    cond = 1'bx; a = 1'bz; b = 1'bz;  #1; $display("%b %b %b %b",out,cond,a,b);
    cond = 1'bz; a = 1'b0; b = 1'b0;  #1; $display("%b %b %b %b",out,cond,a,b);
    cond = 1'bz; a = 1'b0; b = 1'b1;  #1; $display("%b %b %b %b",out,cond,a,b);
    cond = 1'bz; a = 1'b0; b = 1'bx;  #1; $display("%b %b %b %b",out,cond,a,b);
    cond = 1'bz; a = 1'b0; b = 1'bz;  #1; $display("%b %b %b %b",out,cond,a,b);
    cond = 1'bz; a = 1'b1; b = 1'b0;  #1; $display("%b %b %b %b",out,cond,a,b);
    cond = 1'bz; a = 1'b1; b = 1'b1;  #1; $display("%b %b %b %b",out,cond,a,b);
    cond = 1'bz; a = 1'b1; b = 1'bx;  #1; $display("%b %b %b %b",out,cond,a,b);
    cond = 1'bz; a = 1'b1; b = 1'bz;  #1; $display("%b %b %b %b",out,cond,a,b);
    cond = 1'bz; a = 1'bx; b = 1'b0;  #1; $display("%b %b %b %b",out,cond,a,b);
    cond = 1'bz; a = 1'bx; b = 1'b1;  #1; $display("%b %b %b %b",out,cond,a,b);
    cond = 1'bz; a = 1'bx; b = 1'bx;  #1; $display("%b %b %b %b",out,cond,a,b);
    cond = 1'bz; a = 1'bx; b = 1'bz;  #1; $display("%b %b %b %b",out,cond,a,b);
    cond = 1'bz; a = 1'bz; b = 1'b0;  #1; $display("%b %b %b %b",out,cond,a,b);
    cond = 1'bz; a = 1'bz; b = 1'b1;  #1; $display("%b %b %b %b",out,cond,a,b);
    cond = 1'bz; a = 1'bz; b = 1'bx;  #1; $display("%b %b %b %b",out,cond,a,b);
    cond = 1'bz; a = 1'bz; b = 1'bz;  #1; $display("%b %b %b %b",out,cond,a,b);
  end
endmodule