diff options
Diffstat (limited to 'testsuite/vests/vhdl-93/billowitch/compliant/tc90.vhd')
-rw-r--r-- | testsuite/vests/vhdl-93/billowitch/compliant/tc90.vhd | 195 |
1 files changed, 195 insertions, 0 deletions
diff --git a/testsuite/vests/vhdl-93/billowitch/compliant/tc90.vhd b/testsuite/vests/vhdl-93/billowitch/compliant/tc90.vhd new file mode 100644 index 000000000..bbf9afe99 --- /dev/null +++ b/testsuite/vests/vhdl-93/billowitch/compliant/tc90.vhd @@ -0,0 +1,195 @@ + +-- Copyright (C) 2001 Bill Billowitch. + +-- Some of the work to develop this test suite was done with Air Force +-- support. The Air Force and Bill Billowitch assume no +-- responsibilities for this software. + +-- This file is part of VESTs (Vhdl tESTs). + +-- VESTs 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 of the License, or (at +-- your option) any later version. + +-- VESTs 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 VESTs; if not, write to the Free Software Foundation, +-- Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + +-- --------------------------------------------------------------------- +-- +-- $Id: tc90.vhd,v 1.2 2001-10-26 16:30:02 paw Exp $ +-- $Revision: 1.2 $ +-- +-- --------------------------------------------------------------------- + +ENTITY c04s03b02x00p01n01i00090ent IS +END c04s03b02x00p01n01i00090ent; + +ARCHITECTURE c04s03b02x00p01n01i00090arch OF c04s03b02x00p01n01i00090ent IS + + Procedure Variable_params_of_subp ( + VARIABLE cp1 : in Boolean := FALSE; + VARIABLE cp2 : in Bit := '0'; + VARIABLE cp3 : in Character := '$'; + VARIABLE cp4 : in SEVERITY_LEVEL := FAILURE; + VARIABLE cp5 : in Integer := 5 + 6 ; + VARIABLE cp6 : in Real := 2.45 ; + VARIABLE cp7 : in TIME := 0 fs; + VARIABLE cp8 : in Natural := 10; + VARIABLE cp9 : in Positive := 99; + -- + VARIABLE cp12 : out Boolean ; + VARIABLE cp13 : out Bit ; + VARIABLE cp14 : out Character ; + VARIABLE cp15 : out SEVERITY_LEVEL ; + VARIABLE cp16 : out Integer ; + VARIABLE cp17 : out Real ; + VARIABLE cp18 : out TIME ; + VARIABLE cp19 : out Natural ; + VARIABLE cp20 : out Positive ; + -- + VARIABLE cp23 : inout Boolean ; + VARIABLE cp24 : inout Bit ; + VARIABLE cp25 : inout Character ; + VARIABLE cp26 : inout SEVERITY_LEVEL ; + VARIABLE cp27 : inout Integer ; + VARIABLE cp28 : inout Real ; + VARIABLE cp29 : inout TIME ; + VARIABLE cp30 : inout Natural ; + VARIABLE cp31 : inout Positive + ) is + begin + -- assign ins to outs + cp12 := cp1 ; + cp13 := cp2 ; + cp14 := cp3 ; + cp15 := cp4 ; + cp16 := cp5 ; + cp17 := cp6 ; + cp18 := cp7 ; + cp19 := cp8 ; + cp20 := cp9 ; + + -- assign ins to inouts + cp23 := cp1 ; + cp24 := cp2 ; + cp25 := cp3 ; + cp26 := cp4 ; + cp27 := cp5 ; + cp28 := cp6 ; + cp29 := cp7 ; + cp30 := cp8 ; + cp31 := cp9 ; + + end Variable_params_of_subp; + +BEGIN + TESTING: PROCESS + VARIABLE v1 : Boolean := false; + VARIABLE v2 : Bit := '1'; + VARIABLE v3 : Character := '%'; + VARIABLE v4 : SEVERITY_LEVEL := NOTE; + VARIABLE v5 : Integer := 22121; + VARIABLE v6 : Real := 2.545; + VARIABLE v7 : TIME := 12 ns; + VARIABLE v8 : Natural := 90; + VARIABLE v9 : Positive := 101; + + VARIABLE v12 : Boolean ; + VARIABLE v13 : Bit ; + VARIABLE v14 : Character ; + VARIABLE v15 : SEVERITY_LEVEL ; + VARIABLE v16 : Integer ; + VARIABLE v17 : Real ; + VARIABLE v18 : TIME ; + VARIABLE v19 : Natural ; + VARIABLE v20 : Positive ; + + VARIABLE v23 : Boolean ; + VARIABLE v24 : Bit ; + VARIABLE v25 : Character ; + VARIABLE v26 : SEVERITY_LEVEL ; + VARIABLE v27 : Integer ; + VARIABLE v28 : Real ; + VARIABLE v29 : TIME ; + VARIABLE v30 : Natural ; + VARIABLE v31 : Positive ; + + BEGIN + + Variable_params_of_subp ( v1,v2,v3,v4,v5,v6,v7,v8,v9, + v12,v13,v14,v15,v16,v17,v18,v19,v20, + v23,v24,v25,v26,v27,v28,v29,v30,v31 + ); + + assert v12 = v1 report " v12 /= v1" severity failure; + assert v13 = v2 report " v13 /= v2" severity failure; + assert v14 = v3 report " v14 /= v3" severity failure; + assert v15 = v4 report " v15 /= v4" severity failure; + assert v16 = v5 report " v16 /= v5" severity failure; + assert v17 = v6 report " v17 /= v6" severity failure; + assert v18 = v7 report " v18 /= v7" severity failure; + assert v19 = v8 report " v19 /= v8" severity failure; + assert v20 = v9 report " v20 /= v9" severity failure; + + assert v23 = v1 report " v23 /= v1" severity failure; + assert v24 = v2 report " v24 /= v2" severity failure; + assert v25 = v3 report " v25 /= v3" severity failure; + assert v26 = v4 report " v26 /= v4" severity failure; + assert v27 = v5 report " v27 /= v5" severity failure; + assert v28 = v6 report " v28 /= v6" severity failure; + assert v29 = v7 report " v29 /= v7" severity failure; + assert v30 = v8 report " v30 /= v8" severity failure; + assert v31 = v9 report " v31 /= v9" severity failure; + WAIT for 1 ns; + + assert NOT( v12 = v1 and + v13 = v2 and + v14 = v3 and + v15 = v4 and + v16 = v5 and + v17 = v6 and + v18 = v7 and + v19 = v8 and + v20 = v9 and + v23 = v1 and + v24 = v2 and + v25 = v3 and + v26 = v4 and + v27 = v5 and + v28 = v6 and + v29 = v7 and + v30 = v8 and + v31 = v9 ) + report "***PASSED TEST:c04s03b02x00p01n01i00090" + severity NOTE; + assert ( v12 = v1 and + v13 = v2 and + v14 = v3 and + v15 = v4 and + v16 = v5 and + v17 = v6 and + v18 = v7 and + v19 = v8 and + v20 = v9 and + v23 = v1 and + v24 = v2 and + v25 = v3 and + v26 = v4 and + v27 = v5 and + v28 = v6 and + v29 = v7 and + v30 = v8 and + v31 = v9 ) + report "***FAILED TEST: c04s03b02x00p01n01i00090 - Variables as the interface objects that appear as variable parameters of subprogram." + severity ERROR; + wait; + END PROCESS TESTING; + +END c04s03b02x00p01n01i00090arch; |