* A lot of new checks are added to WishboneCheckerE unit
trying to implement the rules of the Wishbone spec.
* An illegal use of the suffix implication instead of logical
implicationis fixed in WishboneMasterE unit
The new setIter() procedure replaces the setFirst/setLast procedures
by implementing both versions. A new datatype t_dict_iter is added which
serves as parameter type for the setFirst() procedure.
A new stack implementation is added. It's a protected type t_stack,
included in the StackP package. It has the same methods like the
t_queue types but implements a stack logic instead of a queue one.
The t_stack type is tested in the StackT testbench.
There is a new procedure merge() to merge the content of 2 diicts into
a third one. This procedure is defined outside of the t_dict protected
type.
Also a new get() function returning the data as std_logic_vector.
is added. It is needed to save the data in a unconstrained access type
which is used inside the merge() procedure. This get() function is
public. It can be used when no error return value is needed as you
get with the get() procedure. Instead an assertion is triggered when
the given key isn't found.
Three new methods to support iteration over the keys stored in the
dictionary:
* setFirst: set start of iterator to begin og dictionary
* setLast: set start of iterator to end of dictionary
* iter(dir): iterate over keys in dictionary in dir direction
The key pointer type t_dict_key_ptr is now moved to the public part
of the DictP package to support using in testbench code when saving the
keys with different lengths from iter() function.
Error return values are now of type t_dict_error with 3 possible values:
(NO_ERROR, KEY_INVALID, KEY_NOT_FOUND)
* one_hot(): returns true when slv is one hot coded
* is_unknown(): return true when slv contains bits with unknown value
* uint_to_slv(): converts natural to slv (unsigned)
* slv_to_uint(): converts slv to natural (unsigned)
WB_WRITE & WB_READ check that a write/read transfer is started on the
WishBone bus if requested on the local port of the WishBoneMasterE unit
at the adequate time.
The new checker monitor WishBoneBusMonitorP checks that address & data
on the WishBone bus are equal to the ones wihich were given at the local
port of the WishBoneMasterE unit to initiate the transfer.
The second logical implication was made the whole property holding
when the part after the 1st implication didn't hold. So, the 2nd
implication is replaced by an and in combination with the next
operator. Now the property fails when one of the two and'ed parts after
the implication fails.
New functions added:
* count_ones(): returns number of 1 in a given std_logic_vector
* xor_reduce(): returns the xor of all bits in a std_logic_vector
Functions even_parity() & odd_parity() now use the xor_reduce function
to calc the parity.
New testcases for checking correctness of removing and overwriting
entries in dictionary. Furthermore the hasKey() method is tested and
the clearing of the dictionary with the clear() method