diff options
author | Tristan Gingold <tgingold@free.fr> | 2014-12-21 21:34:48 +0100 |
---|---|---|
committer | Tristan Gingold <tgingold@free.fr> | 2014-12-21 21:34:48 +0100 |
commit | 4c3181e8d52b654b9ca1112b272f53803c7f5dc1 (patch) | |
tree | ba92f927e5b20cd3d0f70c83d7fc45bbcf73ea6b | |
parent | cc8c7684219e99a4cea75ff4c7757de27b78c572 (diff) | |
download | ghdl-4c3181e8d52b654b9ca1112b272f53803c7f5dc1.tar.gz ghdl-4c3181e8d52b654b9ca1112b272f53803c7f5dc1.tar.bz2 ghdl-4c3181e8d52b654b9ca1112b272f53803c7f5dc1.zip |
Backport from ghdl 0.32: update libraries and ghdlfilter.
From Brian Davis.
-rw-r--r-- | dist/mcode/windows/complib.bat | 93 | ||||
-rw-r--r-- | dist/mcode/windows/ghdlfilter.adb | 65 | ||||
-rw-r--r-- | libraries/Makefile.inc | 10 | ||||
-rw-r--r-- | libraries/ieee/numeric_bit-body.vhdl | 12 | ||||
-rw-r--r-- | libraries/ieee/numeric_bit.vhdl | 20 | ||||
-rw-r--r-- | libraries/ieee/numeric_std-body.vhdl | 12 | ||||
-rw-r--r-- | libraries/ieee/numeric_std.vhdl | 20 | ||||
-rw-r--r-- | libraries/ieee/std_logic_1164.vhdl | 6 | ||||
-rw-r--r-- | libraries/ieee/std_logic_1164_body.vhdl | 8 | ||||
-rw-r--r-- | libraries/std/textio.vhdl | 8 | ||||
-rw-r--r-- | libraries/std/textio_body.vhdl | 28 |
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; |