Martin Whitaker
20104c92c8
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.
2016-04-02 19:55:56 +01:00
Martin Whitaker
54feb89bf5
For SystemVerilog, run variable initialization before main simulation starts.
2016-03-19 13:46:09 +00:00
Martin Whitaker
dbaf2471f2
Fix for br1001 - connect undriven wand/wor to 'bz in tgt-vvp.
2016-03-13 16:38:55 +00:00
Johann Klammer
d7736d7eba
latch for vvp output
2016-03-11 23:44:06 +00:00
Stephen Williams
9a7f31c728
Functions that return strings pass the return value on the stack.
2016-03-01 15:38:28 -08:00
Cary R
7d21891147
Fix space issues.
2016-02-28 22:09:39 -08:00
Martin Whitaker
a0bee0a76f
Add support for real valued compressed assignment statements in tgt-vvp.
2016-02-23 22:02:03 +00:00
Martin Whitaker
a85c64d347
Revert "Add support for real valued compressed assignment statements in tgt-vvp."
...
This reverts commit 3fede95f5e .
2016-02-23 21:49:49 +00:00
Martin Whitaker
3fede95f5e
Add support for real valued compressed assignment statements in tgt-vvp.
2016-02-23 20:58:30 +00:00
Martin Whitaker
b77d758f19
Fix compressed assignments to concatenations.
...
When loading a lval concatenation, tgt-vvp was loading the elements
in the wrong order for the %concat instruction.
2016-02-23 16:44:03 +00:00
Cary R
841593d013
Remove some compile warnings
2016-02-03 21:40:18 -08:00
Stephen Williams
f494b478cc
Merge branch 'master' into return-stack
...
# Conflicts:
# sv_vpi_user.h
2016-02-01 14:47:44 -08:00
Stephen Williams
469d4fefa7
Handle compressed assign to function return value.
2016-02-01 12:38:48 -08:00
Stephen Williams
ce692f90ad
Implement and use the %retload/real opcode.
2016-02-01 09:31:06 -08:00
Stephen Williams
c114edfa6c
Handle void functions with new .scope format.
2016-02-01 09:29:49 -08:00
Stephen Williams
fac7de2133
Better handle some different function types in the .scope setup.
2016-01-31 16:16:02 -08:00
Stephen Williams
604a62379c
Make .scope aware of return type, and extend %ret/vec4 operands
...
The .scope needs to be aware of return types so that the %call/vec4
function knows how to intialize the return value. We also need to
extend the %ret/vec4 to support writing parts of the return value.
2016-01-31 15:29:52 -08:00
Stephen Williams
e435a879fc
Add ability to read back return value / Add vec4 stacked user functions.
...
Also:
- handle functions as arguments to system tasks.
- Cleanup detect of signal as return value.
2016-01-24 18:36:26 -08:00
Stephen Williams
0c91a6b041
Add .ufunc/real functor to handle functions with return value on stack.
2016-01-17 16:23:28 -08:00
Stephen Williams
bfc9cd8715
Make real functions in processes use parent stack for return value.
2016-01-10 17:09:33 -08:00
Stephen Williams
37a63e5d6d
Merge pull request #88 from orsonmmz/image_attr
...
'image attribute
2016-01-10 15:49:26 -08:00
Martin Whitaker
eb2a9be0c9
Fix for br999 - incorrect result from binary comparison.
...
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:11:42 +00:00
Maciej Suminski
df6b24fd3a
ivl & vvp: Enabled 'string' as the return type in VPI functions.
2016-01-05 14:23:25 +01:00
Stephen Williams
63ad15ee2e
Rework user function calls to use specialized opcodes.
...
Create The %callf/* opcodes to invoke user defined functions in a
more specialized way. This allows for some sanity checking on the
way, and also is a step towards keeping return values on stacks.
2015-12-27 20:29:10 -08:00
Cary R
6c91588d33
Fix some errors found with cppcheck
2015-11-02 00:14:29 -08:00
Cary R
a65c007fdb
Fix some cppcheck warnings
2015-10-02 09:43:54 -07:00
Stephen Williams
f01a312f17
Minor code generation improvements
...
Use $flag_inv instead of %inv is several places.
2015-09-30 16:25:10 -07:00
Stephen Williams
fe7156289b
Remove some useless vvp opcodes.
2015-09-30 15:41:22 -07:00
Stephen Williams
571109481f
Use cmpi in more cases
...
Before this patch, only literals on the right side of a < compare
(or left side of a > compare) would be blended into a %cmpi instruction.
This patch broadends the cases where the %cmpi can be used.
2015-09-30 12:35:19 -07:00
Martin Whitaker
9f4b485c1c
Updated copyright dates displayed for main programs and targets.
2015-08-17 22:05:08 +01: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