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
Cary R
92e4ca3a92
Report that vpi_handle_by_index() is not supported for a vpiNet
2013-12-12 17:10:26 -08:00
Martin Whitaker
9e25884f12
Fix for br942 - allow function declaration in VHDL architecture.
2013-12-11 23:00:58 +00:00
Stephen Williams
819770a6c4
Handle enumerations as packed struct/union members.
...
There were also some subtleties related to using enumerations
from typedefs and using them in multiple places. Fix various
bugs related to those issues.
2013-12-07 12:20:28 -08:00
Stephen Williams
7669a42cfb
Handle some assertion syntax in the parser.
...
Implement some yacc rules for assertion syntax.
Add the -gassertions/-gno-assertions command-line flags to
enable or disable assertions.
2013-12-07 12:20:28 -08:00
Stephen Williams
0495d75fcb
More relaxed handling of types of packed struct members as l-values.
2013-12-07 12:20:28 -08:00
Stephen Williams
0d6c15e45a
Handle packed unions properly during elaboration.
...
This also gets r-value use of packed unions correct.
2013-12-07 12:20:28 -08:00
Stephen Williams
49756a8e7a
Unions through pform.
2013-12-07 12:20:28 -08:00
Stephen Williams
0b4056817a
Generalize struct member type
2013-12-07 12:20:28 -08:00
Stephen Williams
aced587461
Macros with formal arguments can have default text for those arguments.
2013-12-07 12:20:28 -08:00
Cary R
077bd5b7ef
Do not return a handle to a port when searching by name
...
The standard explicitly states that only object with a full name
can be searched for by name. A port does not have a full name and
hence should be skipped so that a different object (the signal,
etc.) can be returned. This patch adds code to skip ports when
searching for an object handle by name.
2013-12-06 18:28:02 -08:00
Cary R
bf9781e8fd
In tgt-blif the code must be linked with the C++ compiler
2013-12-06 15:09:56 -08:00