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
a8d43fa743
vvp: Stop simulation in case of errors in $ivl_string_method$to_vec.
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
Maciej Suminski
c1164dcc33
vvp: Initial work on support for dynamic arrays in VPI.
...
Added array_common.[ch] to store shared code.
2014-11-28 14:12:37 +01:00
Maciej Suminski
1166cd932a
vpi: Handle new formats in vpi_get_value() for unpacked arrays.
...
It is possible to use vpiIntVal, vpiVectorVal, vpiRealVal,
vpiStringVal and vpiObjTypeVal to retrieve data from unpacked
array cells.
2014-11-27 17:36:23 +01:00
Maciej Suminski
c3a318f14e
ivl: Casting vectors to strings.
2014-11-27 17:36:23 +01:00
Maciej Suminski
b2deae7ba9
ivl: More meaningful errors messages. Minor code formatting.
2014-11-27 17:36:23 +01:00
Maciej Suminski
675dd91403
ivl: Added sign checking & casting between integers of different size.
2014-11-27 17:36:23 +01:00
Maciej Suminski
b12e00d875
ivl: String to vector casting.
2014-11-27 17:36:23 +01:00
Maciej Suminski
103828577b
ivl: Fixed indentations.
2014-11-27 17:36:23 +01:00
Maciej Suminski
21c8b8ca5a
vpi: Added $ivl_string_method$to_vec for strings to vectors conversion.
2014-11-27 17:36:23 +01:00
Maciej Suminski
25c588252f
ivl: Added vpiSysFuncVoid to the system function types.
2014-11-27 17:36:23 +01:00
Maciej Suminski
89d1125979
ivl: Bit selection using variables in strings.
2014-11-27 17:36:23 +01:00
Maciej Suminski
43c6a0bacd
ivl: Casting to int.
2014-11-27 17:36:23 +01:00
Maciej Suminski
610ca95cbe
ivl: Allow to initialize variables with other variables (since Verilog-2001).
2014-11-27 17:36:23 +01:00
Maciej Suminski
daa59a95ad
ivl: Parsing rules for type casting.
2014-11-27 17:36:23 +01:00
Maciej Suminski
13f861a963
ivl: Added PECastType to handle type casting.
2014-11-27 17:36:23 +01:00
Cary R
ac2e8dd6cd
Report that packed arrays can not currently be elaborated in all cases
2014-11-24 19:11:08 -08:00
Cary R
cd992b4d5a
Add file/line information for parray data type.
2014-11-24 18:37:40 -08:00
Martin Whitaker
754899c99e
Make asynchronous case statement synthesis more robust.
...
Added various error/warning messages for behaviour not supported
in synthesis. Also give correct behaviour when multiple case item
expressions evaluate to the same constant value.
2014-11-09 20:20:03 +00:00
Cary R
4e94b81a4b
On a 32 bit system you can print a 32 bit value as a long (verinum)
2014-11-05 14:43:58 -08:00
Cary R
6948c27c2d
Enumerations are compatible if their type definitions match.
2014-11-04 15:05:49 -08:00
Cary R
2e9c4cde55
More refined check for enumeration width and constant width
2014-11-04 12:10:38 -08:00
Cary R
2e8c4e3dbc
Basic patch from github #44
2014-11-04 11:39:01 -08:00
Cary R
cc9fcfd13d
Only a literal constant size has to match the enumeration width.
2014-11-03 19:46:10 -08:00
Cary R
4660e0bf2f
Another tweak to the enumeration elaboration code
2014-11-02 20:26:36 -08:00
Cary R
1e7509a021
Update enumeration elaboration checks
2014-11-02 11:45:19 -08:00
Martin Whitaker
c2e53f0d63
Fix for br963 - vvp qpop instructions need to call thr_check_addr.
2014-11-02 15:36:52 +00:00
Martin Whitaker
f171161822
Fix for br962 - pop from dynamic array is not padded to correct width.
...
When the expression width is greater than the dynamic array width,
we need to generate code to pad the popped value to the correct
width.
2014-11-02 15:26:15 +00:00
Martin Whitaker
0237297e93
Added pruning of case statement expressions.
...
When unsized literals are used in case item expressions, it is likely
that the calculated expression width will be larger than necessary to
unambiguously select the correct case item (particularly when using
"strict" expression elaboration). This patch adds an optimisation
step that prunes the expressions to the minimum necessary width.
2014-11-02 13:02:57 +00:00
Martin Whitaker
e38b5d9fb7
Eliminate unnecessary rerun of test_width in case statement elaboration.
...
Also fix a typo in a comment.
2014-11-02 13:02:57 +00:00
Cary R
9a471bd81c
Don't crash if there are problems elaborating an enumeration.
2014-10-31 20:08:05 -07:00
Cary R
632e15a55c
Catch enumerations with the same name.
2014-10-31 20:06:28 -07:00
Cary R
d4313dad75
Merge branch 'master' of github.com:steveicarus/iverilog
2014-10-31 18:09:29 -07:00
Cary R
c25538d750
Pass the integer type for enumerations to the IVL target stage
2014-10-31 18:09:19 -07:00
Martin Whitaker
871d447ff7
Reinstate error recovery for range expressions.
...
If an error is found whilst elaborating a range expression in a signal
declaration, create a dummy range and continue elaboration. This stops
the compiler reporting an error every time that signal is referenced.
2014-10-31 21:42:23 +00:00
Martin Whitaker
b286b76134
Fix null pointer dereference in pform debug output.
2014-10-31 18:40:51 +00:00
Cary R
4f62a0d1f2
Check enum trimmed bits for values with undefined bits
...
If an enumeration constant has undefined bits then we need to verify that
the bits that are trimmed match the MSB of the remaining bits.
2014-10-30 19:54:38 -07:00