Cary R
5e8a1bd8cc
Add power operator (**) for real values in a continuous assignment.
...
This patch adds the power operator for real values in a continuous
assignment.
2008-01-31 16:48:52 -08:00
Cary R
10d25d2b88
Support delays for all operators in a continuous assignments.
...
Previously only the logical operators (~, &, |, ^, etc.) supported a
delayed value in a continuous assignment. This patch should extend this
to all operators. An extensive check of real values was done. The same
will be done shortly for bit based nets.
Checks for constructs currently unsupported in continuous assignments
provide a more explicit message (** operator, real user functions,
{!, && and ||} operators with a real argument).
2008-01-21 18:21:31 -08:00
Larry Doolittle
8ea3b6b0b8
header includes for gcc-4.3 compatibility
...
minimal changes required to build without error
tested with gcc-4.3 (Debian 4.3-20071130-1) 4.3.0 20071130 (experimental)
2008-01-04 16:14:44 -08:00
Cary R
c866be421e
Add vpiFile and vpiLineNo to .sfunc (system function in cont. assign)
...
This patch add the vpiFile and vpiLineNo properties to system
functions that are called from continuous assignments.
2008-01-01 17:33:08 -08:00
Stephen Williams
fea1febf54
Generate explicit locals in the vvp target.
...
With this change, local symbols are not emitted in the vvp target,
but are marked as local. When thus marked, the vvp run time does not
offfer any VPI access and the signals (net or var) are effectively
invisible.
2007-12-27 18:34:12 -07:00
Stephen Williams
7975e14b5c
LineInfo uses perm_string for path.
...
Rework the handling of file names to use a perm_string heap to hold
the file names, instead of the custom file name heap in the lexor.
Also rename the get_line to get_fileline to reflect its real duties.
This latter chage touched a lot of files.
2007-12-20 12:31:01 -05:00
Stephen Williams
0d9ed65e8c
Give delay paths scope.
...
Delay paths need a scope. This helps the code generators bind the
modpaths to the correct scope. This patch doesn't actually make use
of the information, it just makes it available to code generators.
Signed-off-by: Stephen Williams <steve@icarus.com>
2007-10-31 21:39:29 -07:00
Cary R
3258b7726b
Pass local scope precision from compiler to vvp/etc.
...
This patch adds ivl_scope_time_precision() to the compiler which can
be used to extract the local scope precision. tgt-stub and tgt-vvp
have been modified to use this new function and output a value that
is appropriate. The vvp runtime has been altered to use this new
data which is accessed with the vpip_time_precision_from_handle()
function. vpiTimePrecision uses this function to return the correct
precision.
2007-09-28 15:08:02 -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
steve
c7d97f4146
Properly evaluate scope path expressions.
2007-06-02 03:42:12 +00:00
steve
d883979fd8
Seperate arrayness from word count
2007-04-02 01:12:34 +00:00
steve
8856c07d88
More efficient allocate of ivl_nexus_t objects.
2007-03-26 20:32:47 +00:00
steve
fe8da0bf14
Remove pretense of general use for t_cookie.
2007-03-26 18:17:50 +00:00
steve
fe02214fcc
do not calculate nexus name unless needed.
2007-03-26 16:51:48 +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
d175eb17f1
Clarify the use of ivl_scope_def for not-functions.
2007-01-29 01:52:51 +00:00
steve
6f3ddce7c4
Dead code for memories in scopes.
2007-01-17 05:00:12 +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
21522c90bc
Process delay paths in second path over signals.
2006-11-10 05:44:44 +00:00
steve
2a8b960b06
More detailed internal error message.
2006-10-15 03:25:57 +00:00
steve
7e3ea2ffe8
Allow specparams as constants in expressions.
2006-09-28 00:29:49 +00:00
steve
0edb5a7547
Basic support for specify timing.
2006-09-23 04:57:19 +00:00
steve
80f30be9d0
Add support for system functions in continuous assignments.
2006-06-18 04:15:50 +00:00
steve
f001d0001a
Add support for generate loops w/ wires and gates.
2006-04-10 00:37:42 +00:00
steve
58f182a159
Node delays can be more general expressions in structural contexts.
2006-01-02 05:33:19 +00:00
steve
4a8be3db9c
Implement bi-directional part selects.
2005-08-06 17:58:16 +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
c46f978dbb
Fix uninitialzied attr pointers for UDP devices.
2005-06-26 18:08:46 +00:00
steve
739a1839ed
Do sign extension of structuran nets.
2005-05-24 01:44:27 +00:00
steve
7dd0d255a6
Add support for variable part select.
2005-05-08 23:40:14 +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
236ff2b278
Clean up handle of UDPs.
2005-04-01 06:04:30 +00:00
steve
53da6e9a33
Add support for LPM_UFUNC user defined functions.
2005-03-18 02:56:03 +00:00
steve
ab1ca54df2
Update support for LPM_MOD.
2005-03-12 06:43:35 +00:00
steve
1c5b4881d7
Handle case inequality in netlists.
2005-03-09 05:52:03 +00:00
steve
257e1f9516
Support shifts and divide.
2005-02-19 02:43:38 +00:00
steve
1d7235b4f1
Replace supply nets with wires connected to pullup/down supply devices.
2005-02-13 01:15:07 +00:00
steve
d74177634c
Restructure NetMux devices to pass vectors.
...
Generate NetMux devices from ternary expressions,
Reduce NetMux devices to bufif when appropriate.
2005-02-12 06:25:40 +00:00
steve
ee5bb5fcaf
Add the NetRepeat node, and code generator support.
2005-02-08 00:12:36 +00:00
steve
97f83ffbe3
laborate reduction gates into LPM_RED_ nodes.
2005-02-03 04:56:20 +00:00
steve
99ace10774
Simplified NetMult and IVL_LPM_MULT.
2005-01-28 05:39:33 +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
9e94afe399
Use PartSelect/PV and VP to handle part selects through ports.
2005-01-09 20:16:00 +00:00
steve
8f2d679c8a
Unify elaboration of l-values for all proceedural assignments,
...
including assing, cassign and force.
Generate NetConcat devices for gate outputs that feed into a
vector results. Use this to hande gate arrays. Also let gate
arrays handle vectors of gates when the outputs allow for it.
2004-12-29 23:55:43 +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
3dbc07f34d
Implement signed divide and signed right shift in nets.
2004-06-30 02:16:26 +00:00
steve
177b6ffb6a
Addtrbute keys are perm_strings.
2004-02-20 18:53:33 +00:00
steve
1295058e5d
parameter keys are per_strings.
2004-02-20 06:22:56 +00:00
steve
536068bdfb
Memory and Event names use perm_string.
2004-02-19 06:57:10 +00:00
steve
27af95d402
Use perm_strings for named langiage items.
2004-02-18 17:11:54 +00:00
steve
d4525ddc16
Some systems dlsym requires leading _ or not on whim.
2003-12-12 05:43:08 +00:00
steve
be0b42f210
Warning about sprintf.
2003-11-26 01:37:38 +00:00
steve
12033d7bd4
Move the DLL= flag to target config files.
2003-11-13 05:55:33 +00:00
steve
43f28b53a3
Design::get_flag returns const char* instead of string.
2003-11-10 20:59:03 +00:00
steve
7521aa83f8
Pass FF synchronous set values to code generator.
2003-09-03 23:33:29 +00:00
steve
0a012c5d90
Fix uninitialized sset member.
2003-08-22 04:14:33 +00:00
steve
e561819179
Add synthesis support for synchronous reset.
2003-08-15 02:23:52 +00:00
steve
d653a7e88d
Add support for triand and trior.
2003-07-30 01:13:28 +00:00
steve
31b1fb4ec4
Watch out for moving nexus_ptr while adding pins to nexus.
2003-07-26 04:06:58 +00:00
steve
77da147629
Fix some enumeration warnings.
2003-07-05 20:42:08 +00:00
steve
21ff80075a
Various warnings fixed.
2003-06-24 01:38:02 +00:00
steve
bad861dba3
Module attributes make it al the way to ivl_target.
2003-06-23 01:25:44 +00:00
steve
2321df4bfc
Remove short int restrictions from vvp opcodes. (part 2)
2003-06-17 21:28:59 +00:00
steve
2356741169
Clear pin pointers if pin is not connected.
2003-05-13 16:30:39 +00:00
steve
3bd08e6212
Allow primitives to hvae unconnected input ports.
2003-05-13 01:56:15 +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
d18934d444
Sign extend NetMult inputs if result is signed.
2003-03-29 05:51:25 +00:00
steve
1222153cdf
Keep parameter constants for the ivl_target API.
2003-03-10 23:40:53 +00:00
steve
22d392a75c
Obsolete the ivl_event_name function.
2003-03-06 01:24:37 +00:00
steve
badad63ab4
All NetObj objects have lex_string base names.
2003-03-06 00:28:41 +00:00
steve
486274cfa1
Scope names stored only as basename.
2003-03-03 02:22:41 +00:00
steve
e941e7e805
Spelling fixes.
2003-01-30 16:23:07 +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
c3a1a9514f
Assert some task definition sanity.
2003-01-16 21:43:52 +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
a9dfef0f55
Fix the call to FormatMessage under Windows.
2002-11-05 02:12:35 +00:00
steve
0cc8396244
Cast for gcc convenience.
2002-11-03 22:44:19 +00:00
steve
6a1e3f7e27
Slightly more verbose load fail message.
2002-11-03 20:47:23 +00:00
steve
9ce2806710
Fix synth2 handling of aset/aclr signals where
...
flip-flops are split by begin-end blocks.
2002-10-23 01:45:24 +00:00
steve
166621bcb3
Generate vvp code for asynch set/reset of NetFF.
2002-09-26 03:18:04 +00:00
steve
52bf4e613f
conditional ident string using autoconfig.
2002-08-12 01:34:58 +00:00
steve
693e9e5ad0
Store only the base name of memories.
2002-08-05 04:18:45 +00:00
steve
4e753a2c15
dll uses StringHeap for named items.
2002-08-04 19:13:16 +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
45382144c3
Verbose messages.
2002-07-24 16:21:52 +00:00
steve
2478d6f5d3
Set ivl_target delays for case compare logic.
2002-07-22 21:07:40 +00:00
steve
301040a67a
Avoid emitting to vvp local net symbols.
2002-07-05 21:26:17 +00:00
steve
9fc4e1eddd
Cache calculated driven value.
2002-06-25 01:33:22 +00:00
steve
58c2e12507
Make link_drive_constant cache its results in
...
the Nexus, to improve cprop performance.
2002-06-24 01:49:38 +00:00
steve
5eca5d9948
Carry integerness throughout the compilation.
2002-06-21 04:59:35 +00:00
steve
df0b81d94d
Generate runtime code to normalize indices.
2002-06-16 19:19:16 +00:00
steve
bfad382fd1
Carry Verilog 2001 attributes with processes,
...
all the way through to the ivl_target API.
Divide signal reference counts between rval
and lval references.
2002-05-26 01:39:02 +00:00
steve
700887d657
Verilog 2001 attriubtes on nets/wires.
2002-05-24 04:36:23 +00:00
steve
e6c0629626
Add language support for Verilog-2001 attribute
...
syntax. Hook this support into existing $attribute
handling, and add number and void value types.
Add to the ivl_target API new functions for access
of complex attributes attached to gates.
2002-05-23 03:08:50 +00:00
steve
96213fe0ac
Keep delays applied to BUFZ devices.
2002-04-22 03:15:25 +00:00