Cary R
436e2fca13
Add ifnone functionality.
...
This patch adds ifnone functionality. It does not produce an
error when both an ifnone and an unconditional simple module
path are given. For this case the ifnone delays are ignored.
2008-04-29 11:55:32 -07:00
Stephen Williams
32a2e7aa39
Fix lexical scopes within case-generate alternatives.
...
Case-generate alternatives create sub-scopes that need to be scanned
by the scope scanner in order to get function definitions etc. that
are defined lexically within generated scopes.
2008-03-02 21:04:04 -08:00
Larry Doolittle
d9ac146b8f
Spelling fixes
...
only comments and documentation
some punctuation and capitalization for good measure
Changelogs are purposefully untouched
2008-01-29 20:24:24 -08:00
Stephen Williams
685095b229
Support delay of user function output
...
When used in continuous assignments, user defined functions may have
delayed output. Handle that by generating the proper .delay node when
needed to delay the output of a .ufunc node.
2008-01-28 21:29:03 -08:00
Larry Doolittle
47d65034db
Spelling fixes
...
mostly comments, but includes some identifiers and message text
2008-01-27 18:18:13 -08:00
Cary R
e18b64768e
Add missing check target in some Makefile.in files.
...
This patch adds a check target to the Makefile.in files in the
tgt-null, tgt-stub and vpi directories.
2008-01-11 21:52:51 -08:00
Cary R
77061faa5c
Add vpiFile and vpiLineNo for system functions.
...
Add the vpiFile and vpiLineNo properties to system functions.
Most other objects have stubs that return "N/A"/0. Interactive
functions (called from the debugger) use <interactive> for the
file name.
2008-01-01 17:27:03 -08:00
Stephen Williams
58d3d2f265
Better track signals marked local.
2007-12-27 16:47:01 -07:00
Stephen Williams
08752453b4
File line information for expressions
...
Add ivl_target support for file and line numbers of expressions.
2007-12-22 17:19:45 -05:00
Stephen Williams
1db19b8703
Make statement file lineno available to targets.
...
Make the Verilog file/lineno of statements available to loadable
code generators. Make sure the information is properly set for
system task calls.
2007-12-22 09:31:24 -05:00
Larry Doolittle
752cf21790
Warnings and spelling fixes.
...
Correct a variety of spelling errors, and eliminate
a variety of compile time warnings.
2007-12-17 17:42:09 -08: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
Stephen Williams
d587499276
test_width method for functions in expressions
...
In expressions, user defined functions have a clearly defined
width and the test_width expression needs to express that. Note
that the $signed/$unsigned functions are special and magical.
Signed-off-by: Stephen Williams <steve@icarus.com>
2007-10-01 20:38:20 -07:00
Stephen Williams
bbf3116945
Merge branch 'master' of steve-icarus@icarus.com:git/verilog
2007-09-28 18:22:44 -07:00
Stephen Williams
5bb936a226
Fix addressing of variable words.
...
Variable word addresses are not to be adjusted by the bit select
of the vector direction. That is a holdover from when arrays were
stored as bit vectors.
Signed-off-by: Stephen Williams <steve@icarus.com>
2007-09-28 18:22:17 -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
8fe3cc5318
Add missing primitives and fix time units error in tgt-stub.
...
Add code to handle all the primitives currently defined and
fixed a power of ten error in the time units display (it is
either 10^{units} or 1e{units}, but not 10e{units}).
2007-09-06 18:53:05 -07:00
steve
16ec4cb685
displan pmos gates.
2007-06-12 02:23:40 +00:00
steve
890f592eec
Fix detect of signal that is an array.
2007-04-21 03:20:47 +00:00
steve
d883979fd8
Seperate arrayness from word count
2007-04-02 01:12:34 +00:00
steve
760f2182ba
Support signed function return values.
2007-03-06 05:22:49 +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
6804732b9e
Spelling fixes (larry doolittle)
2007-02-26 19:49:48 +00:00
steve
1f54f128c1
Handle unary minus of real valued expressions.
2007-02-20 05:58:36 +00:00
steve
0137832003
Include types for ternary and string in dump.
2007-02-14 05:57:51 +00:00
steve
3fd80b09f0
Administrative/Makefile fixes, mostly for windows. (Cary R.)
2007-02-06 05:07:31 +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
a3da90aa4a
Dump nand logic.
2006-11-28 05:56:41 +00:00
steve
841378426f
Updates for Cygwin portability (pr1585922)
2006-10-30 22:45:36 +00:00
steve
0edb5a7547
Basic support for specify timing.
2006-09-23 04:57:19 +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
a19efe181b
Install stub target.
2006-05-01 18:48:24 +00:00
steve
10f8c66f4a
Dump *all* the reduction operator gates.
2006-04-30 05:16:53 +00:00
steve
a702f99c04
Dump function type as string.
2006-04-27 04:26:38 +00:00
steve
6a74a090f0
Configure for stub.
2006-04-10 03:07:07 +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
c071cc1bbe
More detailed check of binary expressions.
2005-12-22 15:38:33 +00:00
steve
3f108f08ed
Dump IVL_ST_DELAYX statements.
2005-11-20 15:58:53 +00:00
steve
bf8b085159
Clean up compiler warnings.
2005-09-20 18:34:01 +00:00
steve
9fd16575d9
Support bool expressions and compares handle them optimally.
2005-09-14 02:53:13 +00:00
steve
4a8be3db9c
Implement bi-directional part selects.
2005-08-06 17:58:16 +00:00
steve
9cae53988a
Dump function call expression node.
2005-07-14 16:15:13 +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
6bf7556d65
Check width of part select based on direction.
2005-06-26 18:09:24 +00:00
steve
af5f713c0f
Dump delays for logic devices.
2005-06-13 22:20:38 +00:00
steve
739a1839ed
Do sign extension of structuran nets.
2005-05-24 01:44:27 +00:00
steve
28168e0f57
Fixup structural GT comparators.
2005-05-18 03:46:01 +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
6244dc1194
Make logic aware of strength.
2005-04-13 06:35:11 +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
8184dfaed8
Handle wide operands to logical AND.
2005-03-19 06:59:53 +00:00
steve
ca488dff4e
Handle LPM shifts.
2005-03-19 06:23:49 +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
53af2949b4
Generate code for new form of memory ports.
2005-03-09 04:53:40 +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
257e1f9516
Support shifts and divide.
2005-02-19 02:43:38 +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
d00e3fc9a9
Check IVL_LPM_MUX configuration.
2005-02-12 22:53:41 +00:00
steve
6b7b82758a
Check nexus widths of IVL_LO_ nodes.
2005-02-12 06:17:43 +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
68a788221e
Support LPM_SUB
2005-01-30 05:09:04 +00:00
steve
609b6a7baa
Netlist boolean expressions generate gate vectors.
2005-01-29 18:46:18 +00:00
steve
7625a6c3e7
Check width of constant attached to nexus.
2005-01-29 16:47:52 +00:00
steve
a5b431ad20
Show the lpm_mult device.
2005-01-28 05:36:18 +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
14f557e6f4
Check widths of ternary expressions.
2005-01-24 05:05:25 +00:00
steve
cb4e0d4724
stub dump signed flags of magnitude compare.
2005-01-22 17:36:59 +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
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
59566158c4
Better detail on event trigger and wait statements.
2004-12-18 18:55:08 +00:00
steve
0193daa436
Display the release statement details.
2004-12-15 17:11:13 +00:00
steve
7973dad9f5
Arrange statement dumping in new source files.
2004-12-12 18:15:06 +00:00
steve
527ddea811
Add stub conf files to cvs.
2004-12-11 04:22:35 +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
e45230061e
Dump tri0 and tri1 nets.
2004-09-25 01:57:33 +00:00
steve
fca2e64808
Dump variable type of system function.
2004-06-30 03:05:04 +00:00
steve
3dbc07f34d
Implement signed divide and signed right shift in nets.
2004-06-30 02:16:26 +00:00
steve
b3529d8593
Help system function signedness survive elaboration.
2004-06-17 16:06:18 +00:00
steve
bdc6cb8723
Dump NE LPM device.
2004-06-16 16:22:04 +00:00
steve
8188c4c690
Makefile cleanup.
2004-02-10 19:25:00 +00:00
steve
973b4d9bcb
Pre-gcc3 compile error.
2003-12-03 04:27:10 +00:00
steve
e56b77a43f
Add support for wait on list of named events.
2003-12-03 02:46:23 +00:00
steve
9967bfcbfd
Handle erroneous event lists.
2003-12-03 01:54:07 +00:00
steve
ec07674d40
Fix Makefiles to support read-only source directory.
2003-08-22 04:27:10 +00:00
steve
bfe31e22bf
Start handling pad of expressions in code generators.
2003-07-26 03:34:42 +00:00
steve
bad861dba3
Module attributes make it al the way to ivl_target.
2003-06-23 01:25:44 +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
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
258013f99f
Raw dump of double values for testing purposes.
2003-03-07 06:04:58 +00:00
steve
feee40603c
Makefile cleanups to better support concurrent make.
2003-02-27 22:13:22 +00:00
steve
d8706979ae
Eliminate use of ivl_lpm_name.
2003-02-25 03:39:53 +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
b4e8ea5a0c
Install shared objects as programs, not data.
2002-11-05 02:14:41 +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
9c5ab36a8b
Fix switch case warnings.
2002-09-18 03:33:10 +00:00
steve
75801a12e3
Display FF enables.
2002-09-16 00:28:25 +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
a265ba2162
dump NOT gates.
2002-07-28 23:57:22 +00:00
steve
4bac5c06ba
Dump l-value memory indices.
2002-06-05 03:43:14 +00:00
steve
19d817503d
Offset lvalue index expressions.
2002-05-29 22:05:54 +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
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
c3be17ccae
Dump parametres for system functions.
2002-04-27 04:20:52 +00:00
steve
74eb544962
Dump bit select expressions.
2002-04-25 05:03:11 +00:00
steve
96213fe0ac
Keep delays applied to BUFZ devices.
2002-04-22 03:15:25 +00:00
steve
4502da608d
Dump the while loop expression.
2002-04-22 02:40:32 +00:00
steve
e630ecdb0d
Ternary expressions can be signed.
2002-04-14 19:02:34 +00:00
steve
e95a902b3d
Show unary subexpressions.
2002-04-14 02:44:53 +00:00
steve
da09d4c6e6
The IVL_SIT_WIRE type does not exist, it is a
...
synonym for IVL_SIT_TRI.
2001-12-15 02:13:17 +00:00
steve
54bb59ae99
Support compile on MacosX 10.1.1 (Timothy J. Wood)
2001-11-17 17:57:58 +00:00
steve
cbd501b865
Fix some Cygwin DLL handling. (Venkat Iyer)
2001-09-30 16:45:10 +00:00
steve
b825f8d2b2
Create a config.h.in file to hold all the config
...
junk, and support gcc 3.0. (Stephan Boettcher)
2001-07-25 03:10:48 +00:00
steve
260b4166c1
Recognize supply signal types.
2001-07-22 21:30:56 +00:00
steve
bcaa122fb9
handle left shifter in dll output.
2001-07-04 22:59:25 +00:00
steve
ef9c7c4a30
Print memory l-values.
2001-07-01 23:44:19 +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
660fd7c1d4
Update the mingw build to not require cygwin files.
2001-05-22 02:14:47 +00:00
steve
de8c725890
Mingw32 support (Venkat Iyer)
2001-05-20 15:09:39 +00:00
steve
8f88525819
dll build of many probes forgot to index the probe.
2001-05-03 01:52:45 +00:00
steve
eb71c70c99
Carry drive strengths in the ivl_nexus_ptr_t, and
...
handle constant devices in targets.'
2001-04-29 23:17:38 +00:00
steve
73c4893ef7
Implement simple MUXZ for ?: operators.
2001-04-26 05:12:02 +00:00
steve
898639d7bf
Get signed compares working correctly in vvp.
2001-04-05 01:12:27 +00:00
steve
19c84ff9a2
Support non-blocking assignments.
2001-04-03 04:50:37 +00:00
steve
f40d006c26
Generate code for task calls.
2001-04-02 02:28:12 +00:00
steve
d25690cc8e
Redesign event information to support arbitrary edge combining.
2001-04-01 01:48:21 +00:00
steve
b3a3b888d8
Generate vvp code for case statements.
2001-03-31 17:36:38 +00:00
steve
b36b6d0ca0
Generate code for fork/join statements.
2001-03-30 05:49:52 +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
cf3f1b38c3
ivl_target header search path fixes.
2001-02-07 22:21:59 +00:00
steve
a00924089d
Pass scope type information to the target module.
2001-01-15 00:47:01 +00:00
steve
66716f5101
Add client data pointer for scope and process scanners.
2001-01-15 00:05:39 +00:00
steve
e836bc951d
Detect -mdll support in Cygwin.
2000-12-14 23:38:04 +00:00
steve
3b9a60414e
Make signal attributes available to ivl_target API.
2000-12-05 06:29:33 +00:00
steve
0ca9b2736b
flip-flop pins for ivl_target API.
2000-11-12 17:47:29 +00:00
steve
197ed46b26
configure bindir and libdir
2000-11-11 00:48:35 +00:00
steve
a8da692540
Add support for the t-dll backend grabing flip-flops.
2000-11-11 00:03:36 +00:00
steve
d6efae4bdd
API for concatenation expressions.
2000-10-28 22:32:34 +00:00
steve
5b65f15df4
stub for the concat operator.
2000-10-28 17:55:03 +00:00
steve
b8fe10d27d
Get target signal from nexus_ptr.
2000-10-25 05:41:24 +00:00
steve
add2ae16fa
Reduce the target entry points to the target_design.
2000-10-21 16:49:45 +00:00
steve
e10679633d
Add ivl_lval_t and support for assignment l-values.
2000-10-18 20:04:39 +00:00
steve
90ae46476c
Makefile patches to support target loading under cygwin.
2000-10-15 21:02:08 +00:00
steve
2dedd6c067
Scopes and processes are accessible randomly from
...
the design, and signals and logic are accessible
from scopes. Remove the target calls that are no
longer needed.
Add the ivl_nexus_ptr_t and the means to get at
them from nexus objects.
Give names to methods that manipulate the ivl_design_t
type more consistent names.
2000-10-15 04:46:23 +00:00
steve
c9bcda147e
Missing stream in call to fprintf.
2000-10-08 05:00:04 +00:00
steve
76e2c509d7
Put logic devices into scopes.
2000-10-07 19:45:42 +00:00
steve
6f69773c57
ivl_target updates, including more complete
...
handling of ivl_nexus_t objects. Much reduced
dependencies on pointers to netlist objects.
2000-10-06 23:46:50 +00:00
steve
41f3ba65a1
xor and constant devices.
2000-10-05 05:03:01 +00:00
steve
9680de25cd
Fix the clean target and excess dependencies.
2000-10-04 17:08:31 +00:00
steve
d6b43519a8
Add EX_NUMBER and ST_TRIGGER to dll-api.
2000-09-26 00:30:07 +00:00
steve
e8bb53e2ea
API access to signal type and port type.
2000-09-24 15:46:00 +00:00
steve
36cc374ec9
Add support for signal expressions.
2000-09-24 02:21:53 +00:00
steve
48ff3590bc
Access to the name of a system task call.
2000-09-22 03:58:30 +00:00
steve
39cf6bd164
Introduce the means to get statement types.
2000-09-19 04:15:27 +00:00
steve
effc84c46d
Get the structure for ivl_statement_t worked out.
2000-09-18 01:24:32 +00:00
steve
ff32325d07
t-dll iterates signals, and passes them to the
...
target module.
Some of NetObj should return char*, not string.
2000-08-27 15:51:50 +00:00
steve
8876cda37f
Get at gate information for ivl_target interface.
2000-08-26 00:54:03 +00:00
steve
d0fc6d515d
Add ivl_target support for logic gates, and
...
make the interface more accessible.
2000-08-20 04:13:56 +00:00
steve
3cb666dd2f
Add target calls for scope, events and logic.
2000-08-19 18:12:42 +00:00
steve
9abd84952b
add th t-dll functions for net_const, net_bufz and processes.
2000-08-14 04:39:56 +00:00
steve
566aad9e15
Start stub for loadable targets.
2000-08-12 16:34:37 +00:00