Jared Casper
b6ff4039b1
SystemVerilog 'N bit vectors.
...
Adds a is_single_ flag to the verinum class to indicate it came from a
'N bit vector and needs to be handled accordingly.
2011-03-28 14:08:14 -07:00
Martin Whitaker
312b4da46f
Expression width rework.
...
This patch is a major rework of expression elaboration and
evaluation in the compiler, aimed at better compliance with
the IEEE standard.
2011-03-01 18:13:26 -08:00
Cary R
bb5ca97f2d
Fix some -Wextra warnings and some other bug fixes/enhancements.
...
This patch covers more than it should. It removes many of the -Wextra
warnings in the main ivl directory. It also makes some minor code
improvements, adds support for constant logicals in eval_tree (&&/||),
adds support for correctly sign extending === and !==, it starts to
standardize the eval_tree debug messages and fixes a strength bug
in the target interface (found with -Wextra). The rest of the warnings
and eval_tree() rework will need to come as a second patch.
2010-11-02 11:05:11 -07:00
Cary R
768633e464
Add $clog2 function.
...
This patch adds the $clog2 system function. It also makes this
function work as a constant function. The runtime version still
needs to be updated to use an integer based version instead of
the current double based method. The double method suffers from
rounding errors.
2008-08-20 08:59:36 -07:00
Stephen Williams
db10de1a6a
Fix calculation of XOR when z is present
...
When calculating 0^z with constant arguments, make sure the result is
x. This problem only happens when the arguments are constants and the
expression is calculated at compile time.
2008-05-09 09:16:11 -07:00
Cary R
8c1cca423d
Check for a negative repeat value.
...
This patch adds checks for a negative repeat value and prints
an error message under this condition.
2008-03-26 18:12:38 -07:00
Stephen Williams
ea74eb771e
Fix a couple problems with signed multiply
...
Problems with signed expressions that are set to parameters and
that include multipliciation exposed a few bugs in the calculation
of signed multiply. Fix this and add some improved diagnostics.
2008-03-25 21:35:08 -07:00
Cary R
1ff31db2cc
Add real comparisons in continuous assignments.
...
This patch adds real comparisons in continuous assignments.
It also converts bit based constants to real values when needed
by the comparisons.
2008-01-15 19:48:26 -08:00
steve
6d91be5b19
Use inttypes.h instead of stdint.h for portability.
2007-02-02 04:33:00 +00:00
steve
fc0695beb6
Handle 64bit delay constants.
2006-08-08 05:11:37 +00:00
steve
49b65e86fe
Add support for power in constant expressions.
2006-07-31 03:50:17 +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
101b373293
Allow constant concat expressions.
2005-12-07 04:04:23 +00:00
steve
4ba195282d
gcc3/4 compile errors.
2005-06-14 19:13:43 +00:00
steve
38ec4b7851
Support unsigned divide of huge numbers.
2004-02-17 06:52:55 +00:00
steve
1c99c629b1
Support constant evaluation of binary ^ operator.
2003-10-26 04:54:56 +00:00
steve
bab0924d86
Make some effort to preserve bits while
...
operating on constant values.
2003-04-14 03:40:21 +00:00
steve
47060bfedd
Prevent overrun comparing verinums to zero.
2003-04-03 04:30:00 +00:00
steve
e941e7e805
Spelling fixes.
2003-01-30 16:23:07 +00:00
steve
8f4afd53a6
include config.h to get iosfwd flags.
2003-01-30 04:23:25 +00:00
steve
52bf4e613f
conditional ident string using autoconfig.
2002-08-12 01:34:58 +00:00
steve
3ad0ec77ce
Add verinum != operator.
2002-06-03 04:04:24 +00:00
steve
f5d0211864
In the context of range declarations, use elab_and_eval instead
...
of the less robust eval_const methods.
2001-02-10 20:29:39 +00:00
steve
7ef3b44ab1
support evaluation of constant < in expressions.
2001-02-09 05:44:23 +00:00
steve
94a1d59817
Support constant evaluation of / and % (PR#124)
2001-02-07 02:46:31 +00:00
steve
65020bc6de
Use the iosfwd header if available.
2001-01-16 02:44:17 +00:00
steve
b6a18098c7
Evaluate constant &, | and unary ~.
2001-01-02 03:23:40 +00:00
steve
084a464cf1
Support decimal constants in behavioral delays.
2000-12-10 22:01:35 +00:00
steve
fff759de20
multiply in parameter expressions.
2000-09-27 18:28:37 +00:00
steve
843af31958
Some compilers do not accept the not symbol.
2000-02-23 04:43:43 +00:00
steve
b734ecf02f
Macintosh compilers do not support ident.
2000-02-23 02:56:53 +00:00
steve
d6f53b2582
Initial support for signed constants.
2000-01-07 03:45:49 +00:00
steve
c688d95cb8
Put number constants into a static table.
1999-11-06 16:00:17 +00:00
steve
2c774bfe75
do the <= in bits, not numbers.
1999-10-22 23:57:53 +00:00
steve
19b8615363
Support evaluating + operator at compile time.
1999-10-10 23:29:37 +00:00
steve
c677afd8e3
More precise handling of verinum bit lengths.
1999-05-13 04:02:09 +00:00
steve
63a8b4abe2
Function to calculate wire initial value.
1998-12-20 02:05:41 +00:00
steve
d27f260bc1
Check net ranges in declarations.
1998-11-11 00:01:51 +00:00
steve
ebad845fc3
Add procedural while loops,
...
Parse procedural for loops,
Add procedural wait statements,
Add constant nodes,
Add XNOR logic gate,
Make vvm output look a bit prettier.
1998-11-09 18:55:33 +00:00
steve
3fb7a053be
Introduce verilog to CVS.
1998-11-03 23:28:49 +00:00