Cary R
40558160e7
Add support for bit vector system function in vpi
2018-08-30 22:31:15 -07:00
Cary R
ca01385797
The synth check needs to check the task scope
2017-12-28 08:50:32 -08:00
Cary R
932241ee87
Check system/user tasks for always_comb/ff/latch synth.
2017-12-27 23:08:32 -08:00
Cary R
7d11fa662e
Fix space issues
2017-12-27 14:51:56 -08:00
Cary R
2bbd077dc9
Add some synthesis checks for the always_comb/ff/latch blocks
2017-12-27 14:51:17 -08:00
Cary R
f17992bcd0
Report the lines that have delay or event control in an always_comb/ff/latch process
2017-12-06 00:22:43 -08:00
Cary R
39c14edb76
The delay for a join_any and join_none is different than join
2017-12-05 21:49:52 -08:00
Cary R
5853e32f82
Fix some cppcheck warning issues
2016-09-13 23:45:25 -07:00
Martin Whitaker
d496b095ff
Fix vector width calculation for multi-dimensional packed arrays.
2016-07-09 17:10:22 +01:00
Johann Klammer
c92b630728
NetLatch class
2016-03-11 23:11:54 +00:00
Martin Whitaker
5286fb858d
Synthesis rework.
...
Synthesis could only handle relatively simple conditional constructs.
This rework aims to make it handle anything the user can throw at it
(or output a sensible message as to why it can't).
2016-02-21 00:00:39 +00:00
Stephen Williams
da9f7878bc
Fix minor uninitialized memory access.
2015-10-17 17:06:12 -07:00
Martin Whitaker
5dc8edef84
Fix for br991 - compiler crashes due to null statements.
...
The reported problem was caused by a null statement in a case statement,
which caused the check for an infinite loop to fail. Further testing
exposed more problems with null statements in loop statements - these
caused crashes earlier in elaboration.
2015-08-17 21:52:31 +01:00
Martin Whitaker
b242663cae
Support negedge flip-flops in synthesis and in vvp.
...
Also extend the support for FF asynchronous set values to vvp and
fix the dff functor in vvp to correctly model asynchronous set/clr
behaviour.
2015-06-13 16:47:57 +01:00
Stephen Williams
e8b8fcba57
Support declaring queue variables all the way to vvp.
...
Nothing actually useful happens here, but the declarations
are functional.
2014-08-21 16:44:45 -07:00
Stephen Williams
d5fb0f4344
Handle some tricky conditions assignments to parts.
...
When for example assigning to foo[<x>] within a contitional, and
doing synthesis, we need to create a NetSubstitute device to manage
the l-value bit selects.
2014-07-14 16:46:58 -07:00
Stephen Williams
c1e533d484
Add some debug convenience functions.
2014-07-14 16:46:57 -07:00
Stephen Williams
f8dc430fe5
Add synthesis support for casez statements.
...
This generates an EQZ LPM device that carries the case-z-ness to
the code generator.
Also add to the vvp code generator support for the EQZ device so
that the synthesis results can be simulated.
Account for the wildcard devices in the sizer.
2014-06-13 18:01:41 -07:00
Stephen Williams
020e280a98
nodangle functor accounts for NexusSet links
...
In a design, there may be lingering NexusSet objects, or the
nodangle may itself use NexusSet objects. This creates links,
and this should not confuse the functor.
While we are at it, clean up some handling of events structures.
2014-05-08 15:05:09 -07:00
Stephen Williams
be0c61051d
Add synthesis of for-loops
...
This required keeping for-loops as actual things through the
netlist form so that the synthesizer can get at and understand
the parts of the for-loop. This may improve vvp code generation
in the future, but for now continue to present to the vvp code
generation the block-while form.
2014-05-08 15:05:08 -07:00
Stephen Williams
40b36337e2
Fix some bugs with packed array dimensions.
...
The netparray_t::slice_dimensions bug was the most insidious and
caused all manner of confusion. Also fix some other packed array
and unpacked array (and mixed) indexing calculations.
2014-04-06 08:40:10 -07:00
Stephen Williams
0accab6ec4
Handle non-overlapping assignments to unpacked arrays.
2014-04-06 08:40:09 -07:00
Stephen Williams
0be577cc44
Allow some behavioral assignments to unresolved wires.
...
If the l-value is an unresolved wire, then elaboration can allow
the assignment as long as it is to bits that are not otherwise
driven. Handle this in some simple cases.
2014-02-02 11:08:43 -08:00
Larry Doolittle
3e95966d70
More spelling fixes
...
Mostly comments
Changs "initilzers" in a string visible with debug_elaborate.
Includes a few British->American changes in the root directory only.
2014-01-30 16:43:17 -08:00
Larry Doolittle
be17bfc0e9
Spelling fixes
...
Mostly comments.
One user-visible string ("Evalutated to ") changed in the debug_eval_tree case.
2014-01-30 15:34:20 -08:00
Martin Whitaker
d291e2b23d
Fix errors in constant propagation.
...
Ensure undriven, multiply-driven, and forced nets are correctly handled
by the constant propagation optimisation pass.
2013-10-26 23:49:43 +01:00
Stephen Williams
2355e1ed8e
Clean up some NetNet variable type handling.
2013-10-19 15:34:14 -07:00
Stephen Williams
7bc94d7810
Support functions that return void.
2013-09-20 20:44:57 -07:00
Stephen Williams
16414f921f
Handle default arguments in class new functions.
2013-09-20 20:44:56 -07:00
Cary R
d8f945be23
Add support for SV do/while
2013-09-16 20:02:09 -07:00
Stephen Williams
1abf4f1aa1
Rework synchronous statement synthesis.
...
This changes the flow of the NetProc::synth_sync method, and
implements the NetBlock::synth_sync better.
2013-08-25 12:27:57 -07:00
Cary R
032f12af45
Fix some sign information in the CA code.
2013-07-29 10:26:49 -07:00
Stephen Williams
20ee350601
Generalize user defined function return type handling.
...
I'm gonna need functions to return class objects, so generalize
the output types of user defined functions.
2013-04-20 16:38:35 -07:00
Stephen Williams
17330a3073
Elaborate class task and function methods.
...
The parse of class methods already works, this patch forms
the methods into their own scopes, and elaborates those scopes.
The "this"
2013-03-24 15:12:35 -07:00
Stephen Williams
751587e112
PV-to-concat belnding should use a strength-aware concat.
2013-02-02 10:44:16 -08:00
Stephen Williams
679ef3a380
Collapse concatenation of constants into concatenated constant.
2012-12-20 11:02:29 -08:00
Stephen Williams
367d7bf94b
Blend NetPartSelect(PV) objects into NetConcat
...
If a signal s driven by multiple non-overlapping NetPartSelect(PV)
objects, then combine them into a single NetConcat object. This
eliminates the need for resolvers in the target.
2012-12-19 19:01:22 -08:00
Stephen Williams
318a4033b8
Flesh out class type elaboration
...
Add properties to the classes, and elaborate expressions that
have class properties. Describe class object property references
all the way down to the stub target.
2012-12-10 19:20:02 -08:00
Cary R
15fb58f8e4
Remove some cppcheck warnings, etc.
2012-11-12 18:15:25 -08:00
Stephen Williams
a2d980540d
Get some type information to the "new" expression for darrays.
2012-10-14 17:16:47 -07:00
Stephen Williams
914ebeca4a
Some rework to allow for nested packed types.
...
This also simplifies the NetNet set of contructors and generalizes
the types that are supported, especially packed types.
2012-10-14 17:16:47 -07:00
Stephen Williams
4e76912331
ivl_target access to type information.
2012-10-14 17:16:47 -07:00
Stephen Williams
494dc876a5
Move net vector properties to netvector_t object.
2012-10-14 17:16:47 -07:00
Stephen Williams
92313654ec
Rework the way vectors are represented in NetNet objects.
2012-10-14 17:16:47 -07:00
Cary R
5347217b56
A signal can be an enumeration variable.
...
An enumeration variable can be a R-value in an enumeration assignment so
pass on this attribute.
2012-10-10 18:28:21 -07:00
Stephen Williams
0bdabab4fb
Rework packed dimensions handling
...
Make packed structs more obviously parts of a vector.
Handle arrays of structs in certain cases.
2012-09-03 16:00:10 -07:00
Stephen Williams
b4cc9d14a5
Handle packed arrays of packed struct in l-value expressions.
2012-09-03 16:00:09 -07:00
Stephen Williams
3d9ed1f0f8
Clean up PWire handling of wire data type. / Reword packed type handling
2012-09-03 16:00:09 -07:00
Arun Persaud
f5aafc32f9
updated FSF-address
2012-08-29 10:12:10 -07:00
Cary R
7ce8a9b01c
Fix some cppcheck warnings in the main directory
2012-08-08 11:28:20 -07:00