Commit Graph

8478 Commits

Author SHA1 Message Date
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