Larry Doolittle
5dc1396eea
Spelling fixes
2015-04-13 11:35:12 -07:00
Martin Whitaker
e006f9e132
Fix vvp crash when a part select of a wire is passed to $monitor.
...
When the PV expression is compiled, the parent net may not yet be
resolved, so we may not be able to get its VPI handle straight away.
2015-03-17 21:14:30 +00:00
Cary R
feb710a186
Add support for any width 2-state darray objects
2015-02-27 11:43:25 -08:00
Cary R
62abb199d7
Add support for 4-state dynamic arrays
2015-02-26 17:56:49 -08:00
Cary R
ae629f8c41
Add ability to put a string value to a SV string (from plusargs)
2015-02-25 19:20:50 -08:00
Cary R
47688d234b
Assert if an unsupported dynamic array type is given.
2015-01-16 18:54:43 -08:00
Cary R
09439c55ab
Add new object to the vpi_get_str(vpiType, handle) code.
2015-01-14 19:08:00 -08:00
Maciej Suminski
961d6a8f3b
vpi: $left and $right functions for arrays and strings.
2015-01-12 11:08:31 +01:00
Cary R
4a41a53b42
For valgrind clean up the class definitions at the end.
2015-01-10 16:18:59 -08:00
Martin Whitaker
a1630e1d30
Fix for br968.
...
__vpiVThrVec4Stack::vpi_get_value_int_ was always treating the thread variable
as unsigned, rather than observing the value of __vpiVThrVec4Stack::signed_flag_.
Not sure why this was done - none of the regression tests broke when I changed
this.
2015-01-10 17:24:50 +00:00
Cary R
e61ed48914
Clean up vals_words when a dynamic array is accessed using the vpi
2015-01-09 17:38:39 -08:00
Cary R
d29a6d134f
Fix valgrind cleanup of dynamic and queue arrays
2015-01-09 15:05:48 -08:00
Cary R
6310b47538
Fix a memory leak when searching for an element by name
2015-01-08 16:14:20 -08:00
Stephen Williams
96d181efed
Support vpiStrengthVal for vec4 stack objects.
2014-12-23 14:42:45 -08:00
Cary R
3ccc59eaa3
Fix compile with valgrind hooks after vec4-stack changes
2014-12-12 14:28:07 -08:00
Martin Whitaker
0282b8450c
Fix potential memory leak when a thread is disabled.
...
A disable statement can terminate a thread whilst it still has
local variables on the stack (e.g. the loop counter for a repeat
statement). We need to clear the thread stacks when this happens.
2014-12-11 20:10:17 +00:00
Cary R
48b0fed29e
Use uint64_t casting of constants since UL does not work on 32-bit machines
...
Using a UL constant in a unit64_t context does not work on a 32-bit
machine since UL is 32-bits. Instead create uint64_t constants using
static casts and the appropriate bit operators.
2014-12-10 14:41:18 -08:00
Cary R
edf112b900
Update all the vvp examples to work correctly
2014-12-08 20:55:19 -08:00
Cary R
c28188618b
File example vvp code so make check passes.
2014-12-08 10:43:46 -08:00
Martin Whitaker
0d7daf5862
Fix vvp memory leak for user function calls in a continuous assignment.
2014-12-07 13:47:50 +00:00
Stephen Williams
105521b547
Merge branch 'master' into vec4-stack
2014-12-06 08:24:46 -08:00
Cary R
fd3086f0a9
Fix compile warnings on RHEL5
2014-12-05 19:03:07 -08:00
Cary R
d62a307c34
Fix 32-bit issue in vector4_to_value()
2014-12-05 18:00:08 -08:00
Stephen Williams
409f8c5823
Add the vec4 %subi instruction
2014-12-05 09:45:29 -08:00
Stephen Williams
03198356a5
vec4-stack stack manipulation improvements.
2014-12-04 17:15:27 -08:00
Stephen Williams
b1d2393789
Optimize the %sub instruction by integrating it with vvp_vector4_t class
2014-12-04 17:01:16 -08:00
Stephen Williams
0f740289e9
Optimize %mul instructions by integrating with vvp_vector4_t class.
2014-12-04 16:00:57 -08:00
Stephen Williams
46ce236cfb
Optimize the %add and %addi instructions
...
Tightly integrate with the vvp_vector4_t class to get much
better add performance.
2014-12-04 12:38:08 -08:00
Stephen Williams
86139c855d
Optimize the vec4-stack %cmp/s and %cmpi/s instructions.
...
Magnitude compare is called a LOT, so it is worth putting some
special effort into it.
2014-12-04 10:42:48 -08:00
Stephen Williams
eb070b061b
Optimize the vec4_to_index, which implements %ix/vec4 instructions.
2014-12-03 17:53:45 -08:00
Stephen Williams
2b1393e7b9
Reduce some vector copies in %load/vec4 and %concat/vec4 instructions.
...
By clever stack manipulations, we can eliminate some vector copies,
which can improve performance.
2014-12-03 13:12:06 -08:00
Stephen Williams
85c7b07a9b
Implement %cmp/ne and %cmpi/ne
...
These pull in the inversion of the output flags so that they more
efficiently implement != and !==, without %flag_inv instructions.
2014-12-03 11:06:11 -08:00
Stephen Williams
a57e0a1e3f
vvp implementation of copy from vec4 to vec2 can use subarray method.
2014-12-02 14:52:37 -08:00
Stephen Williams
b83144c552
The __vpiArray::set_word method should take a reference.
...
Seem to have missed a case where a vvp_vector4_t can be passed by
const reference instead of by value.
2014-12-02 13:02:46 -08:00
Stephen Williams
58fb80aec4
Implement and put to use the %muli instruction.
2014-12-02 12:46:17 -08:00
Stephen Williams
38f277d81b
Merge branch 'master' into vec4-stack
...
Conflicts:
vvp/array.cc
vvp/vthread.cc
2014-12-02 11:21:58 -08:00
Maciej Suminski
1834d470cb
vvp: Refactored __vpiArrayVthrA & __vpiArrayVthrAPV.
2014-11-28 14:14:42 +01:00
Maciej Suminski
9bc463aac0
vvp: Moved array_word_change(), array_attach_word(), array_alias_word() to __vpiArray.
2014-11-28 14:14:42 +01:00
Maciej Suminski
7c77097f71
vvp: array_[set/get]_word changed to __vpiArray::[set/get]_word.
2014-11-28 14:14:42 +01:00
Maciej Suminski
cc4c5f4998
vvp: Changed get_array_word_size(vvp_array_t) to __vpiArray::get_word_size().
2014-11-28 14:14:42 +01:00
Maciej Suminski
230c435ae7
vvp: Added missing functions for __vpiDarray.
2014-11-28 14:14:42 +01:00
Maciej Suminski
4ddef32631
vvp: __vpiArray::get_word_value handles StrVal variants.
2014-11-28 14:14:42 +01:00
Maciej Suminski
a236c274f3
vvp: Minor changes.
2014-11-28 14:14:42 +01:00
Maciej Suminski
21a8cb71ee
vvp: Handles for dynamic array ranges.
2014-11-28 14:14:42 +01:00
Maciej Suminski
b4ccaa1b0c
vvp: Fixed iterators for dynamic arrays.
2014-11-28 14:14:42 +01:00
Maciej Suminski
ca2ef5c956
vvp: Cleaning.
2014-11-28 14:14:39 +01:00
Maciej Suminski
6015aceda2
vvp: vpiArrayIterator::vpi_index core moved to vpiArrayBase::get_iter_index.
2014-11-28 14:14:37 +01:00
Maciej Suminski
9538501b54
vvp: Moved __vpiArrayBase::vpi_iterate to __vpiArayBase::vpi_array_base_iterate.
2014-11-28 14:12:49 +01:00
Maciej Suminski
ea7fa24f9e
vvp: Further extraction of common code pieces from ArrayBase.
2014-11-28 14:12:46 +01:00
Maciej Suminski
48d3701c02
vvp: get_word_index() & get_word_parent() moved to __vpiArrayWord.
2014-11-28 14:12:43 +01:00