Stephen Williams
14c0cfd3b1
bufif and nmos/pmos are strength aware
...
The outputs to bufif and nmos/pmos devices are always strength-aware,
so should have their outputs connected to a net8 device.
Signed-off-by: Stephen Williams <steve@icarus.com>
2007-09-22 21:53:55 -07:00
Cary R
7c852aa075
Add cmos/rcmos primitives.
...
This patch adds the cmos and rcmos primitives.
2007-09-06 18:46:22 -07:00
Stephen Williams
88dea0c318
Remove restriction on size of constants
...
Constant strings are now formed in dynamically allocated memory
instead of a fixed array.
Signed-off-by: Stephen Williams <steve@icarus.com>
2007-06-30 20:27:08 -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
ed698deeaa
Add support for collapsed/aliased arrays.
...
Arrays of nets that have all their words collapsed together can become
a collapsed array as a whole. Add support for this case in the vvp code
generator and runtime.
2007-06-24 18:17:37 -07:00
steve
ae82eccdc4
handle constant inf values.
2007-06-12 02:36:58 +00:00
steve
0a38499941
Properly handle signed conversion to real
2007-06-07 03:20:15 +00:00
steve
67b1eee7ce
Better configuration messages (Alan Feldstein)
2007-05-16 23:59:12 +00:00
steve
9931e4c013
Finish up part select of array words.
2007-04-14 04:43:01 +00:00
steve
ff7625cd9c
nexus vectors of VT_BOOL objects. (ravi@bluespec)
2007-04-12 04:40:37 +00:00
steve
fbc731d19e
Allow nexus aliases to array words.
2007-04-10 03:40:04 +00:00
steve
5047a3add3
variable arrays generated without writing a record for each word.
2007-04-10 01:26:15 +00:00
steve
d883979fd8
Seperate arrayness from word count
2007-04-02 01:12:34 +00:00
steve
ea74940be4
Fix that save expression lookaside always clears cached variable values.
2007-04-01 05:26:17 +00:00
steve
611d2c81b3
Spelling fixes from Larry
2007-03-22 16:08:14 +00:00
steve
96443f1338
Clear lookaside even if source bit is a constant.
2007-03-20 04:26:56 +00:00
steve
fc9a90c9e0
Add support for edge sensitive spec paths.
2007-03-02 06:13:22 +00:00
steve
243cf94165
Add support for conditional specify delay paths.
2007-03-01 06:19:38 +00:00
steve
80a2b05733
Do not assign to words constant-indexed out of range.
2007-02-27 05:13:34 +00:00
steve
6804732b9e
Spelling fixes (larry doolittle)
2007-02-26 19:49:48 +00:00
steve
d6969b719a
Prevent lost of width while calculation address.
2007-02-26 01:51:40 +00:00
steve
1f54f128c1
Handle unary minus of real valued expressions.
2007-02-20 05:58:36 +00:00
steve
45307f6144
Handle type of ternary expressions properly.
2007-02-14 05:59:46 +00:00
steve
92c36f152d
Treat BOOL and LOGIC the same according to VPI functions.
2007-02-14 05:59:24 +00:00
steve
521f66f040
Get padding right when loading array word into big vector.
2007-02-12 04:37:58 +00:00
steve
3fd80b09f0
Administrative/Makefile fixes, mostly for windows. (Cary R.)
2007-02-06 05:07:31 +00:00
steve
2b3acfb344
Expression lookaside cannot hold complex expressions
2007-02-06 04:43:53 +00:00
steve
7d42c50253
Lookaside is invalid when working a new scope.
2007-02-02 04:48:49 +00:00
steve
05efaa6427
Treat VPI argument array with constant index specially.
2007-01-30 05:28:23 +00:00
steve
f07257067a
Handle real constants in vector expressions.
2007-01-19 05:24:53 +00:00
steve
c0954349e4
Fix bad lookaside references in vvp thread code generator.
2007-01-19 02:30:19 +00:00
steve
e89b9fc25e
Do not match array words in expression lookaside.
2007-01-18 00:59:48 +00:00
steve
f5a7ee0736
Remove dead code related to memories.
2007-01-17 04:39:18 +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
d6f98599f8
Do not intertangle modpaths due to references to input nets.
2006-11-23 22:42:48 +00:00
steve
64b4e2fa01
Get the .event input from the signal instead of the signal input.
2006-11-22 06:09:08 +00:00
steve
841378426f
Updates for Cygwin portability (pr1585922)
2006-10-30 22:45:36 +00:00
steve
0e102a94b2
Fix rendering of signed numbers in real expressions.
2006-10-10 23:54:28 +00:00
steve
ec23bb0367
Remove dead code.
2006-10-05 01:37:34 +00:00
steve
26e2e85ffa
Handle non-constant delays on indexed non-blocking assignments.
2006-10-05 01:23:53 +00:00
steve
549f226c6e
Modpath is input to net, draw .modpath to account.
2006-10-01 23:51:15 +00:00
steve
0edb5a7547
Basic support for specify timing.
2006-09-23 04:57:19 +00:00
steve
50800fd3a1
Add support for real valued modulus.
2006-08-09 05:19:08 +00:00
steve
fc0695beb6
Handle 64bit delay constants.
2006-08-08 05:11:37 +00:00
steve
06d6ac4b33
Fix/implement signed right shift.
2006-07-30 02:51:35 +00:00
steve
80f30be9d0
Add support for system functions in continuous assignments.
2006-06-18 04:15:50 +00:00
steve
46d86ad276
Get tail counts right in nested concatenations.
2006-04-22 04:27:36 +00:00
steve
707af782b3
Fix part selects in l-values.
2006-04-16 00:15:43 +00:00
steve
f001d0001a
Add support for generate loops w/ wires and gates.
2006-04-10 00:37:42 +00:00
steve
f4a44df2cc
Support more parameter syntax.
2006-03-18 22:53:38 +00:00
steve
8ff70410ab
Handle multiple part/bi devices connected together.
2006-03-15 05:52:20 +00:00
steve
6f46d12e07
Add support for logic parameters.
2006-03-08 05:29:42 +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
e9bf00dff6
Pad part selects
2005-12-22 15:42:22 +00:00
steve
5cf64dfa70
Include stdint.h if it is present.
2005-12-07 03:43:30 +00:00
steve
4f7e7a2296
Some systems donot have stding.h?
2005-12-05 21:20:55 +00:00
steve
bab70ccbed
Handle indexed l-value to force.
2005-11-26 17:23:17 +00:00
steve
0e044d6684
More precise about r-value width of constants.
2005-11-26 00:35:42 +00:00
steve
35951510c5
Put vec8 and vec4 nets into seperate net classes.
2005-11-25 17:55:26 +00:00
steve
9c8c541f5d
MUX nodes get inputs from nets, not from net inputs,
...
Detect and draw alias nodes to reduce net size and
handle force confusion.
2005-10-12 17:26:17 +00:00
steve
3cdf655c79
force l-values do not support bit/part select.
2005-10-12 17:26:01 +00:00
steve
c75f0a930e
Remove the $ from signal labels. They do not help.
2005-10-11 18:54:10 +00:00
steve
bb3f3c1f46
Remove obsolete vvp_memory_label function.
2005-10-11 18:30:50 +00:00
steve
fb22bcc96b
Remove dead dram_input_from_net and lpm_inputs_a_b
2005-10-10 04:16:13 +00:00
steve
bf8b085159
Clean up compiler warnings.
2005-09-20 18:34:01 +00:00
steve
be73be8c98
Spelling patches from Larry.
2005-09-19 21:45:35 +00:00
steve
d22d88923d
Fix warnings about uninitialized variables.
2005-09-19 20:18:20 +00:00
steve
2729d6cd2e
Include vvp_config.h instead of config.h
2005-09-19 20:17:59 +00:00
steve
c4d8ab8509
Improve loading of part selects when easy.
2005-09-17 04:01:32 +00:00
steve
672aa61ae7
More robust use of precalculated expressions, and
...
Separate lookaside for written variables that can
also be reused.
2005-09-17 01:01:00 +00:00
steve
19a1ae8d4f
Preserve precalculated expressions when possible.
2005-09-15 02:50:13 +00:00
steve
14d79a655e
Better reuse of IVL_EX_SELECT expressions.
2005-09-15 02:49:47 +00:00
steve
9fd16575d9
Support bool expressions and compares handle them optimally.
2005-09-14 02:53:13 +00:00
steve
c39976fbf1
Generate code to handle real valued muxes.
2005-09-01 04:11:37 +00:00
steve
dac11c2468
Handle synthesis of fully packed case statements.
2005-08-27 04:32:08 +00:00
steve
4a8be3db9c
Implement bi-directional part selects.
2005-08-06 17:58:16 +00:00
steve
5bfdd52391
Handle functions with real values.
2005-07-13 04:52:31 +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
66a579dd67
Handle signed display of unsigned signals.
2005-06-18 15:55:21 +00:00
steve
4cc421b3b7
Make functors know their own width.
2005-06-17 03:46:52 +00:00
steve
290c604c62
Fix bit offsets when processing lval concatenation.
2005-06-15 01:33:33 +00:00
steve
cd14ee77ae
Add the assign_v0_d instruction.
2005-06-14 01:44:09 +00:00
steve
2f7ec71a78
Support %force/link
2005-06-02 16:03:47 +00:00
steve
015d280c6a
Handle assignments to part-select l-values.
2005-05-24 02:31:18 +00:00
steve
739a1839ed
Do sign extension of structuran nets.
2005-05-24 01:44:27 +00:00
steve
82be4ab189
Detect bit selects that need special handling.
2005-05-17 20:55:42 +00:00
steve
5a2dd3393f
Skip assign if index is invalid.
2005-05-09 00:38:12 +00:00
steve
7dd0d255a6
Add support for variable part select.
2005-05-08 23:40:14 +00:00
steve
48aa0f0075
Better handle assignment to bit/part select.
2005-05-07 03:16:31 +00:00
steve
df271c9fa3
Link signals that are source of procedural continuous assign.
2005-05-01 22:04:12 +00:00
steve
365cfedd55
Update DFF support to new data flow.
2005-04-24 23:44:01 +00:00
steve
65c7ec00e7
Rework NetRamDq and IVL_LPM_RAM nodes.
2005-04-06 05:29:08 +00:00
steve
d62661257a
Generate the right coes for unconnected UDP port.
2005-04-04 05:29:53 +00:00
steve
d8a456bd67
The indexed set can write a vector, not just a bit.
2005-03-22 05:18:34 +00:00
steve
ca488dff4e
Handle LPM shifts.
2005-03-19 06:23:49 +00:00
steve
23925b636e
vvp.conf files are generated.
2005-03-18 02:57:23 +00:00
steve
53da6e9a33
Add support for LPM_UFUNC user defined functions.
2005-03-18 02:56:03 +00:00
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