Stephen Williams
0121fbc88c
Remove useless assert.
2014-01-21 11:05:32 -08:00
Stephen Williams
f1855eed0e
Fix system function call in net types to get proper vector width.
...
This means using some of the new vec4 infrastructure to get at the
data, instead of using the old thread bit pointers. In the process,
remove the vbit and vwid members that pointed to thread bits. Those
bits no longer exist.
2014-01-20 19:07:11 -08:00
Stephen Williams
0f9828f179
Fix vec4 overflow of times when they are >32bits.
2014-01-19 14:28:39 -08:00
Stephen Williams
d2c2d6d8dc
vec4 versions of %cassign/vec4/off and %force/vec4/off send flags[4].
2014-01-18 17:08:36 -08:00
Stephen Williams
f94a655121
Yet again, try to fix vec4 calculation of n-dimensional array index.
2014-01-18 16:04:25 -08:00
Stephen Williams
078a3fd409
Was a little too aggressive with the lossless elab_and_eval
...
The index expressions ARE self-sized context, we just need to
force the EXPAND flag to make this work.
2014-01-17 18:22:11 -08:00
Stephen Williams
dfaed128c0
Fix %store/vec4 overlap of vectors written with extreme indices.
2014-01-15 16:30:34 -08:00
Stephen Williams
1fc4093191
Fix possible overflow in calculation of canonical indices.
2014-01-15 14:26:53 -08:00
Stephen Williams
ae1f8be277
Wrap up vpi access to vec4 stack items.
2014-01-14 17:10:03 -08:00
Stephen Williams
d8533104b0
Cleanup vec4 handling of suppressed store/assign due to bad offset/index math.
2014-01-14 12:00:39 -08:00
Stephen Williams
c6c697bdb7
WRap up vec4 support for system function calls.
2014-01-14 09:22:23 -08:00
Stephen Williams
660d59a7a9
vec4 versions of the %force instructions.
2014-01-13 18:57:03 -08:00
Stephen Williams
92a5e6a698
vec4 based calls to simple real system functions.
2014-01-13 17:46:39 -08:00
Stephen Williams
aaa054a932
Fix botched implementations of vec4 based shift.
2014-01-13 17:46:14 -08:00
Stephen Williams
079065ea73
Remove some dead code in tgt-vvp.
2014-01-13 17:45:44 -08:00
Stephen Williams
1905264061
vec4 support for part select of memory word to VPI function.
2014-01-13 16:12:56 -08:00
Stephen Williams
b0a9430e98
Wrap up vecc4 support for left/right shift expressions.
2014-01-13 16:11:47 -08:00
Stephen Williams
f906384423
Elaborate r-vlaue packed struct members pads as needed.
2014-01-11 19:19:15 -08:00
Stephen Williams
fc42f40770
Fix problem with enum types in re-used modules
...
When a module is instantiated multiple times, the enum
types contained within would cause trouble. This fixes
that by elaborating in proper scope context.
2014-01-11 19:19:15 -08:00
Stephen Williams
6ec31517a9
Implement $bits(type) to get the size of a type
...
In the process, I implemented a means to get at
previously elaborated types from the pform type
pointer.
2014-01-11 19:19:15 -08:00
Stephen Williams
8a4d769b3d
Type name expressions down to elaboration.
2014-01-11 19:19:15 -08:00
Stephen Williams
a3b29dd70b
Handle enumeration literals that are in $root.
2014-01-11 19:19:14 -08:00
Stephen Williams
b0491b9c54
Handle typedefs in $root scope.
2014-01-11 19:19:14 -08:00
Stephen Williams
6a93b6a7e4
Fix some subtle code generator bugs with wide literals and large r-values.
2014-01-07 18:46:35 -08:00
Stephen Williams
ec6009dd8f
Compile out the T<...> format in vvp.
...
This ifdef's the code out. Leave it in place for a little longer
for reference.
2014-01-06 20:36:26 -08:00
Stephen Williams
4820d46353
Implement some vpi_get_value formats for vec4 stack values.
2014-01-06 20:27:14 -08:00
Stephen Williams
a2845cee70
Update %pow instructions to use vec4 stack.
2014-01-06 10:34:07 -08:00
Stephen Williams
c897ca017c
Update %div instruction to vec4 version.
2014-01-06 10:14:49 -08:00
Stephen Williams
aee540d8bb
Fix sort of %event command in vvp compile list.
...
The sort is important, the names must be sorted because the table is
searched using binary search.
2014-01-06 09:12:42 -08:00
Stephen Williams
19402aeef2
get vpiStringVal from vec4 stack positions.
2014-01-06 08:35:49 -08:00
Stephen Williams
fcc0a6a203
vec4 string literal expressions
2014-01-06 08:35:23 -08:00
Clifford Wolf
2165905613
Merge branch 'master' of https://github.com/steveicarus/iverilog
2014-01-05 23:32:49 +01:00
Stephen Williams
e5eb754150
vec4 versions of a bunch of unary operators.
2014-01-05 14:12:27 -08:00
Martin Whitaker
d1c9dd554b
Fix for github issue #6 .
...
When creating a constant zero for implementing a unary minus operation
using a binary subtraction operator, the constant needs to be to exactly
the expression width.
2014-01-05 20:53:58 +00:00
Stephen Williams
063c6d6065
Add the %event instruction, remove %ix/get and %ix/get/s.
2014-01-05 12:39:52 -08:00
Stephen Williams
2fc8ce8a16
Implement vec4 basec %assign delay and event / vpiTimeVal for functions.
2014-01-05 12:04:16 -08:00
Stephen Williams
1a3adbe9cd
Vec4 store to memories.
...
This also reworks the working of the %store/vec4 instruction to
take a part offset, and eliminate the %store/vec4/off instruction.
2014-01-05 10:30:59 -08:00
Stephen Williams
63fa44fa4a
vec4 support for ufuncs and ligical AND.
2014-01-05 17:15:30 +00:00
Stephen Williams
f89dbd48c8
Add vec4 support for bitwise or/nor/nand/xor/xnor.
2014-01-04 23:48:16 +00:00
Stephen Williams
9fc3e84e93
vec4 cassign to part selects.
2014-01-04 22:58:58 +00:00
Stephen Williams
e708a5b59d
Handle vec4 part selects / vec4 cassign / repeat statements
...
These features need to be adapted to the vec4 stack.
2014-01-04 22:11:07 +00:00
Stephen Williams
d55e4c0552
Redesign support for system functions that return vec4
...
Redsign the handling of the return value, including a rework of
the %vpi_func syntax to carry the needed information.
Add a few more arithmetic operator instructions.
2014-01-04 22:06:58 +00:00
Clifford Wolf
ef06bf7589
Added missing support for binary ^~ in eval_tree.cc
2013-12-30 11:53:44 +01:00
Stephen Williams
54926840e6
Handle vec4 stack version of concatenation.
2013-12-28 07:50:37 +02:00
Stephen Williams
5ef077fdf6
Start work on converting vec4 expressions to use stack.
...
Instead of using a bit4 space to hold thread vectors, create a
vec4 stack--much like the real, string, and object stacks--to
hold intermediate values.
2013-12-27 17:04:42 +02:00
Cary R
336b29955d
vlog95: a zero width expression is special and is not a self determined context
2013-12-19 20:41:43 -08:00
Cary R
7fa2a4ccf3
vlog95: add support for emitting nested class L-values
2013-12-19 20:40:07 -08:00
Cary R
e4fc5806c4
vlog95: spelling fixes
2013-12-19 20:39:58 -08:00
Cary R
4def0110b5
Fix compile warning.
2013-12-19 09:22:16 -08:00
Cary R
503a1bf6d7
Add support for the array querying function in a constant context
...
This patchs adds support for the $dimensions() and $unpacked_dimensions()
array functions. Since the argument is only used to get the type information
these functions can always be evaluated at compile time.
For the following functions if the dimension argument is constant or omitted
and the first argument is not dynamic (a string or dynamic array) they will
return the specified information.
$left(), $right(), $high(), $low(), $increment() and $size()
Dynamic information and a variable second argument will be implement in a
future patch.
2013-12-18 19:04:22 -08:00