Cary R
e26b9e72a2
More array fixes and down indexed part selects can be a lval.
...
Here are some more array fixes. They are mostly better error messages
instead of just asserting and some code cleanup. The one new thing
that probably should have been a separate submission is that down
indexed part select [base -: width] can now be a lvalue.
2007-11-07 20:53:27 -08:00
Cary R
51293b6e91
Fix/enhance array part select code.
...
This patch fixes/enhances the array part select code. It also
verifies that any lval array index in a continuous assignment
is a constant value. Also, %set/av now uses index register 1 as
described in the documentation (as a bit offset).
2007-11-07 20:52:56 -08:00
Cary R
e39b3fea1f
Display a warning for a part select of an array.
...
It is illegal to perform a part select on an array. This patch
adds an error message instead of failing an assert.
2007-11-07 20:28:46 -08:00
Stephen Williams
27b704b054
Regularize padding of signed constants
...
Factor common code for processing signed constants to be padded.
In the process, fix some minor bugs in the padding decisions.
Signed-off-by: Stephen Williams <steve@icarus.com>
2007-10-15 20:17:06 -07:00
Larry Doolittle
371c5d932d
Correct wrong or misleading comments.
2007-07-06 12:46:32 -07:00
Stephen Williams
018f1a6e7f
Handle indexed part select in continuous assign.
...
Non-constant indexed part select in continuous assignment generates
a select node with the correct width. In the process factor out and
share some of the part select calculations with expr part select
handling methods.
Signed-off-by: Stephen Williams <steve@icarus.com>
2007-07-02 20:53:02 -07:00
steve
8ec6d9983d
Put instantiated modules in the proper generated scope.
2007-06-12 04:05:45 +00:00
steve
129a064e1a
Handle bit/part select of array words in nets.
2007-06-04 02:19:07 +00: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
22efa9f066
Fix elaboration of multiply of two constants.
2007-04-18 01:40:49 +00:00
steve
fe65ae8db0
Support part select of array words in net contexts.
2007-04-17 04:18:10 +00:00
steve
611d2c81b3
Spelling fixes from Larry
2007-03-22 16:08:14 +00:00
steve
bb02da0319
Better error message around repeat concatenation syntax.
2007-02-27 06:10:16 +00:00
steve
6804732b9e
Spelling fixes (larry doolittle)
2007-02-26 19:49:48 +00:00
steve
326329d497
Set some missing local flags.
2007-02-05 01:42:31 +00:00
steve
d52f41535f
Ternary output node is local.
2007-02-01 19:06:06 +00:00
steve
074a6a44e3
Detect and report arrays without index in net contexts.
2007-02-01 03:14:33 +00:00
steve
b2e1db6adb
Add method to bind assertions to verilog source lines.
2007-01-31 04:21:10 +00:00
steve
4b829bf04f
Get argument widths right for shift results.
2007-01-20 02:10:45 +00:00
steve
e4d7eda02a
Fix missing data_type mark for array words.
2007-01-19 04:26:24 +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
d7de70bdeb
Prevent name clash when processing parameter in net.
2006-12-08 03:43:26 +00:00
steve
041091cfac
Fix nexus widths for direct link assign and ternary nets.
2006-11-26 06:29:16 +00:00
steve
fc0695beb6
Handle 64bit delay constants.
2006-08-08 05:11:37 +00:00
steve
33a391cb71
Sign extend operands of signed addition.
2006-06-20 05:06:47 +00:00
steve
80f30be9d0
Add support for system functions in continuous assignments.
2006-06-18 04:15:50 +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
019d61f633
Get self-determined unary - width right.
2006-05-19 04:44:55 +00:00
steve
a8b86ea3bb
More explicit datatype setup.
2006-05-01 20:47:58 +00:00
steve
0c9fb766b6
Get the data type of part select results right.
2006-04-30 05:17:48 +00:00
steve
47b72c3b74
Handle padding of MUX net results.
2006-04-28 05:09:51 +00:00
steve
a2c036d5ab
Allow concatenations as arguments to inout ports.
2006-04-28 04:28:35 +00:00
steve
c2ff3d501c
Fix support for indexed part select in continuous assign l-values.
2006-04-24 05:15:07 +00:00
steve
decfbff2b1
Clean up index expression error message.
2006-04-10 00:32:14 +00:00
steve
d434dd7296
Allow part selects of memory words in l-values.
2006-02-02 02:43:57 +00:00
steve
58f182a159
Node delays can be more general expressions in structural contexts.
2006-01-02 05:33:19 +00:00
steve
07f345da4d
Logical or/and return VT_LOGIC type.
2005-10-11 16:15:52 +00:00
steve
21af0dbe3f
Fix data type of parameters to logic.
2005-09-19 15:21:09 +00:00
steve
7235706923
Make sure div, mod and mult nodes have line number info.
2005-09-15 23:04:09 +00:00
steve
4dfdc147c5
fit type elaboration of logical not.
2005-09-14 15:15:44 +00:00
steve
4902c222fb
Check operand types for compatibility.
2005-09-01 04:10:47 +00:00
steve
b69f59f2ec
Handle memory references is continuous assignments.
2005-08-31 05:07:31 +00:00
steve
4a8be3db9c
Implement bi-directional part selects.
2005-08-06 17:58:16 +00:00
steve
9a16e030b5
Match data type of PV select input/output.
2005-07-15 04:13:25 +00:00
steve
d353ddb660
Get output type correct for binary mux (ternary) expression.
2005-07-15 00:42:02 +00:00
steve
b9799cf6ec
Remove NetVariable and ivl_variable_t structures.
2005-07-11 16:56:50 +00:00
steve
75ad90534b
Generalize signals to carry types.
2005-07-07 16:22:49 +00:00
steve
739a1839ed
Do sign extension of structuran nets.
2005-05-24 01:44:27 +00:00
steve
06e08dbdf0
Make sure comparison widths match.
2005-05-19 03:51:38 +00:00