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
Martin Whitaker
83a82914e0
Temporary fix for br993 - assertion failure in flip-flop synthesis.
...
Synthesis does not currently support some commonly used styles for
representing flip-flops, e.g.
q <= 0;
if (en) q <= 1;
or
if (clr) q <= 0;
if (set) q <= 1;
For now, output a "sorry" message.
2016-01-30 22:38:08 +00:00
Martin Whitaker
a006dee990
Fix for br994 - assertion failure when synthesising a mux.
...
The elaborator allows the RHS of assignment to be wider than the
LHS. When using an if statement to represent a mux, this meant the
mux inputs could be different widths, resulting in an assertion
failure during synthesis. The fix is to prune the RHS to match the
LHS for each assignment. This has the benefit of minimising the
mux width.
2016-01-30 20:11:58 +00:00
Martin Whitaker
fbeee1bae3
Temporary fix for br995 - assignment to memory not supported in synthesis.
...
For now, output a "sorry" message.
2016-01-30 17:01:13 +00: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
32fab21e95
ivl: Allow concatenating strings returned by function calls.
2016-01-07 11:11:04 +01:00
Maciej Suminski
ba274936e5
vhdlpp: Added 'image attribute for time type.
2016-01-06 15:30:24 +01:00
Maciej Suminski
214c940a1a
vhdlpp: Fixing memory leaks and muting valgrind.
2016-01-06 15:30:20 +01:00
Maciej Suminski
b711f16f05
vhdlpp: 'image attribute.
2016-01-06 15:30:06 +01:00
Maciej Suminski
dff1ad08b0
vhdlpp: ExpAttribute split to Exp{Obj,Type}Attribute.
2016-01-06 15:30:06 +01:00
Maciej Suminski
71c63bf993
vhdlpp: Added argument_list token.
2016-01-06 15:30:06 +01:00
Maciej Suminski
e0b2a5b337
vhdlpp: Refactored prange_t (class ExpRange).
2016-01-06 15:30:06 +01:00
Maciej Suminski
2c010d34bb
vhdlpp: Unified Expression::evaluate() method.
2016-01-06 15:30:06 +01:00
Maciej Suminski
23633c498f
vhdlpp: Moved dump_scope() to ScopeBase class.
2016-01-06 15:30:06 +01:00
Maciej Suminski
40075e11ab
Code formatting.
2016-01-06 15:30:06 +01:00
Maciej Suminski
1d2aef7142
vpi: $sformatf() function.
2016-01-06 15:30:06 +01:00
Maciej Suminski
9276515e19
vhdlpp: Minor fix for ReportStmt::write_to_stream.
2016-01-05 14:23:25 +01:00
Maciej Suminski
3b310e8227
vhdlpp: Elaborate subprograms in packages.
2016-01-05 14:23:25 +01:00
Maciej Suminski
517c9785e8
vvp: Code cleaning (vpi_tasks).
2016-01-05 14:23:25 +01:00
Maciej Suminski
df6b24fd3a
ivl & vvp: Enabled 'string' as the return type in VPI functions.
2016-01-05 14:23:25 +01:00
Maciej Suminski
9886b8cb36
vhdlpp: Distinguish character and an array of bits during emission.
2016-01-05 13:55:22 +01:00
Maciej Suminski
1c4b1c12e4
vhdlpp: Fixes for 'wait for' statements emission.
2016-01-05 13:55:22 +01:00
Maciej Suminski
ef3d0e4e0d
vhdlpp: ExpString::emit distinguishes between array and string types.
2016-01-05 13:55:22 +01:00
Maciej Suminski
442750ca2c
vhdlpp: Refactored {Report,Assert}Stmt so they handle expressions instead of strings.
2016-01-05 13:55:22 +01:00
Maciej Suminski
597001ee2f
vhdlpp: Variables have always reg_flag set.
2016-01-05 13:55:22 +01:00
Maciej Suminski
acb4ca8e47
vhdlpp: More descriptive error message for a missing function.
2016-01-05 13:55:22 +01:00
Cary R
e44010c2a3
Remove redundant class keyword
2015-12-29 13:02:58 -08:00
Cary R
71ff9e70ea
Fix valgrind release code to work with new scope definition
2015-12-29 12:46:42 -08:00
Cary R
8367285f3b
Fix some struct versus class warnings for vpiScope
2015-12-29 12:29:10 -08: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
Stephen Williams
1b33bf8615
Normalize the parsing of %fork and %disable opcodes.
2015-12-27 13:07:42 -08:00
Stephen Williams
f275dac7a8
Kill a bunch of __vpiScope struct vs class warnings.
2015-12-27 11:37:10 -08:00
Stephen Williams
2fedb4942e
C++-ify more __vpiScope members.
2015-12-23 17:38:13 -08:00
Stephen Williams
fff69390ac
C++-ify the __vpiScope classes.
2015-12-20 20:26:57 -08:00
Stephen Williams
c88a60537a
Merge branch 'master' of github.com:steveicarus/iverilog
2015-12-20 16:31:15 -08:00
Stephen Williams
3e3f245d8c
Document the vvp .scope record.
...
Also clean up some dead code in the vvp parser.
2015-12-20 16:31:03 -08:00
Cary R
3b7ebf6aa2
If ret is already defined then don't overwrite it.
2015-12-20 12:28:29 -08:00
Cary R
eb8ad92422
Add cppcheck suppressions for libveriuser
2015-12-19 19:56:49 -08:00
Cary R
1b8ed5f3ed
Fix a few more cppcheck warnings and ignore the exported functions
2015-12-19 18:51:18 -08:00
Cary R
399384d81b
Fix some cppcheck warnings and bugs
2015-12-19 17:19:19 -08:00
Cary R
2aaa050b7c
Update cppcheck suppression file
2015-12-19 11:58:31 -08:00
Cary R
a4177f6ddc
VHDL: Add some missing newlines
2015-12-19 10:50:16 -08:00
Cary R
4b9b0b7125
GTKWave (fstapi.c) needs realpath() so check for it
2015-12-19 09:11:48 -08:00
Cary R
e85d95a659
Cleanup any allocated event queue data
2015-12-14 21:08:17 -08:00