| /* | |
| * integer2le - a verilog test for integer less-or-equal conditional <= | |
| * | |
| * Copyright (C) 1999 Stephen G. Tell | |
| * Portions inspired by qmark.v by Steven Wilson (stevew@home.com) | |
| * | |
| * This program is free software; you can redistribute it and/or modify | |
| * it under the terms of the GNU General Public License as published by | |
| * the Free Software Foundation; either version 2, 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 software; see the file COPYING. If not, write to | |
| * the Free Software Foundation, Inc., 59 Temple Place, Suite 330, | |
| * Boston, MA 02111-1307 USA | |
| */ | |
| module integer2le; | |
| integer a; | |
| integer b; | |
| integer c; | |
| reg error; | |
| initial | |
| begin | |
| error = 0; | |
| a = 1; | |
| if(a <= 2) | |
| begin | |
| b = 1; | |
| end | |
| else | |
| begin | |
| $display("FAILED 1 <= 2"); | |
| error = 1; | |
| end | |
| a = 2; | |
| if(a <= 2) | |
| begin | |
| b = 1; | |
| end | |
| else | |
| begin | |
| $display("FAILED 2 <= 2"); | |
| error = 1; | |
| end | |
| a = 3; | |
| if(a <= 2) | |
| begin | |
| $display("FAILED 3 <= 2"); | |
| error = 1; | |
| end | |
| c = 0; | |
| a = 10; | |
| for(b = 0; a <= 5; b = b + 1) | |
| begin | |
| b = b + a; | |
| c = c + 1; | |
| if(c > 10) | |
| begin | |
| $display("FAILED (infinite loop) a=%d b=%d", a, b); | |
| error = 1; | |
| $finish; | |
| end | |
| end | |
| if(b != 0) | |
| begin | |
| $display("FAILED forloop a=%d b=%d", a, b); | |
| error = 1; | |
| end | |
| if(a != 10) | |
| begin | |
| $display("FAILED forloop a=%d b=%d", a, b); | |
| error = 1; | |
| end | |
| b = 0; | |
| c = 0; | |
| for(a = 0; a <= 5; a = a + 1) | |
| begin | |
| b = b + a; | |
| c = c + 1; | |
| if(c > 10) | |
| begin | |
| $display("FAILED (infinite loop) a=%d b=%d", a, b); | |
| error = 1; | |
| $finish; | |
| end | |
| end | |
| if(b != 15) | |
| begin | |
| $display("FAILED forloop b=%d expected 15", b); | |
| error = 1; | |
| end | |
| if(error == 0) | |
| $display("PASSED"); | |
| $finish; | |
| end // initial begin | |
| endmodule |