steve
96ca885aca
Remove short int restrictions from vvp opcodes.
2003-06-17 19:17:42 +00:00
steve
4da0cc4c8c
Fix fprintf warning.
2003-06-16 22:14:15 +00:00
steve
1b0408ac8f
More efficient code for ternary expressions.
2003-06-15 22:49:32 +00:00
steve
2f6826247a
Sign extend signed vectors.
2003-06-14 22:18:54 +00:00
steve
b43c543455
Handle assign of real to vector.
2003-06-13 19:10:20 +00:00
steve
0c7a5874d4
Proper pad of signed constants.
2003-06-11 02:23:45 +00:00
steve
a4d69e08da
Better width testing for thread vector allocation.
2003-06-05 04:18:50 +00:00
steve
8cfef65bd8
Implement acc_fetch_defname and its infrastructure in vvp.
2003-05-29 02:21:45 +00:00
steve
4b20ffc829
Use set/x0/x if the target vector is too wide for set/x0.
2003-05-26 04:45:37 +00:00
steve
6e5b7e4a41
Add % in real expressions.
2003-05-25 02:50:08 +00:00
steve
cd7a313f56
Account for nested fork scopes in disable.
2003-05-17 04:38:19 +00:00
steve
8126bdd384
Use fopen64 to open output file.
2003-05-16 03:22:52 +00:00
steve
2a29c4fd62
Support real expressions in case statements.
2003-05-14 05:26:41 +00:00
steve
3bd08e6212
Allow primitives to hvae unconnected input ports.
2003-05-13 01:56:15 +00:00
steve
2a93dc00f6
Proper width handling of || expressions.
2003-05-10 02:38:49 +00:00
steve
d5642e6bdf
Preserve user specifiec CFLAGS/CPPFLAGS.
2003-04-23 05:27:44 +00:00
steve
3aa3d03397
Fix word register leak.
2003-04-23 02:22:47 +00:00
steve
f1cc9d865b
Support event names as expressions elements.
2003-04-22 04:48:29 +00:00
steve
3b17456254
Properly pass $signed(signal) to tasks.
2003-04-12 23:25:20 +00:00
steve
5d1d99a89f
Handle signed magnitude compare all the
...
way through to the vvp code generator.
2003-04-11 05:18:08 +00:00
steve
4b543de7f9
Add support for division of real operands.
2003-03-28 02:33:56 +00:00
steve
f354c43941
Use hash code for scope labels.
2003-03-25 02:15:48 +00:00
steve
06d5c8135c
Allow real-valued vpi functions to have arguments.
2003-03-15 04:45:18 +00:00
steve
8188e8f3bf
Use %p name for all LPM functors.
2003-03-13 06:07:11 +00:00
steve
1222153cdf
Keep parameter constants for the ivl_target API.
2003-03-10 23:40:53 +00:00
steve
6474c5c9f4
Excess precision breaks some targets.
2003-03-08 01:04:01 +00:00
steve
5adf99059d
Handle general $function arguments as expresions.
2003-03-07 02:43:32 +00:00
steve
0bf901e9bb
Use number for event labels.
2003-03-06 01:17:46 +00:00
steve
17ec5d7891
Use numbers for functor labels.
2003-03-06 00:27:09 +00:00
steve
76a77fdd36
Printed nexus names need not use ivl_nexus_name.
2003-03-03 23:05:49 +00:00
steve
679c9c5bfe
Only give scope basename to .scope directives.
2003-03-03 01:48:41 +00:00
steve
970c4950f4
Merge vpi_call and vpi_func draw functions.
2003-02-28 20:21:13 +00:00
steve
feee40603c
Makefile cleanups to better support concurrent make.
2003-02-27 22:13:22 +00:00
steve
514bb4a6a9
Handle assign of real values to vectors.
2003-02-27 20:38:12 +00:00
steve
e6eded243e
Eliminate use of ivl_lpm_name function.
2003-02-25 03:40:45 +00:00
steve
7638ec05e7
Handle real value subtract and comparisons.
2003-02-07 02:46:16 +00:00
steve
ce489d8d84
Allow $display of $simtime.
2003-02-03 01:09:20 +00:00
steve
de4c73abcb
Deliver residual bits of real value.
2003-01-28 04:15:50 +00:00
steve
04ada23119
Support in various contexts the $realtime
...
system task.
2003-01-27 00:14:37 +00:00
steve
46253ed873
Rework expression parsing and elaboration to
...
accommodate real/realtime values and expressions.
2003-01-26 21:15:58 +00:00
steve
c2070777b2
The $time system task returns the integer time
...
scaled to the local units. Change the internal
implementation of vpiSystemTime the $time functions
to properly account for this. Also add $simtime
to get the simulation time.
2002-12-21 00:55:57 +00:00
steve
42b34c2ce6
Evaluate shift index after shift operand because
...
the chift operand may use the index register itself.
2002-12-20 01:11:14 +00:00
steve
6fbfdd8f3f
Keep bit select subexpression width if it is constant.
2002-12-19 23:11:29 +00:00
steve
8e30bc9f9e
Careful of left operands to shift that are constant.
2002-11-22 00:01:50 +00:00
steve
03afbf157b
%set/x0 instruction to support bounds checking.
2002-11-21 22:43:13 +00:00
steve
00b2d467e4
Allow right values of right shift to shift in.
2002-11-21 22:42:48 +00:00
steve
2fafe6866f
Better handling of select width of shifters.
2002-11-21 18:08:09 +00:00
steve
91580d1fcc
Generate unique labels for force functors.
2002-11-17 18:31:09 +00:00
steve
07e49e215e
Use the vectorized %assign where appropriate.
2002-11-08 05:00:31 +00:00
steve
db899bd1b5
Use Vector %set to set constants in variables.
2002-11-07 05:19:55 +00:00
steve
c6dcc38fe0
Vectorize load from REG variables.
2002-11-07 03:12:17 +00:00
steve
46ee38b466
Concatenation can evaluate sub-expressions in place.
2002-11-06 05:41:37 +00:00
steve
b4e8ea5a0c
Install shared objects as programs, not data.
2002-11-05 02:14:41 +00:00
steve
32f1ca6f8b
draw lpm ff with aset_expr taken into account.
2002-10-23 04:39:35 +00:00
steve
fbee1b424d
Properly set or clear expression lookaside for binary expressions.
2002-10-20 02:55:37 +00:00
steve
703ad04067
Allow expression lookaside map to spam statements.
2002-09-27 20:24:42 +00:00
steve
778e96330d
Add thread expression lookaside map.
2002-09-27 16:33:34 +00:00
steve
166621bcb3
Generate vvp code for asynch set/reset of NetFF.
2002-09-26 03:18:04 +00:00
steve
6f23fa61ac
Allow results in register bits 47 in certain cases.
2002-09-24 04:20:32 +00:00
steve
3d3116d48b
Add support for binary NOR operator.
2002-09-18 04:29:55 +00:00
steve
5d6567cb02
Generate vvp code for structural flip-flops.
2002-09-17 05:37:45 +00:00
steve
fb0383d2bd
single bit optimization for != in expressions,
...
and expand ++ and != results if needed.
2002-09-13 04:09:51 +00:00
steve
28725d0d74
Optimize ==1 when in context where x vs z doesnt matter.
2002-09-13 03:12:50 +00:00
steve
dac99b9374
Add support for binary nand operator.
2002-09-12 15:49:43 +00:00
steve
0a2a9dcd94
Fix leaking vthread bits in ?: eval.
2002-09-01 01:42:34 +00:00
steve
c9b4b66af2
Watch for x indices in l-value of non-blocking assignments.
2002-09-01 00:19:35 +00:00
steve
7b6678b2a1
Fix reverse bit ordered bit select in continuous assignment.
2002-08-31 03:48:50 +00:00
steve
e79f62c5fa
Generate x out for x select on wide muxes.
2002-08-29 03:04:01 +00:00
steve
cbca31555d
Add the %subi instruction, and use it where possible.
2002-08-28 18:38:07 +00:00
steve
d5aa700b4b
Generate %load/nx for indexed load of nets.
2002-08-28 17:15:35 +00:00
steve
aa390f2a91
Fix l-value indexing of memories and vectors so that
...
an unknown (x) index causes so cell to be addresses.
Fix tangling of label identifiers in the fork-join
code generator.
2002-08-27 05:39:57 +00:00
steve
985c34bfd9
Fix behavioral eval of x?a:b expressions.
2002-08-22 03:38:40 +00:00
steve
8ab2ec6f86
Allow release to handle removal of target net.
2002-08-19 00:06:11 +00:00
steve
52bf4e613f
conditional ident string using autoconfig.
2002-08-12 01:34:58 +00:00
steve
774f78cd3e
Autoconfig ident support.
2002-08-12 00:27:10 +00:00
steve
aca1dcf848
Add missing Log and Ident strings.
2002-08-11 23:47:04 +00:00
steve
cc74d2a6b0
Add force to nets.
2002-08-07 00:54:39 +00:00
steve
693e9e5ad0
Store only the base name of memories.
2002-08-05 04:18:45 +00:00
steve
89314d4772
Do not use hierarchical names of memories to
...
generate vvp labels. -tdll target does not
used hierarchical name string to look up the
memory objects in the design.
2002-08-04 18:28:14 +00:00
steve
41f7ecacfc
Eliminate use of ivl_signal_name for signal labels.
2002-08-03 22:30:48 +00:00
steve
15becdaee4
Need driver for sure in assign feedback and other cases.
2002-07-18 02:06:37 +00:00
steve
18ba73382e
Fix check for select size.
2002-07-16 03:15:11 +00:00
steve
31bd3e6056
Use all bits of ?: condit expression.
2002-07-12 18:10:45 +00:00
steve
472f98affe
Generate code for wide muxes.
2002-07-08 04:04:07 +00:00
steve
301040a67a
Avoid emitting to vvp local net symbols.
2002-07-05 21:26:17 +00:00
steve
3595b6d186
Carry can propagate to the otp in addi.
2002-07-01 00:52:47 +00:00
steve
5eca5d9948
Carry integerness throughout the compilation.
2002-06-21 04:59:35 +00:00
steve
24a2487c18
Generate %cmpi/u where appropriate.
2002-06-02 18:57:17 +00:00
steve
cba5a22714
Generate %muli instructions when possible.
2002-05-31 20:04:57 +00:00
steve
95876feb46
Use addi with wide immediate values.
2002-05-30 01:57:23 +00:00
steve
b6b364a09d
Add %addi, which is faster to simulate.
2002-05-29 16:29:34 +00:00
steve
422754f36f
Support carrying the scope of named begin-end
...
blocks down to the code generator, and have
the vvp code generator use that to support disable.
2002-05-27 00:08:45 +00:00
steve
e70e04d6e8
Handle x case of unary ! properly.
2002-05-07 03:49:58 +00:00
steve
4a7e14786c
Tail size was wrong.
2002-04-23 05:18:05 +00:00
steve
1ddb736f4c
Handle bitsel muxes of odd shaped outputs.
2002-04-23 05:06:31 +00:00
steve
9ef49379f4
Add support for non-constant bit select.
2002-04-23 03:53:59 +00:00
steve
96213fe0ac
Keep delays applied to BUFZ devices.
2002-04-22 03:15:25 +00:00
steve
d482da4803
Reduce the while loop expression if needed.
2002-04-22 02:41:30 +00:00
steve
5882c6a481
Redo handling of assignment internal delays.
...
Leave it possible for them to be calculated
at run time.
2002-04-21 22:31:02 +00:00
steve
f03ec88c2a
Handle empty true case of conditional statements.
2002-04-14 19:19:21 +00:00