aboutsummaryrefslogtreecommitdiffstats
path: root/testsuite/vests/vhdl-93/billowitch/compliant/tc744.vhd
diff options
context:
space:
mode:
authorTristan Gingold <tgingold@free.fr>2013-12-20 04:48:54 +0100
committerTristan Gingold <tgingold@free.fr>2013-12-20 04:48:54 +0100
commit6c3f709174e8e4d5411f851cedb7d84c38d3b04a (patch)
treebd12c79c71a2ee65899a9ade9919ec2045addef8 /testsuite/vests/vhdl-93/billowitch/compliant/tc744.vhd
parentbd4aff0f670351c0652cf24e9b04361dc0e3a01c (diff)
downloadghdl-6c3f709174e8e4d5411f851cedb7d84c38d3b04a.tar.gz
ghdl-6c3f709174e8e4d5411f851cedb7d84c38d3b04a.tar.bz2
ghdl-6c3f709174e8e4d5411f851cedb7d84c38d3b04a.zip
Import vests testsuite
Diffstat (limited to 'testsuite/vests/vhdl-93/billowitch/compliant/tc744.vhd')
-rw-r--r--testsuite/vests/vhdl-93/billowitch/compliant/tc744.vhd170
1 files changed, 170 insertions, 0 deletions
diff --git a/testsuite/vests/vhdl-93/billowitch/compliant/tc744.vhd b/testsuite/vests/vhdl-93/billowitch/compliant/tc744.vhd
new file mode 100644
index 000000000..e47c7dac9
--- /dev/null
+++ b/testsuite/vests/vhdl-93/billowitch/compliant/tc744.vhd
@@ -0,0 +1,170 @@
+
+-- 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: tc744.vhd,v 1.2 2001-10-26 16:29:59 paw Exp $
+-- $Revision: 1.2 $
+--
+-- ---------------------------------------------------------------------
+
+package c01s01b01x01p05n02i00744pkg is
+ type boolean_vector is array (natural range <>) of boolean;
+ type severity_level_vector is array (natural range <>) of severity_level;
+ type integer_vector is array (natural range <>) of integer;
+ type real_vector is array (natural range <>) of real;
+ type time_vector is array (natural range <>) of time;
+ type natural_vector is array (natural range <>) of natural;
+ type positive_vector is array (natural range <>) of positive;
+
+ type record_std_package is record
+ a: boolean;
+ b: bit;
+ c: character;
+ d: severity_level;
+ e: integer;
+ f: real;
+ g: time;
+ h: natural;
+ i: positive;
+ j: string(1 to 7);
+ k: bit_vector(0 to 3);
+ end record;
+
+ type array_rec_std is array (integer range <>) of record_std_package;
+
+end c01s01b01x01p05n02i00744pkg;
+
+use work.c01s01b01x01p05n02i00744pkg.all;
+ENTITY c01s01b01x01p05n02i00744ent IS
+ generic(
+ zero : integer := 0;
+ one : integer := 1;
+ two : integer := 2;
+ three: integer := 3;
+ four : integer := 4;
+ five : integer := 5;
+ six : integer := 6;
+ seven: integer := 7;
+ eight: integer := 8;
+ nine : integer := 9;
+ fifteen:integer:= 15;
+ C1 : boolean := true;
+ C2 : bit := '1';
+ C3 : character := 's';
+ C4 : severity_level:= note;
+ C5 : integer := 3;
+ C6 : real := 3.0;
+ C7 : time := 3 ns;
+ C8 : natural := 1;
+ C9 : positive := 1;
+ C10 : string := "shishir";
+ C11 : bit_vector := B"0011"
+ );
+ port(
+ S1 : inout boolean_vector (zero to fifteen);
+ S2 : inout severity_level_vector (zero to fifteen);
+ S3 : inout integer_vector (zero to fifteen);
+ S4 : inout real_vector (zero to fifteen);
+ S5 : inout time_vector (zero to fifteen);
+ S6 : inout natural_vector (zero to fifteen);
+ S7 : inout positive_vector (zero to fifteen);
+ S48: inout array_rec_std (zero to seven)
+ );
+END c01s01b01x01p05n02i00744ent;
+
+ARCHITECTURE c01s01b01x01p05n02i00744arch OF c01s01b01x01p05n02i00744ent IS
+
+BEGIN
+ TESTING: PROCESS
+ variable k : integer := 0;
+ BEGIN
+ for i in S1'range loop
+ S1(i) <= C1;
+ end loop;
+ for i in S2'range loop
+ S2(i) <= C4;
+ end loop;
+ for i in S3'range loop
+ S3(i) <= C5;
+ end loop;
+ for i in S4'range loop
+ S4(i) <= C6;
+ end loop;
+ for i in S5'range loop
+ S5(i) <= C7;
+ end loop;
+ for i in S6'range loop
+ S6(i) <= C8;
+ end loop;
+ for i in S7'range loop
+ S7(i) <= C9;
+ end loop;
+ for i in S48'range loop
+ S48(i) <= (C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11);
+ end loop;
+ wait for 10 ns;
+ for i in zero to 7 loop
+ if (S1(i) /= true) then
+ k := 1;
+ end if;
+ assert S1(i) = true report " boolean_vector(zero to fifteen) error in the left generic value" severity error;
+ if (S2(i) /= note) then
+ k := 1;
+ end if;
+ assert S2(i) = note report " severity_level_vector(zero to fifteen) error in the left generic value" severity error;
+ if (S3(i) /= 3) then
+ k := 1;
+ end if;
+ assert S3(i) = 3 report " integer_vector(zero to fifteen) error in the left generic value" severity error;
+ if (S4(i) /= 3.0) then
+ k := 1;
+ end if;
+ assert S4(i) = 3.0 report " real_vector(zero to fifteen) error in the left generic value" severity error;
+ if (S5(i) /= 3 ns) then
+ k := 1;
+ end if;
+ assert S5(i) = 3 ns report " time_vector (zero to fifteen) error in the left generic value" severity error;
+ if (S6(i) /= 1) then
+ k := 1;
+ end if;
+ assert S6(i) = 1 report " natural_vector(zero to fifteen) error in the left generic value" severity error;
+ if (S7(i) /= 1) then
+ k := 1;
+ end if;
+ assert S7(i) = 1 report " positive_vector(zero to fifteen) error in the left generic value" severity error;
+ if (S48(i) /= (true,'1','s',note,3,3.0,3 ns,1,1,"shishir","0011")) then
+ k := 1;
+ end if;
+ assert S48(i) = (true,'1','s',note,3,3.0,3 ns,1,1,"shishir","0011") report " array_rec_std(zero to seven) error in the left generic value" severity error;
+ end loop;
+ assert NOT( k=0 )
+ report "***PASSED TEST: c01s01b01x01p05n02i00744"
+ severity NOTE;
+ assert ( k=0 )
+ report "***FAILED TEST: c01s01b01x01p05n02i00744 - Generic can be used to specify the size of ports."
+ severity ERROR;
+ wait;
+ END PROCESS TESTING;
+
+END c01s01b01x01p05n02i00744arch;