/* * Copyright (c) 2001 Stephan Boettcher * * This source code is free software; you can redistribute it * and/or modify it in source code form under the terms of the GNU * General Public License as published by the Free Software * Foundation; either version 2 of the License, or (at your option) * any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA */ // $Id: many_drivers.v,v 1.2 2001/07/21 02:30:44 stevewilliams Exp $ // $Log: many_drivers.v,v $ // Revision 1.2 2001/07/21 02:30:44 stevewilliams // Get the expected blended values right. // // Revision 1.1 2001/07/18 01:22:26 sib4 // test for nets with many drivers // module test; reg [66:0] in; wire out; buf (out, in[ 0]); buf (out, in[ 1]); buf (out, in[ 2]); buf (out, in[ 3]); buf (out, in[ 4]); buf (out, in[ 5]); buf (out, in[ 6]); buf (out, in[ 7]); buf (out, in[ 8]); buf (out, in[ 9]); buf (out, in[10]); buf (out, in[11]); buf (out, in[12]); buf (out, in[13]); buf (out, in[14]); buf (out, in[15]); buf (out, in[16]); buf (out, in[17]); buf (out, in[18]); buf (out, in[19]); buf (out, in[20]); buf (out, in[21]); buf (out, in[22]); buf (out, in[23]); buf (out, in[24]); buf (out, in[25]); buf (out, in[26]); buf (out, in[27]); buf (out, in[28]); buf (out, in[29]); buf (out, in[30]); buf (out, in[31]); buf (out, in[32]); buf (out, in[33]); buf (out, in[34]); buf (out, in[35]); buf (out, in[36]); buf (out, in[37]); buf (out, in[38]); buf (out, in[39]); buf (out, in[40]); buf (out, in[41]); buf (out, in[42]); buf (out, in[43]); buf (out, in[44]); buf (out, in[45]); buf (out, in[46]); buf (out, in[47]); buf (out, in[48]); buf (out, in[49]); buf (out, in[50]); buf (out, in[51]); buf (out, in[52]); buf (out, in[53]); buf (out, in[54]); buf (out, in[55]); buf (out, in[56]); buf (out, in[57]); buf (out, in[58]); buf (out, in[59]); buf (out, in[60]); buf (out, in[61]); buf (out, in[62]); buf (out, in[63]); buf (out, in[64]); buf (out, in[65]); buf (out, in[66]); reg err; // Verilog-XL yields out=x for all but the first two initial begin err = 0; in = 67'b0; #1 $display("in=%b out=%b", in, out); if (out!==1'b0) err = 1; in = ~67'b0; #1 $display("in=%b out=%b", in, out); if (out!==1'b1) err = 1; in = 67'bz; #1 $display("in=%b out=%b", in, out); if (out!==1'bx) err = 1; in = 67'bx; #1 $display("in=%b out=%b", in, out); if (out!==1'bx) err = 1; in = 67'h 5_55555555_55555555; #1 $display("in=%b out=%b", in, out); if (out!==1'bx) err = 1; in = ~67'h 5_55555555_55555555; #1 $display("in=%b out=%b", in, out); if (out!==1'bx) err = 1; in = 67'h 0_xxxxxxxx_00000000; #1 $display("in=%b out=%b", in, out); if (out!==1'bx) err = 1; in = ~67'h 0_xxxxxxxx_00000000; #1 $display("in=%b out=%b", in, out); if (out!==1'bx) err = 1; in = 67'h x_xxxxxxxx_00000000; #1 $display("in=%b out=%b", in, out); if (out!==1'bx) err = 1; in = ~67'h x_xxxxxxxx_00000000; #1 $display("in=%b out=%b", in, out); if (out!==1'bx) err = 1; in = 67'h x_55555555_55555555; #1 $display("in=%b out=%b", in, out); if (out!==1'bx) err = 1; in = ~67'h x_55555555_55555555; #1 $display("in=%b out=%b", in, out); if (out!==1'bx) err = 1; in = 67'h 1_ffffxxxx_00000000; #1 $display("in=%b out=%b", in, out); if (out!==1'bx) err = 1; in = ~67'h 1_ffffxxxx_00000000; #1 $display("in=%b out=%b", in, out); if (out!==1'bx) err = 1; if (err) $display("FAILED"); else $display("PASSED"); $finish; end endmodule