Previously you couldn't use list syntax in a generator if plain
signal syntax was used for the corresponding signal in another
generator. Now list syntax gets priority if used in some generator.
In the converted output, list (memory) syntax will be used for
such signals.
Everything that worked before should continue to work unchanged.
However, cryptic "List contains Signals that are not unique to it"
should be gone.
This should make it much easier and intuitive to use lists of
signals.
The idea is that decorators should always be used to describe
behavior in hardware modules. This required a major adaptation
of the tests in test/conversion/toVerilog.
The code was quite complicated for doubtful relevance. Signals
should never be defined inside generators, as their purpose
is communication between generators.
Added example of intbv.signed() with slice.
Moved index entries for intbv.min, .max, and ._nrbits up to the bit
slicing section.
Reworded the intbv.signed() description
The added Makefile will compile myhdl_vpi.so properly for Cver on a
x86_64 architecture. Cver is compiled as a 32-bit application on x86_64
architecture and the current makefile.lnx will compile the PLI
application as 64-bit library, which does not work together with Cver.
When using the index of the documentation I was missing a link for the
enum() usage. There is an entry for the enum() function that links to
the "Miscellaneous modelling support functions" section, but there is a
much better explanation of the enum() function in the "Finite State Machine
modeling" chapter. This changeset adds an index entry for enum() to this
chapter.
The copy of the initial value of a signal, recently introduced,
created a new enum item object that didn't compare as expected
anymore. The fix is to introduce the special copy methods.
The intbv class got a signed() member function added. The function will
classify the value of an intbv instance as unsigned or signed based on
the min/max settings. If a value is classified as unsigned, the bit
pattern is interpreted as a 2's-complement value and returned. If the
value is classified as signed, the value will be returned as is. The
signed() function will return the value as integer.
Added test cases verify the proper function of the signed() function.