aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--dist/mcode/windows/complib.bat93
-rw-r--r--dist/mcode/windows/ghdlfilter.adb65
-rw-r--r--libraries/Makefile.inc10
-rw-r--r--libraries/ieee/numeric_bit-body.vhdl12
-rw-r--r--libraries/ieee/numeric_bit.vhdl20
-rw-r--r--libraries/ieee/numeric_std-body.vhdl12
-rw-r--r--libraries/ieee/numeric_std.vhdl20
-rw-r--r--libraries/ieee/std_logic_1164.vhdl6
-rw-r--r--libraries/ieee/std_logic_1164_body.vhdl8
-rw-r--r--libraries/std/textio.vhdl8
-rw-r--r--libraries/std/textio_body.vhdl28
11 files changed, 199 insertions, 83 deletions
diff --git a/dist/mcode/windows/complib.bat b/dist/mcode/windows/complib.bat
index 88a43ce60..e19ac7f4a 100644
--- a/dist/mcode/windows/complib.bat
+++ b/dist/mcode/windows/complib.bat
@@ -6,63 +6,116 @@ cd ..
set REL=..\..\..
set LIBSRC=%REL%\..\..\libraries
-set STD_SRCS=textio textio_body
-set IEEE_SRCS=std_logic_1164 std_logic_1164_body numeric_std numeric_std-body numeric_bit numeric_bit-body
-set VITAL95_SRCS=vital_timing vital_timing_body vital_primitives vital_primitives_body
-set VITAL2000_SRCS=timing_p timing_b prmtvs_p prmtvs_b memory_p memory_b
-set SYNOPSYS_SRCS=std_logic_arith std_logic_textio std_logic_unsigned std_logic_signed std_logic_misc std_logic_misc-body
+::
+:: library sources
+::
+set STD_SRCS= textio textio_body
+set IEEE_SRCS= std_logic_1164 std_logic_1164_body numeric_std numeric_std-body numeric_bit numeric_bit-body
+set MATH_SRCS= math_real math_real-body math_complex math_complex-body
+
+set STD08_SRCS= textio textio_body env env_body
+set IEEE08_SRCS= std_logic_1164 std_logic_1164-body std_logic_textio math_real math_real-body math_complex math_complex-body numeric_bit numeric_bit-body numeric_bit_unsigned numeric_bit_unsigned-body numeric_std numeric_std-body numeric_std_unsigned numeric_std_unsigned-body fixed_float_types fixed_generic_pkg fixed_generic_pkg-body fixed_pkg float_generic_pkg float_generic_pkg-body float_pkg
+
+set VITAL95_SRCS= vital_timing vital_timing_body vital_primitives vital_primitives_body
+set VITAL2000_SRCS= timing_p timing_b prmtvs_p prmtvs_b memory_p memory_b
+
+set SYNOPSYS_SRCS= std_logic_arith std_logic_textio std_logic_unsigned std_logic_signed std_logic_misc std_logic_misc-body
+set MENTOR_SRCS= std_logic_arith std_logic_arith_body
+
mkdir lib
cd lib
+:::::::::::::::::
+echo v87 libraries...
+
mkdir v87
cd v87
+echo std
mkdir std
cd std
-for %%F in (%STD_SRCS%) do %REL%\build\ghdlfilter -v87 < %LIBSRC%\std\%%F.vhdl > %%F.v87 && %REL%\build\%GHDL% -a --std=87 --bootstrap --work=std %%F.v87
+for %%F in (%STD_SRCS%) do %REL%\build\ghdlfilter -v87 < %LIBSRC%\std\%%F.vhdl > %%F.v87 && %REL%\build\%GHDL% -a --std=87 --bootstrap --work=std %%F.v87
cd ..
+echo ieee
mkdir ieee
cd ieee
-rem Base ieee
-for %%F in (%IEEE_SRCS%) do %REL%\build\ghdlfilter -v87 < %LIBSRC%\ieee\%%F.vhdl > %%F.v87 && %REL%\build\%GHDL% -a --std=87 -P..\std --work=ieee %%F.v87
-rem Vital 95
-for %%F in (%VITAL95_SRCS%) do copy %LIBSRC%\vital95\%%F.vhdl %%F.vhd && %REL%\build\%GHDL% -a --std=87 -P..\std --work=ieee %%F.vhd
+for %%F in (%IEEE_SRCS%) do %REL%\build\ghdlfilter -v87 < %LIBSRC%\ieee\%%F.vhdl > %%F.v87 && %REL%\build\%GHDL% -a --std=87 -P..\std --work=ieee %%F.v87
+for %%F in (%VITAL95_SRCS%) do copy %LIBSRC%\vital95\%%F.vhdl %%F.vhd && %REL%\build\%GHDL% -a --std=87 -P..\std --work=ieee %%F.vhd
cd ..
+echo synopsys
mkdir synopsys
cd synopsys
-for %%F in (%IEEE_SRCS%) do %REL%\build\%GHDL% -a --std=87 -P..\std --work=ieee ..\ieee\%%F.v87
-for %%F in (%VITAL95_SRCS%) do %REL%\build\%GHDL% -a --std=87 -P..\std --work=ieee ..\ieee\%%F.vhd
-for %%F in (%SYNOPSYS_SRCS%) do copy %LIBSRC%\synopsys\%%F.vhdl %%F.vhd && %REL%\build\%GHDL% -a --std=87 -P..\std --work=ieee %%F.vhd
+for %%F in (%IEEE_SRCS%) do %REL%\build\%GHDL% -a --std=87 -P..\std --work=ieee ..\ieee\%%F.v87
+for %%F in (%VITAL95_SRCS%) do %REL%\build\%GHDL% -a --std=87 -P..\std --work=ieee ..\ieee\%%F.vhd
+for %%F in (%SYNOPSYS_SRCS%) do copy %LIBSRC%\synopsys\%%F.vhdl %%F.vhd && %REL%\build\%GHDL% -a --std=87 -P..\std --work=ieee %%F.vhd
cd ..
cd ..
+
+:::::::::::::::::
+echo v93 libraries...
+
mkdir v93
cd v93
+echo std
mkdir std
cd std
-for %%F in (%STD_SRCS%) do %REL%\build\ghdlfilter -v93 < %LIBSRC%\std\%%F.vhdl > %%F.v93 && %REL%\build\%GHDL% -a --std=93 --bootstrap --work=std %%F.v93
+for %%F in (%STD_SRCS%) do %REL%\build\ghdlfilter -v93 < %LIBSRC%\std\%%F.vhdl > %%F.v93 && %REL%\build\%GHDL% -a --std=93 --bootstrap --work=std %%F.v93
cd ..
+echo ieee
mkdir ieee
cd ieee
-echo Base ieee
-for %%F in (%IEEE_SRCS%) do %REL%\build\ghdlfilter -v93 < %LIBSRC%\ieee\%%F.vhdl > %%F.v93 && %REL%\build\%GHDL% -a --std=93 -P..\std --work=ieee %%F.v93
-echo Vital 2000
-for %%F in (%VITAL2000_SRCS%) do copy %LIBSRC%\vital2000\%%F.vhdl %%F.vhd && %REL%\build\%GHDL% -a --std=93 -P..\std --work=ieee %%F.vhd
+for %%F in (%IEEE_SRCS%) do %REL%\build\ghdlfilter -v93 < %LIBSRC%\ieee\%%F.vhdl > %%F.v93 && %REL%\build\%GHDL% -a --std=93 -P..\std --work=ieee %%F.v93
+for %%F in (%VITAL2000_SRCS%) do copy %LIBSRC%\vital2000\%%F.vhdl %%F.vhd && %REL%\build\%GHDL% -a --std=93 -P..\std --work=ieee %%F.vhd
+for %%F in (%MATH_SRCS%) do copy %LIBSRC%\ieee\%%F.vhdl %%F.vhd && %REL%\build\%GHDL% -a --std=93 -P..\std --work=ieee %%F.vhd
cd ..
+echo synopsys
mkdir synopsys
cd synopsys
-for %%F in (%IEEE_SRCS%) do %REL%\build\%GHDL% -a --std=93 -P..\std --work=ieee ..\ieee\%%F.v93
+for %%F in (%IEEE_SRCS%) do %REL%\build\%GHDL% -a --std=93 -P..\std --work=ieee ..\ieee\%%F.v93
for %%F in (%VITAL2000_SRCS%) do %REL%\build\%GHDL% -a --std=93 -P..\std --work=ieee ..\ieee\%%F.vhd
-for %%F in (%SYNOPSYS_SRCS%) do %REL%\build\%GHDL% -a --std=93 -P..\std --work=ieee ..\..\v87\synopsys\%%F.vhd
+for %%F in (%MATH_SRCS%) do %REL%\build\%GHDL% -a --std=93 -P..\std --work=ieee ..\ieee\%%F.vhd
+for %%F in (%SYNOPSYS_SRCS%) do %REL%\build\%GHDL% -a --std=93 -P..\std --work=ieee ..\..\v87\synopsys\%%F.vhd
cd ..
+echo mentor
+mkdir mentor
+cd mentor
+for %%F in (%IEEE_SRCS%) do %REL%\build\%GHDL% -a --std=93 -P..\std --work=ieee ..\ieee\%%F.v93
+for %%F in (%VITAL2000_SRCS%) do %REL%\build\%GHDL% -a --std=93 -P..\std --work=ieee ..\ieee\%%F.vhd
+for %%F in (%MATH_SRCS%) do %REL%\build\%GHDL% -a --std=93 -P..\std --work=ieee ..\ieee\%%F.vhd
+for %%F in (%MENTOR_SRCS%) do copy %LIBSRC%\mentor\%%F.vhdl %%F.vhd && %REL%\build\%GHDL% -a --std=93 -P..\std --work=ieee %%F.vhd
cd ..
cd ..
+
+:::::::::::::::::
+echo v08 libraries...
+
+mkdir v08
+cd v08
+
+echo std
+mkdir std
+cd std
+for %%F in (%STD08_SRCS%) do %REL%\build\ghdlfilter -v08 < %LIBSRC%\std\%%F.vhdl > %%F.v08 && %REL%\build\%GHDL% -a --std=08 --bootstrap --work=std %%F.v08
+cd ..
+
+echo ieee
+mkdir ieee
+cd ieee
+for %%F in (%IEEE08_SRCS%) do %REL%\build\ghdlfilter -v08 < %LIBSRC%\ieee2008\%%F.vhdl > %%F.v08 && %REL%\build\%GHDL% -a --std=08 -P..\std --work=ieee %%F.v08
+for %%F in (%VITAL2000_SRCS%) do copy %LIBSRC%\vital2000\%%F.vhdl %%F.vhd && %REL%\build\%GHDL% -a --std=08 -P..\std --work=ieee %%F.vhd
+cd ..
+
+
+:::::::::::::::::
+
+cd ..\..
diff --git a/dist/mcode/windows/ghdlfilter.adb b/dist/mcode/windows/ghdlfilter.adb
index 681d404dc..d75526dbd 100644
--- a/dist/mcode/windows/ghdlfilter.adb
+++ b/dist/mcode/windows/ghdlfilter.adb
@@ -1,3 +1,29 @@
+--
+-- Preprocessor to handle library source metacomments
+--
+-- Limitations:
+-- - line metacomments must occur at end of line with no trailing space before the line break
+-- - block metacomments must start in column 1
+--
+-- Supported line metacomments:
+--
+-- --!V87
+-- --V87
+-- --V93
+-- --V08
+--
+-- Supported block metacomments:
+--
+-- --START-!V87
+-- --END-!V87
+--
+-- --START-V93
+-- --END-V93
+--
+-- --START-V08
+-- --END-V08
+--
+--
with Ada.Command_Line; use Ada.Command_Line;
with Ada.Text_IO; use Ada.Text_IO;
@@ -35,14 +61,39 @@ begin
Comment := Block_Comment;
+ --
+ -- look for line metacomments
+ --
+ if Len > 6 then
+
+ if Mode = Mode_87 and ( Line (Len - 5 .. Len) = "--!V87" ) then
+ Comment := True;
+ end if;
+
+ end if;
+
+
if Len > 5 then
- if Mode = Mode_87 and ( (Line (Len - 4 .. Len) = "--V93") or (Line (Len - 4 .. Len) = "--V08") ) then
+
+ if Mode = Mode_87 and ( (Line (Len - 4 .. Len) = "--V93") or (Line (Len - 4 .. Len) = "--V08") ) then
Comment := True;
+
elsif Mode = Mode_93 and ( (Line (Len - 4 .. Len) = "--V87") or (Line (Len - 4 .. Len) = "--V08") ) then
Comment := True;
+
elsif Mode = Mode_08 and ( (Line (Len - 4 .. Len) = "--V87") or (Line (Len - 4 .. Len) = "--V93") ) then
Comment := True;
end if;
+
+ end if;
+
+ --
+ -- look for block metacomment start
+ --
+ if Len = 12
+ and then Mode /= Mode_93
+ and then Line (1 .. 12) = "--START-!V87" then
+ Block_Comment := True;
end if;
if Len = 11
@@ -57,13 +108,25 @@ begin
Block_Comment := True;
end if;
+ --
+ -- look for block metacomment end
+ --
if Len = 9 and then ( (Line (1 .. 9) = "--END-V93") or (Line (1 .. 9) = "--END-V08") ) then
Block_Comment := False;
end if;
+ if Len = 10 and then ( Line (1 .. 10) = "--END-!V87" ) then
+ Block_Comment := False;
+ end if;
+
+ --
+ -- comment output lines as needed
+ --
if Comment then
Put ("-- ");
end if;
+
Put_Line (Line (1 .. Len));
+
end loop;
end Ghdlfilter;
diff --git a/libraries/Makefile.inc b/libraries/Makefile.inc
index f12c02338..fceed0d18 100644
--- a/libraries/Makefile.inc
+++ b/libraries/Makefile.inc
@@ -77,13 +77,13 @@ MENTOR93_BSRCS := $(MENTOR_BSRCS)
.PREFIXES: .vhdl .v93 .v87 .v08
-SED_V93 := sed -e '/--V87/s/^/ --/' \
- -e '/--START-V08/,/--END-V08/s/^/--/'
+SED_V93:= sed -e '/--V87/s/^/ --/' \
+ -e '/--START-V08/,/--END-V08/s/^/--/'
-SED_V87 := sed -e '/--V93/s/^/ --/' -e '/--START-V93/,/--END-V93/s/^/--/' \
- -e '/--START-V08/,/--END-V08/s/^/--/'
+SED_V87:= sed -e '/--!V87/s/^/ --/' -e '/--START-!V87/,/--END-!V87/s/^/--/' \
+ -e '/--START-V08/,/--END-V08/s/^/--/'
-SED_V08 := sed -e '/--V87/s/^/ --/'
+SED_V08:= sed -e '/--V87/s/^/ --/'
LIB87_DIR:=$(LIBDST_DIR)/v87
STD87_DIR:=$(LIB87_DIR)/std
diff --git a/libraries/ieee/numeric_bit-body.vhdl b/libraries/ieee/numeric_bit-body.vhdl
index 895594631..92d069f92 100644
--- a/libraries/ieee/numeric_bit-body.vhdl
+++ b/libraries/ieee/numeric_bit-body.vhdl
@@ -1432,7 +1432,7 @@ package body NUMERIC_BIT is
--============================================================================
---START-V93
+--START-!V87
------------------------------------------------------------------------------
-- Note : Function S.9 is not compatible with VHDL 1076-1987. Comment
-- out the function (declaration and body) for VHDL 1076-1987 compatibility.
@@ -1545,7 +1545,7 @@ package body NUMERIC_BIT is
end if;
end "ror";
---END-V93
+--END-!V87
--============================================================================
-- Id: D.1
@@ -1724,7 +1724,7 @@ package body NUMERIC_BIT is
return RESULT;
end "xor";
---START-V93
+--START-!V87
------------------------------------------------------------------------------
-- Note : Function L.7 is not compatible with VHDL 1076-1987. Comment
-- out the function (declaration and body) for VHDL 1076-1987 compatibility.
@@ -1736,7 +1736,7 @@ package body NUMERIC_BIT is
RESULT := UNSIGNED(BIT_VECTOR(L) xnor BIT_VECTOR(R));
return RESULT;
end "xnor";
---END-V93
+--END-!V87
-- Id: L.8
function "not" (L: SIGNED) return SIGNED is
@@ -1786,7 +1786,7 @@ package body NUMERIC_BIT is
return RESULT;
end "xor";
---START-V93
+--START-!V87
------------------------------------------------------------------------------
-- Note : Function L.14 is not compatible with VHDL 1076-1987. Comment
-- out the function (declaration and body) for VHDL 1076-1987 compatibility.
@@ -1798,7 +1798,7 @@ package body NUMERIC_BIT is
RESULT := SIGNED(BIT_VECTOR(L) xnor BIT_VECTOR(R));
return RESULT;
end "xnor";
---END-V93
+--END-!V87
--============================================================================
diff --git a/libraries/ieee/numeric_bit.vhdl b/libraries/ieee/numeric_bit.vhdl
index 8f049f21a..3364e3684 100644
--- a/libraries/ieee/numeric_bit.vhdl
+++ b/libraries/ieee/numeric_bit.vhdl
@@ -599,7 +599,7 @@ package NUMERIC_BIT is
-- out the function (declaration and body) for VHDL 1076-1987 compatibility.
------------------------------------------------------------------------------
-- Id: S.9
- function "sll" (ARG: UNSIGNED; COUNT: INTEGER) return UNSIGNED; --V93
+ function "sll" (ARG: UNSIGNED; COUNT: INTEGER) return UNSIGNED; --!V87
-- Result subtype: UNSIGNED(ARG'LENGTH-1 downto 0)
-- Result: SHIFT_LEFT(ARG, COUNT)
@@ -608,7 +608,7 @@ package NUMERIC_BIT is
-- out the function (declaration and body) for VHDL 1076-1987 compatibility.
------------------------------------------------------------------------------
-- Id: S.10
- function "sll" (ARG: SIGNED; COUNT: INTEGER) return SIGNED; --V93
+ function "sll" (ARG: SIGNED; COUNT: INTEGER) return SIGNED; --!V87
-- Result subtype: SIGNED(ARG'LENGTH-1 downto 0)
-- Result: SHIFT_LEFT(ARG, COUNT)
@@ -617,7 +617,7 @@ package NUMERIC_BIT is
-- out the function (declaration and body) for VHDL 1076-1987 compatibility.
------------------------------------------------------------------------------
-- Id: S.11
- function "srl" (ARG: UNSIGNED; COUNT: INTEGER) return UNSIGNED; --V93
+ function "srl" (ARG: UNSIGNED; COUNT: INTEGER) return UNSIGNED; --!V87
-- Result subtype: UNSIGNED(ARG'LENGTH-1 downto 0)
-- Result: SHIFT_RIGHT(ARG, COUNT)
@@ -626,7 +626,7 @@ package NUMERIC_BIT is
-- out the function (declaration and body) for VHDL 1076-1987 compatibility.
------------------------------------------------------------------------------
-- Id: S.12
- function "srl" (ARG: SIGNED; COUNT: INTEGER) return SIGNED; --V93
+ function "srl" (ARG: SIGNED; COUNT: INTEGER) return SIGNED; --!V87
-- Result subtype: SIGNED(ARG'LENGTH-1 downto 0)
-- Result: SIGNED(SHIFT_RIGHT(UNSIGNED(ARG), COUNT))
@@ -635,7 +635,7 @@ package NUMERIC_BIT is
-- out the function (declaration and body) for VHDL 1076-1987 compatibility.
------------------------------------------------------------------------------
-- Id: S.13
- function "rol" (ARG: UNSIGNED; COUNT: INTEGER) return UNSIGNED; --V93
+ function "rol" (ARG: UNSIGNED; COUNT: INTEGER) return UNSIGNED; --!V87
-- Result subtype: UNSIGNED(ARG'LENGTH-1 downto 0)
-- Result: ROTATE_LEFT(ARG, COUNT)
@@ -644,7 +644,7 @@ package NUMERIC_BIT is
-- out the function (declaration and body) for VHDL 1076-1987 compatibility.
------------------------------------------------------------------------------
-- Id: S.14
- function "rol" (ARG: SIGNED; COUNT: INTEGER) return SIGNED; --V93
+ function "rol" (ARG: SIGNED; COUNT: INTEGER) return SIGNED; --!V87
-- Result subtype: SIGNED(ARG'LENGTH-1 downto 0)
-- Result: ROTATE_LEFT(ARG, COUNT)
@@ -653,7 +653,7 @@ package NUMERIC_BIT is
-- out the function (declaration and body) for VHDL 1076-1987 compatibility.
------------------------------------------------------------------------------
-- Id: S.15
- function "ror" (ARG: UNSIGNED; COUNT: INTEGER) return UNSIGNED; --V93
+ function "ror" (ARG: UNSIGNED; COUNT: INTEGER) return UNSIGNED; --!V87
-- Result subtype: UNSIGNED(ARG'LENGTH-1 downto 0)
-- Result: ROTATE_RIGHT(ARG, COUNT)
@@ -662,7 +662,7 @@ package NUMERIC_BIT is
-- out the function (declaration and body) for VHDL 1076-1987 compatibility.
------------------------------------------------------------------------------
-- Id: S.16
- function "ror" (ARG: SIGNED; COUNT: INTEGER) return SIGNED; --V93
+ function "ror" (ARG: SIGNED; COUNT: INTEGER) return SIGNED; --!V87
-- Result subtype: SIGNED(ARG'LENGTH-1 downto 0)
-- Result: ROTATE_RIGHT(ARG, COUNT)
@@ -751,7 +751,7 @@ package NUMERIC_BIT is
-- out the function (declaration and body) for VHDL 1076-1987 compatibility.
------------------------------------------------------------------------------
-- Id: L.7
- function "xnor" (L, R: UNSIGNED) return UNSIGNED; --V93
+ function "xnor" (L, R: UNSIGNED) return UNSIGNED; --!V87
-- Result subtype: UNSIGNED(L'LENGTH-1 downto 0)
-- Result: Vector XNOR operation
@@ -790,7 +790,7 @@ package NUMERIC_BIT is
-- out the function (declaration and body) for VHDL 1076-1987 compatibility.
------------------------------------------------------------------------------
-- Id: L.14
- function "xnor" (L, R: SIGNED) return SIGNED; --V93
+ function "xnor" (L, R: SIGNED) return SIGNED; --!V87
-- Result subtype: SIGNED(L'LENGTH-1 downto 0)
-- Result: Vector XNOR operation
diff --git a/libraries/ieee/numeric_std-body.vhdl b/libraries/ieee/numeric_std-body.vhdl
index a5d609dc3..ff34e18af 100644
--- a/libraries/ieee/numeric_std-body.vhdl
+++ b/libraries/ieee/numeric_std-body.vhdl
@@ -1963,7 +1963,7 @@ package body NUMERIC_STD is
end ROTATE_RIGHT;
--============================================================================
---START-V93
+--START-!V87
------------------------------------------------------------------------------
-- Note : Function S.9 is not compatible with VHDL 1076-1987. Comment
@@ -2077,7 +2077,7 @@ package body NUMERIC_STD is
end if;
end "ror";
---END-V93
+--END-!V87
--============================================================================
-- Id: D.1
@@ -2271,7 +2271,7 @@ package body NUMERIC_STD is
return RESULT;
end "xor";
---START-V93
+--START-!V87
------------------------------------------------------------------------------
-- Note : Function L.7 is not compatible with VHDL 1076-1987. Comment
-- out the function (declaration and body) for VHDL 1076-1987 compatibility.
@@ -2283,7 +2283,7 @@ package body NUMERIC_STD is
RESULT := UNSIGNED(STD_LOGIC_VECTOR(L) xnor STD_LOGIC_VECTOR(R));
return RESULT;
end "xnor";
---END-V93
+--END-!V87
-- Id: L.8
function "not" (L: SIGNED) return SIGNED is
@@ -2333,7 +2333,7 @@ package body NUMERIC_STD is
return RESULT;
end "xor";
---START-V93
+--START-!V87
------------------------------------------------------------------------------
-- Note : Function L.14 is not compatible with VHDL 1076-1987. Comment
-- out the function (declaration and body) for VHDL 1076-1987 compatibility.
@@ -2345,7 +2345,7 @@ package body NUMERIC_STD is
RESULT := SIGNED(STD_LOGIC_VECTOR(L) xnor STD_LOGIC_VECTOR(R));
return RESULT;
end "xnor";
---END-V93
+--END-!V87
--============================================================================
diff --git a/libraries/ieee/numeric_std.vhdl b/libraries/ieee/numeric_std.vhdl
index da22c32b0..360e421c4 100644
--- a/libraries/ieee/numeric_std.vhdl
+++ b/libraries/ieee/numeric_std.vhdl
@@ -606,7 +606,7 @@ package NUMERIC_STD is
-- out the function (declaration and body) for VHDL 1076-1987 compatibility.
------------------------------------------------------------------------------
-- Id: S.9
- function "sll" (ARG: UNSIGNED; COUNT: INTEGER) return UNSIGNED; --V93
+ function "sll" (ARG: UNSIGNED; COUNT: INTEGER) return UNSIGNED; --!V87
-- Result subtype: UNSIGNED(ARG'LENGTH-1 downto 0)
-- Result: SHIFT_LEFT(ARG, COUNT)
@@ -615,7 +615,7 @@ package NUMERIC_STD is
-- out the function (declaration and body) for VHDL 1076-1987 compatibility.
------------------------------------------------------------------------------
-- Id: S.10
- function "sll" (ARG: SIGNED; COUNT: INTEGER) return SIGNED; --V93
+ function "sll" (ARG: SIGNED; COUNT: INTEGER) return SIGNED; --!V87
-- Result subtype: SIGNED(ARG'LENGTH-1 downto 0)
-- Result: SHIFT_LEFT(ARG, COUNT)
@@ -624,7 +624,7 @@ package NUMERIC_STD is
-- out the function (declaration and body) for VHDL 1076-1987 compatibility.
------------------------------------------------------------------------------
-- Id: S.11
- function "srl" (ARG: UNSIGNED; COUNT: INTEGER) return UNSIGNED; --V93
+ function "srl" (ARG: UNSIGNED; COUNT: INTEGER) return UNSIGNED; --!V87
-- Result subtype: UNSIGNED(ARG'LENGTH-1 downto 0)
-- Result: SHIFT_RIGHT(ARG, COUNT)
@@ -633,7 +633,7 @@ package NUMERIC_STD is
-- out the function (declaration and body) for VHDL 1076-1987 compatibility.
------------------------------------------------------------------------------
-- Id: S.12
- function "srl" (ARG: SIGNED; COUNT: INTEGER) return SIGNED; --V93
+ function "srl" (ARG: SIGNED; COUNT: INTEGER) return SIGNED; --!V87
-- Result subtype: SIGNED(ARG'LENGTH-1 downto 0)
-- Result: SIGNED(SHIFT_RIGHT(UNSIGNED(ARG), COUNT))
@@ -642,7 +642,7 @@ package NUMERIC_STD is
-- out the function (declaration and body) for VHDL 1076-1987 compatibility.
------------------------------------------------------------------------------
-- Id: S.13
- function "rol" (ARG: UNSIGNED; COUNT: INTEGER) return UNSIGNED; --V93
+ function "rol" (ARG: UNSIGNED; COUNT: INTEGER) return UNSIGNED; --!V87
-- Result subtype: UNSIGNED(ARG'LENGTH-1 downto 0)
-- Result: ROTATE_LEFT(ARG, COUNT)
@@ -651,7 +651,7 @@ package NUMERIC_STD is
-- out the function (declaration and body) for VHDL 1076-1987 compatibility.
------------------------------------------------------------------------------
-- Id: S.14
- function "rol" (ARG: SIGNED; COUNT: INTEGER) return SIGNED; --V93
+ function "rol" (ARG: SIGNED; COUNT: INTEGER) return SIGNED; --!V87
-- Result subtype: SIGNED(ARG'LENGTH-1 downto 0)
-- Result: ROTATE_LEFT(ARG, COUNT)
@@ -660,7 +660,7 @@ package NUMERIC_STD is
-- out the function (declaration and body) for VHDL 1076-1987 compatibility.
------------------------------------------------------------------------------
-- Id: S.15
- function "ror" (ARG: UNSIGNED; COUNT: INTEGER) return UNSIGNED; --V93
+ function "ror" (ARG: UNSIGNED; COUNT: INTEGER) return UNSIGNED; --!V87
-- Result subtype: UNSIGNED(ARG'LENGTH-1 downto 0)
-- Result: ROTATE_RIGHT(ARG, COUNT)
@@ -669,7 +669,7 @@ package NUMERIC_STD is
-- out the function (declaration and body) for VHDL 1076-1987 compatibility.
------------------------------------------------------------------------------
-- Id: S.16
- function "ror" (ARG: SIGNED; COUNT: INTEGER) return SIGNED; --V93
+ function "ror" (ARG: SIGNED; COUNT: INTEGER) return SIGNED; --!V87
-- Result subtype: SIGNED(ARG'LENGTH-1 downto 0)
-- Result: ROTATE_RIGHT(ARG, COUNT)
@@ -758,7 +758,7 @@ package NUMERIC_STD is
-- out the function (declaration and body) for VHDL 1076-1987 compatibility.
-- ---------------------------------------------------------------------------
-- Id: L.7
- function "xnor" (L, R: UNSIGNED) return UNSIGNED; --V93
+ function "xnor" (L, R: UNSIGNED) return UNSIGNED; --!V87
-- Result subtype: UNSIGNED(L'LENGTH-1 downto 0)
-- Result: Vector XNOR operation
@@ -797,7 +797,7 @@ package NUMERIC_STD is
-- out the function (declaration and body) for VHDL 1076-1987 compatibility.
-- ---------------------------------------------------------------------------
-- Id: L.14
- function "xnor" (L, R: SIGNED) return SIGNED; --V93
+ function "xnor" (L, R: SIGNED) return SIGNED; --!V87
-- Result subtype: SIGNED(L'LENGTH-1 downto 0)
-- Result: Vector XNOR operation
diff --git a/libraries/ieee/std_logic_1164.vhdl b/libraries/ieee/std_logic_1164.vhdl
index c53113be9..c1c964817 100644
--- a/libraries/ieee/std_logic_1164.vhdl
+++ b/libraries/ieee/std_logic_1164.vhdl
@@ -85,7 +85,7 @@ PACKAGE std_logic_1164 IS
FUNCTION "or" ( l : std_ulogic; r : std_ulogic ) RETURN UX01;
FUNCTION "nor" ( l : std_ulogic; r : std_ulogic ) RETURN UX01;
FUNCTION "xor" ( l : std_ulogic; r : std_ulogic ) RETURN UX01;
- FUNCTION "xnor" ( l : std_ulogic; r : std_ulogic ) RETURN UX01; --V93
+ FUNCTION "xnor" ( l : std_ulogic; r : std_ulogic ) RETURN UX01; --!V87
FUNCTION "not" ( l : std_ulogic ) RETURN UX01;
-------------------------------------------------------------------
@@ -115,8 +115,8 @@ PACKAGE std_logic_1164 IS
-- the intent of this effort to provide such a function once it becomes
-- available in the VHDL standard.
-- -----------------------------------------------------------------------
- FUNCTION "xnor" ( l, r : std_logic_vector ) RETURN std_logic_vector; --V93
- FUNCTION "xnor" ( l, r : std_ulogic_vector ) RETURN std_ulogic_vector;--V93
+ FUNCTION "xnor" ( l, r : std_logic_vector ) RETURN std_logic_vector; --!V87
+ FUNCTION "xnor" ( l, r : std_ulogic_vector ) RETURN std_ulogic_vector;--!V87
FUNCTION "not" ( l : std_logic_vector ) RETURN std_logic_vector;
FUNCTION "not" ( l : std_ulogic_vector ) RETURN std_ulogic_vector;
diff --git a/libraries/ieee/std_logic_1164_body.vhdl b/libraries/ieee/std_logic_1164_body.vhdl
index 65c5965e0..88a87482c 100644
--- a/libraries/ieee/std_logic_1164_body.vhdl
+++ b/libraries/ieee/std_logic_1164_body.vhdl
@@ -162,12 +162,12 @@ PACKAGE BODY std_logic_1164 IS
RETURN (xor_table(l, r));
END "xor";
---START-V93
+--START-!V87
FUNCTION "xnor" ( l : std_ulogic; r : std_ulogic ) RETURN UX01 IS
BEGIN
RETURN not_table(xor_table(l, r));
END "xnor";
---END-V93
+--END-!V87
FUNCTION "not" ( l : std_ulogic ) RETURN UX01 IS
BEGIN
@@ -366,7 +366,7 @@ PACKAGE BODY std_logic_1164 IS
-- the intent of this effort to provide such a function once it becomes
-- available in the VHDL standard.
-- -----------------------------------------------------------------------
---START-V93
+--START-!V87
FUNCTION "xnor" ( l,r : std_logic_vector ) RETURN std_logic_vector IS
ALIAS lv : std_logic_vector ( 1 TO l'LENGTH ) IS l;
ALIAS rv : std_logic_vector ( 1 TO r'LENGTH ) IS r;
@@ -400,7 +400,7 @@ PACKAGE BODY std_logic_1164 IS
END IF;
RETURN result;
END "xnor";
---END-V93
+--END-!V87
-------------------------------------------------------------------
-- not
-------------------------------------------------------------------
diff --git a/libraries/std/textio.vhdl b/libraries/std/textio.vhdl
index fe69d2d88..3b62d763e 100644
--- a/libraries/std/textio.vhdl
+++ b/libraries/std/textio.vhdl
@@ -43,13 +43,13 @@ package Textio is
file input: text is in "STD_INPUT"; --V87
file output: text is out "STD_OUTPUT"; --V87
- file input : text open read_mode is "STD_INPUT"; --V93
- file output : text open write_mode is "STD_OUTPUT"; --V93
+ file input : text open read_mode is "STD_INPUT"; --!V87
+ file output : text open write_mode is "STD_OUTPUT"; --!V87
-- input routines for standard types
procedure readline (variable f: in text; l: inout line); --V87
- procedure readline (file f: text; l: inout line); --V93
+ procedure readline (file f: text; l: inout line); --!V87
-- For READ procedures:
-- In this implementation, any L is accepted (ie, there is no constraints
@@ -120,7 +120,7 @@ package Textio is
-- output routines for standard types
procedure writeline (variable f: out text; l: inout line); --V87
- procedure writeline (file f: text; l: inout line); --V93
+ procedure writeline (file f: text; l: inout line); --!V87
--START-V08
procedure Tee (file f : Text; L : inout LINE);
diff --git a/libraries/std/textio_body.vhdl b/libraries/std/textio_body.vhdl
index bb4ea8c8a..e74fcc6c0 100644
--- a/libraries/std/textio_body.vhdl
+++ b/libraries/std/textio_body.vhdl
@@ -68,14 +68,14 @@ package body textio is
((fs, "fs "), (ps, "ps "), (ns, "ns "), (us, "us "),
(ms, "ms "), (sec, "sec"), (min, "min"), (hr, "hr "));
- -- Non breaking space character. --V93
- constant nbsp : character := character'val (160); --V93
+ -- Non breaking space character. --!V87
+ constant nbsp : character := character'val (160); --!V87
function is_whitespace (c : character) return Boolean is
begin
case c is
when ' '
- | NBSP --V93
+ | NBSP --!V87
| HT =>
return True;
when others =>
@@ -84,7 +84,7 @@ package body textio is
end is_Whitespace;
procedure writeline (variable f: out text; l: inout line) is --V87
- procedure writeline (file f: text; l: inout line) is --V93
+ procedure writeline (file f: text; l: inout line) is --!V87
begin
if l = null then
-- LRM93 14.3
@@ -498,21 +498,21 @@ package body textio is
procedure untruncated_text_read --V87
(variable f : text; str : out string; len : out natural); --V87
- procedure untruncated_text_read --V93
- (file f : text; str : out string; len : out natural); --V93
+ procedure untruncated_text_read --!V87
+ (file f : text; str : out string; len : out natural); --!V87
attribute foreign : string; --V87
attribute foreign of untruncated_text_read : procedure is "GHDL intrinsic";
procedure untruncated_text_read
(variable f : text; str : out string; len : out natural) is --V87
- (file f : text; str : out string; len : out natural) is --V93
+ (file f : text; str : out string; len : out natural) is --!V87
begin
assert false report "must not be called" severity failure;
end untruncated_text_read;
procedure readline (variable f: in text; l: inout line) --V87
- procedure readline (file f: text; l: inout line) --V93
+ procedure readline (file f: text; l: inout line) --!V87
is
variable len, nlen, posn : natural;
variable nl, old_l : line;
@@ -649,7 +649,7 @@ package body textio is
for i in l'range loop
case l(i) is
when ' '
- | NBSP --V93
+ | NBSP --!V87
| HT =>
null;
when '1' =>
@@ -708,7 +708,7 @@ package body textio is
for i in l'range loop
case l(i) is
when ' '
- | NBSP --V93
+ | NBSP --!V87
| HT =>
case state is
when leading =>
@@ -861,7 +861,7 @@ package body textio is
when leading =>
case l(i) is
when ' '
- | NBSP --V93
+ | NBSP --!V87
| ht =>
null;
when '+' =>
@@ -985,7 +985,7 @@ package body textio is
when leading =>
case l(i) is
when ' '
- | NBSP --V93
+ | NBSP --!V87
| ht =>
null;
when '+' =>
@@ -1172,7 +1172,7 @@ package body textio is
for i in l'range loop
case l (i) is
when ' '
- | NBSP --V93
+ | NBSP --!V87
| HT =>
case state is
when leading | unit_blank =>
@@ -1313,7 +1313,7 @@ package body textio is
for i in l'range loop
case l (i) is
when ' '
- | NBSP --V93
+ | NBSP --!V87
| HT =>
if has_digits then
exit;