I failed to send this to the reflector... Karl
attached mail follows:
I believe that these functions *are* implicitly defined. From section 7.2.3 of LRM: "The shift operators sll, srl, sla, sra, rol, and ror are defined for any one-dimensional array type whose element type is either of the predefined types BIT or BOOLEAN" I am not sure that I understand your third paragraph. Which type unsigned are we trying to match the implementation of? Could you elaborate? Thanks Karl Jim Lewis wrote: > David, > >> In numeric_bit (SIGNED and UNSIGNED types using BIT_VECTOR logic) we >> have the following functions: >> >> -- Id: S.9 >> function "sll" (ARG : UNSIGNED; COUNT: INTEGER) return UNSIGNED; >> -- Id: S.10 >> function "sll" (ARG : SIGNED; COUNT: INTEGER) return SIGNED; >> -- Id: S.11 >> function "srl" (ARG : UNSIGNED; COUNT: INTEGER) return UNSIGNED; >> -- Id: S.12 >> function "srl" (ARG : SIGNED; COUNT: INTEGER) return SIGNED; >> -- Id: S.13 >> function "rol" (ARG : UNSIGNED; COUNT: INTEGER) return UNSIGNED; >> -- Id: S.14 >> function "rol" (ARG : SIGNED; COUNT: INTEGER) return SIGNED; >> -- Id: S.15 >> function "ror" (ARG : UNSIGNED; COUNT: INTEGER) return UNSIGNED; >> -- Id: S.16 >> function "ror" (ARG : SIGNED; COUNT: INTEGER) return SIGNED; >> >> These functions are in the original 1076.3 specification. According to >> our conversation in the telecon last night, they are implicit. Should >> I comment them out? > > The types signed and unsigned (although based on bit in numeric_bit) > are distinct types and require these functions to be implemented, > otherwise, > they are not defined. > > The only ones that are implicit are the ones that are of the form: > function "sll" (ARG : bit_vector; COUNT: INTEGER) return bit_vector; > > Further, my memory of the meeting is that we want to overload these in > numeric_bit_unsigned to make the implementation the same as for type > unsigned. Per FT1, it is ok to create an explicit overload that > replaces > an implicit overload. > > >> Also, we have >> -- Id: E.1 >> function RISING_EDGE (signal S: BIT) return BOOLEAN; >> -- Id: E.2 >> function FALLING_EDGE (signal S: BIT) return BOOLEAN; >> >> Since we have moved these functions into std.standard there will be >> a conflict if these are visible. I will comment them out. > > > Agree. > > > If anyone has a conflicting memory of the meeting please speak up. > > Cheers, > JimReceived on Tue Mar 1 10:19:17 2005
This archive was generated by hypermail 2.1.8 : Tue Mar 01 2005 - 10:19:21 PST