Function ARCTAN doesn't exist in ieee.math_real library that HDT refers to

A function ATAN however exists, but this is - to my understanding - not the correct name. It should be ARCTAN.

copyright issues

Hi Dirk,

The math_real package you see is a draft version. We cannot distribute the final version of this package due to IEEE's copyright requirements. We are working to resolve this issue by distributing a binary (compiled) version of the math_real package so that you can use the math_real package without any problems.

If you have a copy of the IEEE source files you can do the following as a workaround: You can remove the current IEEE library from your project's libraries and replace it with your own copy of those files. You can do this by going to Project > Properties > Libraries
More information is in the manual, chapter on VHDL Libraries.

Sorry for the inconvenience.

Vendor VHDL libraries

Is there a simple way to point to the vendor supplied VHDL libraries and have Hdt use those in stead of the Sigasi supplied ones. We use Altera devices, I tried replacing the std libraries as documented but then a lot of definitions are not found by Hdt. E.g. the conv_std_logic_vector() has gone missing.
Altera maybe pointed at here (they also have a different notion of vhdl packages), but we have not a lot to say about that ...
I believe such an option makes sense for the 'smaller' users who are less concerned about portability. A sort of Environment Variable would make live easy when we upgrade to the next version of the Quartus II software.

variable expansion

Hi Josy,

I'm not sure I understand your comment.

First, Altera Quartus does not support libraries (at least not last time I checked, which is two years ago). Everything goes into one big namespace.

I presume you replaced the IEEE libraries (not the STD?). If you want, I can take a look at it and see where your problems with conv_std_logic_vector come from. (Just email your project or at least your .libraries.xml file).

Finally, we do have something like the environment variable you refer to, but it is not document (yet) in our main documentation, because it is considered "advanced use". You can set these variables in Window > Preferences > VHDL > Libraries. Use them by inserting ${VARIABLENAME} in your library path. For now, you can only use this variable expansion by editing .libraries.xml manually.

Hope this helps

Philippe

conv_std_logic_vector

Hi Josy,

Thanks for sending us your project.
The problem is not with the using the vendor-provided (Altera) libraries, but with the function conv_std_logic_vector. This function is declared in the (deprecated) libraries ieee.std_logic_signed, ieee.std_logic_unsigned and ieee.std_logic_arith, which you have removed (or rather: commented out) from your files.

The problem with these libraries is that they were never standardized, and different vendors distribute different, incompatible versions of these libraries. You should probably use numeric_std and its to_unsigned or to_signed functions, perhaps with a cast: std_logic_vector(to_unsigned(1,3));

In your particular case, you can also use bit string literals: O"1"="001", O"2"="010", O"7"="111".

Kind regards

Philippe

Hi Philippe, interesting

Hi Philippe,

interesting ...
If you leave the deprecated libraries in, Hdt will issue warnings about those libraries. I do not like warnings because they clutter the output window. So I left those libraries out and used the std_logic_vector(to_unsigned()) construct like you suggested to get rid of the conv_std_logic_vector errors, but of course a few others pop up because e.g. std_logic_vector <= std_logic_vector + 1 ; do not longer work. But this is entirely due to my use of std_logic_vector types for internal counters and such. With some (rather a lot of) 'casting' the project compiles (and simulates!) fine. As I started off back in the 80-ties with PalAsm and Abel I stuck to AHDL and only recently (about one year and a half ago) switched to VHDL (which puts me in the 'newbie' class :))

Another thing/lesson learned today, thanks

Josy

Post new comment

The content of this field is kept private and will not be shown publicly.
  • Web page addresses and e-mail addresses turn into links automatically.
  • Allowed HTML tags: <a> <em> <strong> <cite> <code> <ul> <ol> <li> <dl> <dt> <dd> <h2> <h3> <pre>
  • Lines and paragraphs break automatically.
  • You can enable syntax highlighting of source code with the following tags: <code>, <blockcode>, <java>.
  • Images can be added to this post.

More information about formatting options