On 10/13/2014 10:29 PM, Daniel Kho wrote: > Hi Martin, > Thanks for this. One thing that has been bothering me quite often > these days is that integers, booleans, bits (and possibly other types > from the std.standard package) do not have the concept of resolution. > > While I support the idea of having a completely-unconstrained > universal_integer type, I still would like to have the ability to > assign an "invalid" or "undriven" value to an integer. Like this: > > signal i: integer; > ... > begin > i <= NaN; > > where NaN is an invalid value for an integer. I find myself needing > the ability to assign integers to an invalid / undriven state, during > initialisation/reset for example, or when I would want to have a > driver explicitly "release" the bus, while have another driver drive it. > A "NaN" is a very specific value for a floating point number. An exponent of all "1" (which means infinity) and a fraction which starts with a "1". Since all of the bits in an integer are valid, I don't know how you would do an invalid number. You can't just pick one because somebody will need to use it. > In the past, I tried writing resolution functions for integers to do > exactly this, but found my solution inadequate as I need to reserve a > valid integer, e.g. x"ffff_ffff" to act as my invalid/undriven > integer. I find that when writing such resolution functions, I do need > checks against an undriven state. For std_logic, we already have the > function "is_x" (and I also have my own "is_01") which we could use > when resolving std_ulogic type signals. But for integer and boolean > types, I can't think of a way to do the same thing as an "is_x" > function would for std_logic. My dirty hack was just to reserve a very > large integer to act as my invalid value. > > My opinion is that it would be great if we can do similar things with > integers, booleans, and bits. It is often easier to design using these > datatypes than with std_logic(_vector). > > What do you think? > > Best regards, > Daniel > > On 10 October 2014 19:07, Martin.J Thompson <Martin.J.Thompson@trw.com > <mailto:Martin.J.Thompson@trw.com>> wrote: > > Hi all, > > > After the discussions in the last telecon, I have updated the > Arbitrary Integers page: > > http://www.eda-twiki.org/cgi-bin/view.cgi/P1076/ArbitraryIntegers > > In summary, the proposal is to > > ·Expose universal_integer as a completely unconstrained integer > type, (and possibly make INTEGER a constrained subtype of this. > Each tool will constrain the INTEGER to the range it currently > provides for backwards compatibility.) > > ·Create universal_integer’high and ‘low > > ·Allow logical and shift operations on universal_integers > > ·Question: should conversions between UNIVERSAL_INTEGER and > INTEGER be implicit or explicit? > > Any comments you have will be gratefully received as always :) > > Thanks, > > Martin > > > -- > This message has been scanned for viruses and > dangerous content by *MailScanner* <http://www.mailscanner.info/>, > and is > believed to be clean. > > > > -- > This message has been scanned for viruses and > dangerous content by *MailScanner* <http://www.mailscanner.info/>, and is > believed to be clean. > > No virus found in this message. > Checked by AVG - www.avg.com <http://www.avg.com> > Version: 2014.0.4765 / Virus Database: 4040/8384 - Release Date: 10/13/14 > -- This message has been scanned for viruses and dangerous content by MailScanner, and is believed to be clean.Received on Tue Oct 14 04:46:10 2014
This archive was generated by hypermail 2.1.8 : Tue Oct 14 2014 - 04:47:08 PDT