steve
f556452403
Handle function/task port vectors.
2005-03-12 23:45:33 +00:00
steve
1c5b4881d7
Handle case inequality in netlists.
2005-03-09 05:52:03 +00:00
steve
53af2949b4
Generate code for new form of memory ports.
2005-03-09 04:53:40 +00:00
steve
8e135a1020
Non blocking assign to memory words.
2005-03-06 17:07:48 +00:00
steve
0fb1fd36ee
Handle memory words in l-value concatenations.
2005-03-05 05:47:42 +00:00
steve
85286cc086
Rearrange how memories are supported as vvp_vector4 arrays.
2005-03-03 04:33:10 +00:00
steve
2fcaac4060
Support constant part select writes to l-values, and large part select reads from signals.
2005-02-15 07:12:55 +00:00
steve
4051f7d986
Handle bitmux lvalues for constant r-values.
2005-02-14 05:00:11 +00:00
steve
aaf35ab1a9
Handle bit selects in l-values to assignments.
2005-02-14 01:51:39 +00:00
steve
1d7235b4f1
Replace supply nets with wires connected to pullup/down supply devices.
2005-02-13 01:15:07 +00:00
steve
d4eb4d38bc
Implement a-b muxes as vector devices
2005-02-12 22:54:29 +00:00
steve
eca4f4fa97
Draw C4 and C8 constants to account for strength.
2005-02-12 06:25:15 +00:00
steve
1979fca239
Get the C4 width right for undriven nexa.
2005-02-10 04:55:45 +00:00
steve
ee5bb5fcaf
Add the NetRepeat node, and code generator support.
2005-02-08 00:12:36 +00:00
steve
e74127e1fc
Support .concat with arbitrary input counts.
2005-02-04 05:13:57 +00:00
steve
97f83ffbe3
laborate reduction gates into LPM_RED_ nodes.
2005-02-03 04:56:20 +00:00
steve
7250337941
Integrate fixes from 0.8 branch.
2005-01-28 19:39:03 +00:00
steve
6be34bba4d
Special handling of constant shift 0.
2005-01-28 05:37:48 +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
edeb9d8eca
Part selects are done in the compiler, not here.
2005-01-24 05:08:02 +00:00
steve
a4710f375e
LPM_CMP_NE/EQ are vectored devices.
2005-01-22 16:22:13 +00:00
steve
e28636776a
Change case compare from logic to an LPM node.
2005-01-22 01:06:55 +00:00
steve
bf6a5d0f50
Implement LPM_COMPARE nodes as two-input vector functors.
2005-01-16 04:20:32 +00:00
steve
fcaaec0464
More robust input code generation for LPM_ADD.
2005-01-12 05:31:50 +00:00
steve
8c18c9152d
More complete drawing of concat inputs.
2005-01-12 03:16:35 +00:00
steve
399dfe5c44
Handle concatenations with up to 16 inputs.
2005-01-10 01:42:59 +00:00
steve
9e94afe399
Use PartSelect/PV and VP to handle part selects through ports.
2005-01-09 20:16:00 +00:00
steve
83423c978b
Generate code for the .concat functors, from NetConcat objects.
...
Generate C<> constants of correct widths for functor arguments.
2004-12-29 23:52:09 +00:00
steve
e11ac0b1d8
Use %set/v to trigger events.
2004-12-18 18:53:26 +00:00
steve
59bac26f4f
Implement release functionality.
2004-12-17 04:46:40 +00:00
steve
ffedf32476
cassign and deassign handle concatenated l-values.
2004-12-11 05:43: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
e827f8f8c1
Cleanup and factoring of autoconf.
2004-09-27 22:34:10 +00:00
steve
965d928430
More carefull about eliding bufzs that carry strength.
2004-09-25 21:04:25 +00:00
steve
5e627c9adc
Compile cleanup of C code.
2004-09-10 23:13:05 +00:00
steve
a8ee786036
Relaxed width constraint on pad_expression output.
2004-09-10 00:14:31 +00:00
steve
491df9c327
Watch out for real compared to constant. Handle as real.
2004-06-30 03:07:32 +00:00
steve
3dbc07f34d
Implement signed divide and signed right shift in nets.
2004-06-30 02:16:26 +00:00
steve
9ba1177a4d
Generate signed modulus if appropriate.
2004-06-19 16:17:37 +00:00
steve
b043445c80
Generate .cmp/eq nodes instead of sea of gates.
2004-06-16 23:33:42 +00:00
steve
896f1b0de1
Generate code for nb assign to reals.
2004-05-19 03:25:42 +00:00
steve
081a6a4088
Cleanup configure detection of win32.
2004-02-15 03:17:36 +00:00
steve
8188c4c690
Makefile cleanup.
2004-02-10 19:25:00 +00:00
steve
a436bfc711
Include from current directory.
2004-01-28 23:54:10 +00:00
steve
c2ab27541f
Make sure I get ivl_target.h from this source.
2004-01-26 23:31:57 +00:00
steve
d98720af4d
Isolate configure from containing config.h
2004-01-20 21:00:47 +00:00
steve
8aca824c0f
Further unify the configure.in scripts.
2004-01-15 20:52:32 +00:00
steve
59ac435c71
Fix various unsigned compare warnings.
2003-12-19 01:27:10 +00:00
steve
ae3198b505
Install target gets vvp.conf that is built, not from srcdir.
2003-12-12 19:58:40 +00:00
steve
df968687e4
Generate VVP_EXECUTABLE flag in conf files.
2003-12-07 19:28:43 +00:00
steve
e56b77a43f
Add support for wait on list of named events.
2003-12-03 02:46:23 +00:00
steve
12033d7bd4
Move the DLL= flag to target config files.
2003-11-13 05:55:33 +00:00
steve
435f06bd21
ivl -F and -t flags are onpassed throught the -C file.
2003-11-13 03:10:37 +00:00
steve
c5f7e7837b
Start the vvp target config files.
2003-11-01 04:22:50 +00:00
steve
5496a38499
vvp_signal_label does not return a unique string.
2003-10-25 02:07:57 +00:00
steve
a461a76bd5
Emit .event inputs before the .event statement.
2003-10-09 23:45:03 +00:00
steve
3190eda414
Slightly more efficient unary minus.
2003-10-01 17:44:20 +00:00
steve
2970b3c39b
Clear expression lookaside after true cause of ternary.
2003-09-24 20:46:20 +00:00
steve
cee34f8a8a
Support time0 resolution of combinational threads.
2003-09-04 20:28:05 +00:00
steve
64d795c53a
Preserve variable ranges all the way to the vpi.
2003-08-22 23:14:26 +00:00
steve
6b7879c0b0
Ignore autom4te.cache files.
2003-08-10 00:41:26 +00:00
steve
5e326cd90e
Subtract from constant values.
2003-08-03 03:53:38 +00:00
steve
d653a7e88d
Add support for triand and trior.
2003-07-30 01:13:28 +00:00
steve
d4b7c835de
All the threads of a named fork go into sub-scope.
2003-07-29 05:12:10 +00:00
steve
bfe31e22bf
Start handling pad of expressions in code generators.
2003-07-26 03:34:42 +00:00
steve
01b858ef13
Wider thread vector limit.
2003-07-03 17:44:10 +00:00
steve
71a404a546
Add arithmetic shift operators.
2003-06-18 03:55:18 +00:00
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
steve
eb27dc8db3
Support signed integer division.
2002-04-14 18:41:34 +00:00
steve
84bf0cee59
Vector constants to vpi_call can have sign.
2002-04-14 03:54:40 +00:00
steve
3275d1f252
Support signed expressions through to VPI.
2002-04-14 02:56:19 +00:00
steve
7349a6beaf
Generate port information in the .ufunc statement.
2002-03-18 00:18:50 +00:00
steve
b7c2bd4f72
Add the NetUserFunc netlist node.
2002-03-09 02:10:22 +00:00
steve
aa16e82102
Fix parameter bit select check for magic constants.
2002-02-03 05:53:00 +00:00
steve
364ffc9024
Add support for bit select of parameters.
...
This leads to a NetESelect node and the
vvp code generator to support that.
2002-01-28 00:52:41 +00:00
steve
02f5ccd5d9
Handle constants with drive strength z
2002-01-12 17:49:41 +00:00
steve
361d4f2147
Drive strengths for continuous assignments.
2002-01-12 04:03:39 +00:00
steve
5840368f2d
Handle certain special cases of stime.
2002-01-11 05:23:05 +00:00
steve
6be3be0f16
Constant values have drive strengths.
2002-01-06 03:15:43 +00:00
steve
dd79885f6d
Add structural modulus support down to vvp.
2002-01-03 04:19:01 +00:00
steve
a5400d7212
Support all 3 TRI net types.
2001-12-15 02:13:33 +00:00
steve
cd1524e6ca
Generate notif functors.
2001-12-14 06:03:34 +00:00
steve
4dd5f97a96
Parse and handle drive strengths of gates to vvp.
2001-12-14 02:05:13 +00:00
steve
ec4f8c80d5
Support functor delays for gates and UDP devices.
...
(Stephan Boettcher)
2001-12-06 03:31:24 +00:00
steve
2d3e85d941
Make sure fork labels are globally unique.
2001-12-05 05:41:20 +00:00
steve
e00aedd99b
Handle padding out of logical values.
2001-11-19 04:25:46 +00:00
steve
6e0b77a8da
Generate force code for variable l-values.
2001-11-18 01:28:18 +00:00
steve
54bb59ae99
Support compile on MacosX 10.1.1 (Timothy J. Wood)
2001-11-17 17:57:58 +00:00
steve
08f0f5a1f7
DLL target support for force and release.
2001-11-14 03:28:49 +00:00
steve
cc5ddc0b6b
MacOSX 10.1 updates.
2001-11-04 05:03:21 +00:00
steve
560c003e03
make fork label into complete statemnt.
2001-11-01 19:31:40 +00:00
steve
5d20dd63ec
Generate code for deassign and cassign.
2001-11-01 04:26:57 +00:00
steve
d83fb10774
The ! expression returns 0 to x and z values.
2001-10-24 05:06:54 +00:00
steve
5a6cca33a0
Write resolvers before the .functor (PR#300)
2001-10-24 03:43:45 +00:00
steve
924b4e0062
unused idx warning.
2001-10-22 02:04:37 +00:00
steve
0e43dfb285
Remove useless code for drawing .var inputs.
2001-10-22 00:04:51 +00:00
steve
46621d3c83
wrong variable for clk input to memory.
2001-10-21 23:38:16 +00:00
steve
83d3a60d5c
Add trailing ; to fork-join out labels.
2001-10-19 23:52:36 +00:00
steve
d350620315
Support multiple root modules (Philip Blundell)
2001-10-19 21:53:24 +00:00
steve
73283768a5
Support rnpmos devices. (Philip Blundell)
2001-10-18 17:30:25 +00:00
steve
ce7d64f427
Evaluate string expressions (Philip Blundell)
2001-10-18 16:41:49 +00:00
steve
177fa4062b
Support IVL_LPM_DIVIDE for structural divide.
2001-10-16 02:19:26 +00:00
steve
821c68696d
Generate %div instructions for binary /.
2001-10-16 01:27:17 +00:00
steve
42dab181cd
Carry the type of the scope (Stephan Boettcher)
2001-10-15 02:58:27 +00:00
steve
2326672b3a
Handle constant bits in arithmetic expressions.
2001-10-14 03:24:35 +00:00
steve
245905aeda
Support vectors as operands to logical and.
2001-10-10 04:47:43 +00:00
steve
c7bc35ad75
get CFLAGS from configure
2001-10-09 16:50:17 +00:00
steve
5071ce8575
handle nmos and pmos devices.
2001-10-09 02:28:44 +00:00
steve
cbd501b865
Fix some Cygwin DLL handling. (Venkat Iyer)
2001-09-30 16:45:10 +00:00
steve
bdf643ddb1
Generate code for unary minus (PR#272)
2001-09-29 04:37:44 +00:00
steve
d46465845c
Fix the size of unsized constant operants to compare (PR#274)
2001-09-29 01:53:22 +00:00
steve
dd75595082
Handle short l-values to concatenation.
2001-09-20 03:46:38 +00:00
steve
a73cfbc2b5
MacOS X compile time changes. (Timothy Wood)
2001-09-20 03:21:01 +00:00
steve
b2b8b89cd8
Make configure detect malloc.h
2001-09-15 18:27:04 +00:00
steve
f2068e83d4
Generate code for identity comparators.
2001-09-14 04:15:46 +00:00
steve
a9e54e7553
dead comments.
2001-09-01 00:58:16 +00:00
steve
03b428b6cb
Handle update in place of repeat constants.
2001-08-31 01:37:56 +00:00
steve
b8be5e80cd
Generate code for l-value bit selects.
2001-08-26 23:00:13 +00:00
steve
e35ed6e91c
Change the NetAssign_ class to refer to the signal
...
instead of link into the netlist. This is faster
and uses less space. Make the NetAssignNB carry
the delays instead of the NetAssign_ lval objects.
Change the vvp code generator to support multiple
l-values, i.e. concatenations of part selects.
2001-08-25 23:50:02 +00:00
steve
31aa85ce7d
Handle wide assignment to narrow return value.
2001-08-23 02:54:15 +00:00
steve
15c2b0317d
statement ends after while loop labels.
2001-08-16 03:45:17 +00:00
steve
2802601c44
tgt-vvp generates code that skips nets as inputs.
2001-08-10 00:40:45 +00:00
steve
b72d1c297d
More detailed messages about unsupported things.
2001-08-03 17:06:10 +00:00
steve
537757a7b9
Cleanup defines and types for mingw compile.
2001-07-30 02:44:05 +00:00
steve
00cacae2a3
Generate constant symbols for supply nets.
2001-07-28 03:18:50 +00:00
steve
1be77d68ce
Evaluate part selects when passed to system tasks.
2001-07-28 01:18:07 +00:00
steve
becc7cb56a
Handle part select expressions as variants of
...
NetESignal/IVL_EX_SIGNAL objects, instead of
creating new and useless temporary signals.
2001-07-27 04:51:44 +00:00
steve
629a02cccf
Fix binding of dangling function ports. do not elide them.
2001-07-27 02:41:55 +00:00
steve
bc284ee6d8
supply signals give input values.
2001-07-22 21:31:14 +00:00
steve
5c89fb71ae
Handle repeat for concatenation expressions.
2001-07-22 19:33:51 +00:00
steve
ce589da58a
Support the NetESubSignal expressions in vvp.tgt.
2001-07-22 00:17:49 +00:00
steve
cd8e491028
Support calculated delays in vvp.tgt.
2001-07-19 04:55:06 +00:00
steve
05407f488f
Relax driver limit from 64 to forever (Stephan Boettcher)
2001-07-18 02:44:39 +00:00
steve
64837efac5
Nest resolvers when there are lots of drivers (Stephan Boettcher)
2001-07-16 18:31:49 +00:00
steve
8d73df2b04
Make vvp output executable (Stephan Boettcher)
2001-07-16 18:26:08 +00:00
steve
c7b36322f6
Properly step through wide inputs. (Stephan Boettcher)
2001-07-09 15:38:35 +00:00
steve
8cc89a3a1f
Pass parameters to system functions.
2001-07-07 20:20:10 +00:00
steve
1628045b55
Generate code for right shift.
2001-07-07 03:01:06 +00:00
steve
370549a19a
Generate code for structural left shift.
2001-07-06 04:48:04 +00:00
steve
ab7b353ace
support fast programming by only writing the bits
...
that are listed in the input file.
2001-06-30 23:03:16 +00:00
steve
baac893d22
Support non-const right shift (unsigned).
2001-06-30 21:07:26 +00:00
steve
45d4117c02
Handle null parameters to system tasks.
2001-06-29 02:41:05 +00:00
steve
c4bd8b1463
Generate %shiftl instructions for shift.
2001-06-23 18:40:34 +00:00
steve
96d04bb5a0
Handle short inputs to tasks. (Stephan Boettcher)
2001-06-23 00:30:42 +00:00
steve
68a7ddefd3
Escaped identifiers in behavioral expressions. (Stephan Boettcher)
2001-06-21 04:53:59 +00:00
steve
81536481cc
Add structural EEQ gates (Stephan Boettcher)
2001-06-19 03:01:10 +00:00
steve
82e8e51736
1. Logic with more than 4 inputs
...
2. Id and name mangling
3. A memory leak in draw_net_in_scope()
(Stephan Boettcher)
2001-06-18 03:10:34 +00:00
steve
4159c98c58
More behavioral unary reduction operators.
...
(Stephan Boettcher)
2001-06-18 01:09:32 +00:00
steve
4b82d26f5e
Add support for structural multiply in t-dll.
...
Add code generators and vvp support for both
structural and behavioral multiply.
2001-06-16 23:45:05 +00:00
steve
bf42772995
Generate code to support memory access in continuous
...
assignment statements. (Stephan Boettcher)
2001-06-16 02:41:41 +00:00
steve
b3a5a0e5ab
Generate vvp code for GT and GE comparisons.
2001-06-15 04:14:18 +00:00
steve
5361efe8ed
Account for carry out on add devices.
2001-06-07 04:20:10 +00:00
steve
2f2657b765
support subtraction in tgt-vvp.
2001-06-07 03:09:37 +00:00
steve
f480943649
Support structural addition.
2001-06-07 02:12:43 +00:00
steve
e68ba4c73a
Attach noops to case labels.
2001-05-24 04:31:00 +00:00
steve
39ffe91230
Add behavioral modulus.
2001-05-24 04:20:10 +00:00
steve
660fd7c1d4
Update the mingw build to not require cygwin files.
2001-05-22 02:14:47 +00:00
steve
77d63aba74
make distclean target.
2001-05-20 17:13:27 +00:00
steve
de8c725890
Mingw32 support (Venkat Iyer)
2001-05-20 15:09:39 +00:00
steve
8669b372e0
Implement reduction nor.
2001-05-20 01:18:38 +00:00
steve
bdcb813727
Initial support for system functions.
2001-05-20 01:02:55 +00:00
steve
0872ad34cf
Behavioral ternary operators for vvp.
2001-05-17 04:37:02 +00:00
steve
bc6dfeb4a9
Skip the , in module lists.
2001-05-14 00:55:31 +00:00
steve
4d8954be4c
Fixup the resolver syntax.
2001-05-12 16:34:47 +00:00
steve
1d0a9871c2
Generate resolvers for multiple drivers.
2001-05-12 03:31:01 +00:00
steve
44a182d92c
VVP support for memories in expressions,
...
including general support for thread bit
vectors as system task parameters.
(Stephan Boettcher)
2001-05-10 00:26:53 +00:00
steve
914ad85e63
Add ivl and vvp.tgt support for memories in
...
expressions and l-values. (Stephan Boettcher)
2001-05-08 23:59:33 +00:00
steve
213cb1b08a
Behavioral code to read memories. (Stephan Boettcher)
2001-05-06 17:54:33 +00:00
steve
558fea33fb
Generate code that causes the value of a net to be passed
...
passed through all nets of a nexus.
2001-05-06 00:01:02 +00:00
steve
d45c7c58df
Generate code for the fully general event or.
2001-05-03 04:55:46 +00:00
steve
b5e0f46229
Generate null statements for conditional labels.
2001-05-03 04:55:28 +00:00
steve
0f9eb13245
Remove the init parameter of functors, and instead use
...
the special C<?> symbols to initialize inputs. This is
clearer and more regular.
2001-05-02 04:05:16 +00:00
steve
06437b7fba
Support behavioral subtraction.
2001-05-02 01:57:25 +00:00
steve
3e3757bde7
Comparisons cant leave their results in the opcode
...
result area or their values will be clobbered by other
parts of a complex expression.
2001-05-01 02:07:34 +00:00
steve
972e9c866b
OR is %or. Get this right.
2001-04-30 05:11:18 +00:00
steve
3f952a2fd2
detect multiple drivers on nexa.
2001-04-30 00:00:27 +00:00
steve
2a44cf70b1
Add bufif and pull devices.
2001-04-29 23:16:31 +00:00
steve
31291f5d8a
Evalulate logical or (||)
2001-04-29 20:47:39 +00:00
steve
861ed55879
Support marking vvp interpreter (Stephan Boettcher)
2001-04-28 20:06:07 +00:00
steve
73c4893ef7
Implement simple MUXZ for ?: operators.
2001-04-26 05:12:02 +00:00
steve
46e868d313
Fix generation of udp/comb definitions.
2001-04-24 02:59:52 +00:00
steve
8dfa322b8b
Support for UDP devices in VVP (Stephen Boettcher)
2001-04-24 02:23:58 +00:00
steve
57b0d9691e
Right shift by constant.
2001-04-21 03:26:23 +00:00
steve
7c6f496765
Add NAND and XNOR functors.
2001-04-21 02:04:01 +00:00
steve
67e72ce77e
Left shift by a constant amount.
2001-04-21 01:49:17 +00:00
steve
c97692d715
Generate code for disable.
2001-04-21 00:55:46 +00:00
steve
39bcdfb7b4
Use the new %fork syntax.
2001-04-18 05:12:03 +00:00
steve
41ce198a1f
add XOR support.
2001-04-15 16:37:48 +00:00
steve
05e30ed43b
Add support for behavioral xnor.
2001-04-15 04:07:56 +00:00
steve
70aeb980d8
vvp support for <= with internal delay.
2001-04-15 02:58:11 +00:00
steve
8205d0fcc9
Use event/or for wide anyedge statements.
2001-04-14 05:11:49 +00:00
steve
0550287658
Generate vvp code for functions with ports.
2001-04-06 02:28:02 +00:00
steve
82947a9343
Generate vvp code for the repeat statement.
2001-04-05 03:20:57 +00:00
steve
b7fb806611
Generate signed .net and .var statements.
2001-04-05 01:38:24 +00:00
steve
898639d7bf
Get signed compares working correctly in vvp.
2001-04-05 01:12:27 +00:00
steve
0653f859bc
Support forever loops in the tgt-vvp target.
2001-04-04 04:50:35 +00:00
steve
1b2a6f8bed
Fix broken look scanning down bits of number.
2001-04-04 04:28:41 +00:00
steve
c6cf665c4a
emit vpi parameters values as vectors.
2001-04-04 04:14:09 +00:00
steve
19c84ff9a2
Support non-blocking assignments.
2001-04-03 04:50:37 +00:00
steve
3ffb3c7011
thread bit allocation leak in assign.
2001-04-02 04:09:20 +00:00
steve
cac4c8d5ce
Evaluate binary & and | operators.
2001-04-02 03:47:49 +00:00
steve
f40d006c26
Generate code for task calls.
2001-04-02 02:28:12 +00:00
steve
141808b787
Scopes and numbers as vpi_call parameters.
2001-04-02 00:27:53 +00:00
steve
ce66498c88
Unary ! is a reduction operator.
2001-04-01 22:26:21 +00:00
steve
f8e6d782e1
Implement the unary ! operator.
2001-04-01 21:47:29 +00:00
steve
7a8135c703
Recognize the BUF device.
2001-04-01 21:34:48 +00:00
steve
9bce21ddb7
Generate code for < and <=.
2001-04-01 07:22:42 +00:00
steve
56a4236576
Evaluate the logical AND operator.
2001-04-01 06:49:32 +00:00
steve
2443c655f2
Generate code for while statements.
2001-04-01 06:49:04 +00:00
steve
4352ce6753
Generate code for casex and casez
2001-04-01 04:34:59 +00:00
steve
d25690cc8e
Redesign event information to support arbitrary edge combining.
2001-04-01 01:48:21 +00:00
steve
e29ecdc234
Fix compilation warnings.
2001-03-31 19:29:23 +00:00
steve
0f6eea7024
Handle $time as system task parameter.
2001-03-31 19:08:22 +00:00
steve
97dd559fca
Clear results of condition expressions.
2001-03-31 19:02:13 +00:00
steve
b3a3b888d8
Generate vvp code for case statements.
2001-03-31 17:36:38 +00:00
steve
7aa9bc9892
Generate code for + and concat expressions.
2001-03-31 02:00:44 +00:00
steve
b36b6d0ca0
Generate code for fork/join statements.
2001-03-30 05:49:52 +00:00
steve
f6eb581aff
Handle truncation/padding of numbers.
2001-03-29 05:16:25 +00:00
steve
966f7a4bff
Behavioral trigger statements.
2001-03-29 03:47:38 +00:00
steve
2cb76cabef
events can take up to 4 inputs.
2001-03-29 03:47:13 +00:00
steve
522d0ec864
Add unary ~ operator to tgt-vvp.
2001-03-29 02:52:39 +00:00
steve
a4e528f0c3
Add the ivl_event_t to ivl_target, and use that to generate
...
.event statements in vvp way ahead of the thread that uses it.
2001-03-28 06:07:39 +00:00
steve
c8d9ade58c
Evaluate === and !==
2001-03-27 06:43:27 +00:00
steve
61e3eed49c
Generate code for simple @ statements.
2001-03-27 06:27:40 +00:00
steve
afb8e285db
Support error code from target_t::end_design method.
2001-03-27 03:31:06 +00:00
steve
a71dbd3987
Draw AND NOR and NOT gates.
2001-03-25 19:36:12 +00:00
steve
417186b06f
Add a README for notes about the vvp target.
2001-03-25 18:10:39 +00:00
steve
ac91dc38b8
Recursive make check target.
2001-03-25 05:59:46 +00:00
steve
5134636932
Include signal bit index in functor input.
2001-03-25 03:53:40 +00:00
steve
5d051ffbde
Skip true clause if condition ix 0, x or z
2001-03-25 03:53:24 +00:00
steve
97985bba64
Generate .net statements, and nexus inputs.
2001-03-25 03:25:43 +00:00
steve
9ec5fa972e
Draw signal inputs to system tasks.
2001-03-25 03:24:10 +00:00
steve
95281e5d82
Generate :module statements.
2001-03-23 02:41:04 +00:00
steve
034cdae445
assignments with non-trival r-values.
2001-03-23 01:54:32 +00:00
steve
c2dc3fe5c3
Assure that operands are the correct width.
2001-03-23 01:10:24 +00:00
steve
565088160e
Geneate code for conditional statements.
2001-03-22 05:06:21 +00:00
steve
27e717839a
Scan the scopes of a design, and draw behavioral
...
blocking assignments of constants to vectors.
2001-03-21 01:49:43 +00:00
steve
e8518c5056
Put processes in the proper scope.
2001-03-20 01:44:13 +00:00
steve
1563643c92
Add the tgt-vvp code generator target.
2001-03-19 01:20:46 +00:00