Stephen Williams
a0b1272a62
Fix signed/unsigned warnings
...
Fixed some signed/unsigned warnings, including one that caused an
actual runtime error if not dealt with safely.
Signed-off-by: Stephen Williams <steve@icarus.com>
2007-10-09 21:19:38 -07:00
Stephen Williams
ae16eacec9
Argument to $unsigned is self-determined.
...
The argument to $unsigned is self-determined no matter what the
context the $unsigned itself is in. This is important only where
the result can be negative but the result width is context-determined.
Do ocntext fitting manually to prevent the context fitting it and
affecting the expression argument.
Signed-off-by: Stephen Williams <steve@icarus.com>
2007-10-09 20:46:17 -07:00
Stephen Williams
c7edace243
Unsized integers have minimum size
...
Fix the handling of expressions that have unsized integers and are
in self determined context. Unsized integers are generally assumed
to have at least 32bits.
Signed-off-by: Stephen Williams <steve@icarus.com>
2007-10-08 19:58:49 -07:00
Stephen Williams
d587499276
test_width method for functions in expressions
...
In expressions, user defined functions have a clearly defined
width and the test_width expression needs to express that. Note
that the $signed/$unsigned functions are special and magical.
Signed-off-by: Stephen Williams <steve@icarus.com>
2007-10-01 20:38:20 -07:00
Stephen Williams
3b94c122b7
Constant concat operands are self determined
...
distinguish between self-determined and value-preserving when
evaluating constants that are arguments to concatenations.
Signed-off-by: Stephen Williams <steve@icarus.com>
2007-08-09 22:08:54 -07:00
Martin Whitaker
42fe46a7db
Elaborate memory references with non-zero bases.
...
This fixes r-value type references to memory words for memories
that have a non-zero base address. Elaborate the expression
needed to get the canonical word index.
2007-07-21 17:19:24 -07:00
Stephen Williams
6b0c62c9c4
Minor improvements to $bits implementation
...
Signed-off-by: Stephen Williams <steve@icarus.com>
2007-07-17 18:05:48 -07:00
Larry Doolittle
371c5d932d
Correct wrong or misleading comments.
2007-07-06 12:46:32 -07:00
Stephen Williams
a72977a7ed
Bit select of array word
...
fix support for bit select of array word in behavioral expressions.
2007-07-03 20:17:43 -07:00
Stephen Williams
d7c3a32b06
Fix code generation for real expressions
...
Real value are vector width of 1, fix real literal to reflect this.
fix leaking real registers in code generation for function arguments.
Load of signal should handle conversion from real to vector. Function
arguments, type vector passed a real value, are an example where this
comes up.
Signed-off-by: Stephen Williams <steve@icarus.com>
2007-06-29 21:10:37 -07:00
Stephen Williams
845e74c30e
Evaluate parameter expressions losslessly
...
Make sure parameter expressions are evaluated losslessly, as if
the l-value is unsigned and thus virtually infinite.
2007-06-27 22:05:36 -07:00
Stephen Williams
59a43ab2ce
Do not match scopes in ident expressions
...
Identifiers in expressions cannot be scope names, even
though the special case of a simple system task argument
expression allows it.
2007-06-25 20:33:40 -07:00
Stephen Williams
9d2dd782c0
Get offsets right for non-zero and reversed part selects.
...
Signed-off-by: Stephen Williams <steve@icarus.com>
2007-06-15 16:59:24 -07:00
steve
c7d97f4146
Properly evaluate scope path expressions.
2007-06-02 03:42:12 +00:00
steve
ddd36ecb6c
Rework the heirarchical identifier parse syntax and pform
...
to handle more general combinations of heirarch and bit selects.
2007-05-24 04:07:11 +00:00
steve
0168502bbb
Get offsets into indexed part selects correct.
2007-04-01 05:28:26 +00:00
steve
9e21880cdc
Handle part select of array words.
2007-03-26 19:23:13 +00:00
steve
32fb919b00
Replace some asserts with ivl_asserts.
2007-03-14 05:06:49 +00:00
steve
ae88f5cc68
Lint fixes.
2007-03-07 00:38:15 +00:00
steve
760f2182ba
Support signed function return values.
2007-03-06 05:22:49 +00:00
steve
b21390b228
Better error message when operating on array.
2007-03-02 01:55:36 +00:00
steve
ca9da51a79
Precalculate constant power expressions, and constant function arguments.
2007-01-19 05:42:40 +00:00
steve
91d84e7dc7
Major rework of array handling. Memories are replaced with the
...
more general concept of arrays. The NetMemory and NetEMemory
classes are removed from the ivl core program, and the IVL_LPM_RAM
lpm type is removed from the ivl_target API.
2007-01-16 05:44:14 +00:00
steve
34b5a31ff4
Add test_width methods for PETernary and PEString.
2006-11-10 04:54:26 +00:00
steve
c339dc4bbc
Remove last bits of relax_width methods, and use test_width
...
to calculate the width of an r-value expression that may
contain unsized numbers.
2006-11-04 06:19:24 +00:00
steve
2302693201
Expression widths with unsized literals are pseudo-infinite width.
2006-10-30 05:44:49 +00:00
steve
2a8b960b06
More detailed internal error message.
2006-10-15 03:25:57 +00:00
steve
69cd007a71
Support real valued specify delays, properly scaled.
2006-10-03 05:06:00 +00:00
steve
d6be82f748
Support selective control of specify and xtypes features.
2006-09-28 04:35:18 +00:00
steve
7e3ea2ffe8
Allow specparams as constants in expressions.
2006-09-28 00:29:49 +00:00
steve
92cb1d4e2d
Use elab_and_eval for bit select expressions.
2006-09-19 23:00:15 +00:00
steve
50800fd3a1
Add support for real valued modulus.
2006-08-09 05:19:08 +00:00
steve
49b65e86fe
Add support for power in constant expressions.
2006-07-31 03:50:17 +00:00
steve
aab6fefd8a
Fix context determined with of constants.
2006-07-07 04:06:37 +00:00
steve
71faebd6df
Make elaborate_expr methods aware of the width that the context
...
requires of it. In the process, fix sizing of the width of unary
minus is context determined sizes.
2006-06-02 04:48:49 +00:00
steve
53ae1f29c9
Fix broken subtraction of small constants.
2006-06-01 03:54:51 +00:00
steve
fc5cf55400
Use elab_and_eval to evaluate genvar expressions.
2006-04-12 05:05:03 +00:00
steve
d434dd7296
Allow part selects of memory words in l-values.
2006-02-02 02:43:57 +00:00
steve
908955c72c
Handle bit select of parameter with ranges.
2005-11-27 05:56:20 +00:00
steve
b416ae047b
Fix compile warning.
2005-11-14 22:11:52 +00:00
steve
c02b3b8ac6
Reorganize signal part select handling, and add support for
...
indexed part selects.
Expand expression constant propagation to eliminate extra
sums in certain cases.
2005-11-10 13:28:11 +00:00
steve
a652719876
Add support for indexed select attached to parameters.
2005-10-04 04:09:25 +00:00
steve
be73be8c98
Spelling patches from Larry.
2005-09-19 21:45:35 +00:00
steve
9fd16575d9
Support bool expressions and compares handle them optimally.
2005-09-14 02:53:13 +00:00
steve
4902c222fb
Check operand types for compatibility.
2005-09-01 04:10:47 +00:00
steve
b9799cf6ec
Remove NetVariable and ivl_variable_t structures.
2005-07-11 16:56:50 +00:00
steve
dfb7c7ba6f
Remove the NetEBitSel and combine all bit/part select
...
behavior into the NetESelect node and IVL_EX_SELECT
ivl_target expression type.
2005-01-24 05:28:30 +00:00
steve
65e9b6be12
Rework of internals to carry vectors through nexus instead
...
of single bits. Make the ivl, tgt-vvp and vvp initial changes
down this path.
2004-12-11 02:31:25 +00:00
steve
e4ae832153
Clean up spurious trailing white space.
2004-10-04 01:10:51 +00:00
steve
7f67afe9d5
Add support for $unsigned.
2004-08-28 15:42:11 +00:00