Maciej Suminski
6e460a6a3f
Fixed warnings about shifting a negative value
2016-10-14 23:41:11 +01:00
Martin Whitaker
37ecdb4cfb
Stop tgt-vvp from generating .alias records.
...
(partial backport of commit d44c814bab )
Net arrays can be handled by nets directly, instead of creating
.alias records. But keep support for .alias records in vvp. to
maintain backwards compatibility.
2016-09-17 19:49:26 +01:00
Martin Whitaker
d770199550
Add tgt-vvp sorry message for unsupported mixed NB/CA to vector.
2016-05-10 23:02:04 +01:00
Martin Whitaker
72fc3d712d
For SystemVerilog, run variable initialization before main simulation starts.
...
(cherry picked from commit 54feb89bf5 )
2016-04-19 20:41:25 +01:00
Martin Whitaker
6974613bff
Fix for GitHub issue #96 - support mixed constant/variable delays in vvp.
...
If all three rise/fall/decay delay values are constant, we can use
the vvp .delay statement variant that takes three literal numbers.
If not, we have to use the variant that takes three net inputs. If
some of the delay values are constant, we need to create constant
drivers for those delay inputs.
(cherry picked from commit 20104c92c8 )
2016-04-02 20:04:08 +01:00
Martin Whitaker
3b577340ad
Fix for br1001 - connect undriven wand/wor to 'bz in tgt-vvp.
...
(cherry picked from commit dbaf2471f2 )
2016-03-13 16:45:22 +00:00
Martin Whitaker
b551a783e8
Add support for real valued compressed assignment statements in tgt-vvp.
...
(cherry picked from commit a0bee0a76f )
2016-02-23 23:02:23 +00:00
Martin Whitaker
2771abf86a
Fix compressed assignments to concatenations.
...
When loading a lval concatenation, tgt-vvp was loading the elements
in the wrong order for the %concat instruction.
(cherry picked from commit b77d758f19 )
2016-02-23 21:22:03 +00:00
Martin Whitaker
7b7231c417
Fix for br999 - incorrect result from binary comparison.
...
(cherry-picked from master branch)
When a binary (in)equality comparison has a constant left operand,
the tgt-vvp code generator swaps the left and right operands to
allow the cmpi instruction to be used. The code for swapping the
operands was incorrect.
2016-01-07 19:23:36 +00:00
Cary R
643e0a984e
Fix some cppcheck warnings
2015-10-02 09:44:02 -07:00
Stephen Williams
a66361a4f2
Update some copyright dates.
2015-08-17 08:02:51 -07:00
Martin Whitaker
05a52e55e9
Create a BUFZ to drive the 0.0 value onto an undriven real wire.
...
This is needed to allow forced values to propagate correctly.
2015-06-26 00:45:00 +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
Larry Doolittle
2739f83702
Spelling fixes in C and C++ comments
2015-06-04 15:00:29 -07:00
Larry Doolittle
33c651aa00
Spelling fixes in .txt files
2015-05-25 12:52:03 -07:00
Martin Whitaker
cfbc90812b
Enable use of MinGW ANSI stdio routines.
...
Defining __USE_MINGW_ANSI_STDIO=1 provides C99 compatible printf
and scanf routines, which avoids the need for workarounds for the
various failings of the Microsoft C runtime library.
2015-05-10 11:45:42 +01:00
Martin Whitaker
e1ae5020c4
Another sorry message to catch non-constant RHS in procedural CA.
2015-04-25 11:25:33 +01:00
Cary R
02ee3874e7
Space/code cleanup and warn that vvp does not support S/R D-FF
2015-04-20 15:41:44 -07:00
Larry Doolittle
5dc1396eea
Spelling fixes
2015-04-13 11:35:12 -07:00
Cary R
8326fe843b
Update format string to use correct format character
2015-04-08 19:36:33 -07:00
Cary R
1cbc38100e
Update some cppcheck suppression files
2015-04-08 19:36:21 -07:00
Cary R
50b45dac7b
Update queue push front/back code generation
2015-03-06 16:56:22 -08:00
Cary R
feb710a186
Add support for any width 2-state darray objects
2015-02-27 11:43:25 -08:00
Cary R
62abb199d7
Add support for 4-state dynamic arrays
2015-02-26 17:56:49 -08:00
Maciej Suminski
756c9ceccf
ivl: Functions returning a dynamic array may be casted to vector.
2015-02-04 16:02:38 +01:00
Maciej Suminski
8b3667f76e
ivl: Casting vectors to dynamic arrays.
2015-02-04 16:02:38 +01:00
Maciej Suminski
a52242745a
ivl: Casting dynamic arrays to vectors.
2015-02-04 16:02:38 +01:00
Cary R
01ba41afd8
Only skip zero repeat expressions in a concatenation.
2015-02-02 18:15:12 -08:00
Cary R
84c592b068
Fix white space issue
2015-02-02 15:29:25 -08:00
Cary R
bb93a585b6
Generate correct vvp code for zero replication cases
2015-02-02 15:27:57 -08:00
Cary R
b3425d6cf3
Report that 4-state dynamic arrays are not currently supported in vvp
...
Also fix some error code propagation issues.
2015-01-16 18:22:16 -08:00
Cary R
40ae1051d4
Report the vvp only supports a dynamic array of size 8, 16, 32 or 64
2015-01-15 18:18:14 -08:00
Cary R
1ffcd40336
Fix a clear word to be after it has been used
2015-01-14 19:48:24 -08:00
Maciej Suminski
eeaf23041b
vvp: Support for dynamic arrays of logic type.
2015-01-12 11:08:31 +01:00
Martin Whitaker
71c4ea36e8
Pass -v compiler option to vvp in the output file shebang line.
...
Slightly modified version of the patch contributed by Stephan
Böttcheron iverilog-devel.
2014-12-16 21:22:19 +00:00
Martin Whitaker
5df179cd5f
Implement feature request #47 .
...
This causes vvp to evaluate all the input expressions for a user
function call before assigning any of them to the function input
variables. This stops the input variables being overwritten if
the same (non-automatic) function is used in one of the input
expressions.
2014-12-14 21:46:28 +00:00
Cary R
b2d8d41e3f
Fix some cppcheck warnings in tgt-vvp
2014-12-10 16:30:55 -08:00
Cary R
1efa220773
Fix non-blocking assignment to an array error state handling
...
If either the index or part offset expressions generate an undefined
value then the assignment is skipped. This patch reworks the code that
handles the flags used to detect this. For some simple cases a global
flag is not needed, but for other cases one is needed since there are
two expressions that can generate an error and even when there is only
a variable expression this error state needs to be preserved if there
is a variable delay. An undefined delay value defaults to zero and is
not an error.
2014-12-09 17:29:18 -08:00
Stephen Williams
105521b547
Merge branch 'master' into vec4-stack
2014-12-06 08:24:46 -08:00
Cary R
77ebfcacb9
Correctly pass if a darray element is signed or unsigned.
2014-12-05 18:23:02 -08:00
Stephen Williams
409f8c5823
Add the vec4 %subi instruction
2014-12-05 09:45:29 -08:00
Stephen Williams
85c7b07a9b
Implement %cmp/ne and %cmpi/ne
...
These pull in the inversion of the output flags so that they more
efficiently implement != and !==, without %flag_inv instructions.
2014-12-03 11:06:11 -08:00
Stephen Williams
3bd307db85
Expression cast handles size if need be.
2014-12-02 16:54:32 -08:00
Stephen Williams
f287546f49
Fix a %vpi_call call syntax.
2014-12-02 15:28:22 -08:00
Stephen Williams
1645e682f4
Generate more efficient vec4-stack code for real le compare.
2014-12-02 14:53:01 -08:00
Stephen Williams
58fb80aec4
Implement and put to use the %muli instruction.
2014-12-02 12:46:17 -08:00
Stephen Williams
38f277d81b
Merge branch 'master' into vec4-stack
...
Conflicts:
vvp/array.cc
vvp/vthread.cc
2014-12-02 11:21:58 -08:00
Maciej Suminski
b12e00d875
ivl: String to vector casting.
2014-11-27 17:36:23 +01:00
Stephen Williams
663c79d4af
Add the %cmp/e instructions, and put them to use.
...
When testing for == and ===, there is no need to also calculate <,
so it makes sense to have a special instruction for these cases.
2014-11-21 16:45:27 -08:00
Stephen Williams
b96f04ccce
Implement the %parti/X instructions
...
This allows part select with constant base to be handled optimally.
Also update some more instructions to more optimally work with
the vec4 stack.
2014-11-20 18:43:24 -08:00