Re: [vhdl-200x-ft] VHDL-2005 package changes for read and write

From: Jim Lewis <Jim@SynthWorks.com>
Date: Thu Nov 18 2004 - 07:48:39 PST

David,
I think at the meeting there was also a significant concern
about the overloading in std_logic_1164 and numeric_std, we
would be breaking old code that also overloaded these procedures.

I added a few suggestions below. I put -- in front of lines that I
replaced.

Regards,
Jim

> (This is the draft of a note we plan to put on "comp.lang.vhdl"
> please review)
>
> In the next update to VHDL we are planning several changes and
> additions to the standard packages.
>
-- > One of the things we are planning to do is to move all of
-- > the "read" and "write" procedures to where they are defined.

For the current packages, std_logic_1164, numeric_std, and
numeric_bit we plan to include the "read" and "write"
procedures in the package. This will also be done for any
new packages of types introduced in this revision.
Note, read and write procedures for standard types (bit,
bit_vector, integer, ...) will still be located in std.textio.

Std_logic_textio has been donated to the IEEE. All the read
and write functions that are proposed for std_logic_1164 are
intended to be backward compatible with this std_logic_textio.
As a result, we will be including a blank std_logic_textio
so that references to std_logic_textio will not cause issues.

-- > We have been donated "std_logic_textio", and plan to move all
-- > of the procedures from that package into "std_logic_1164".
-- > We will also provide a blank "std_logic_textio" so that
-- > the name space will be preserved. "numeric_std" will
-- > have "read" and "write" procedures added to it.

> This means that the following code:
>
> library ieee;
> use ieee.std_logic_1164.all;
> use ieee.std_logic_textio.all;
> entity
> ....
> architecture
> ...
> write (L, slv5);
>
> will still work because it will now find the "write" procedure
> in "std_logic_1164".
>
> HOWEVER, the following will no longer work:
>
> ieee.std_logic_textio.write (L, slv5);

It also means that if you have defined your own read and write
procedures for the types in std_logic_1164, numeric_std, or
numeric_bit that you will need to comment these procedures out
in the packages in which you have defined them.

Is this an issue for you and if so how big? Are you willing
to trade the modifications to your packages in exchange for
what we feel is a better package architecture for the future?

Alternately would it be better to keep the read and write for
std_logic_1164, numeric_std, and numeric_bit in separate packages
such as std_logic_textio, numeric_std_textio, and numeric_bit_textio?
Our concern with this approach for printing is that you need
twice the number of packages for printing. Consider that we
are also introducing packages for fixed point and floating
point in this revision and that they would need to be done
in a manner consistent with numeric_std and std_logic_1164.

-- > Is this an issue for people?
-- > If you have written your own "read" and "write" routines these
-- > will now cause a conflict with the ones in "std_logic_1164".
-- > Would keeping the packages seperate be better?
-- >

For details of the change proposal see:
    http://www.eda-twiki.org/vhdl-200x/vhdl-200x-ft
-- > Please take a look at:
-- > http://www.eda-twiki.org/vhdl-200x/vhdl-200x-ft

For proposed revisions to the package (and to try them out) see:
   http://www.eda-twiki.org/vhdl-200x/vhdl-200x-ft/packages/files.html
   Note any debug help with the new packages would be appreciated.

-- > for the 2005 updates page and
-- > http://www.eda-twiki.org/vhdl-200x/vhdl-200x-ft/packages/files.html
-- > for a preliminary copy of the new packages.
-- > (Yes, we can use help debugging this code if you are available)
Received on Thu Nov 18 07:48:41 2004

This archive was generated by hypermail 2.1.8 : Thu Nov 18 2004 - 07:48:45 PST