Commit Graph

5690 Commits

Author SHA1 Message Date
Martin Whitaker a75fc86cb1 Fix for br961 - function return type elaborated in wrong scope.
The return type of a function should be elaborated in the context of
the enclosing scope, not in the context of the function itself.
2014-10-30 21:37:31 +00:00
Cary R 68e6fb48c9 V0.9: Update lz4 files from GTKWave 2014-10-27 15:41:28 -07:00
Cary R b18aedfa80 V0.9: Back port fixes for putting modpath delays and delay calculations 2014-10-27 14:40:50 -07:00
Cary R bf08fcd5e7 V0.9: Update files from GTKWave 2014-07-31 16:42:43 -07:00
Cary R 3a91148004 V0.9: fix memory leak in VAMS $simparam$str 2014-07-28 11:03:15 -07:00
Cary R c3171862ab V0.9: Add support for power operator in eval_const() 2014-07-07 18:18:04 -07:00
Cary R 0961eae27e Add support for one argumenr $urandom_range() 2014-06-14 14:17:13 -07:00
Cary R f7752caaac Update files from GTKWave to the latest from svn 2014-06-14 14:02:46 -07:00
Martin Whitaker 6183bf6cd7 Fix for GitHub issue 26 - compiler crash when module port has no internal net.
The compiler correctly reports an error when a module port has no
associated internal net/reg, but could crash when the module was
instantiated.
2014-05-23 23:15:14 +01:00
Cary R 9b38de596e Update FST files to latest from GTKWave 2013-10-25 15:07:17 -07:00
Cary R 0509bdd53e Mostly fix a portability problem in $rtoi (run time) 2013-10-11 17:33:21 -07:00
Cary R 4989afb153 V0.9: Fix another real to vpiIntVal conversion in the run time 2013-10-11 11:39:33 -07:00
Cary R 530c9cd895 V0.9: Fix $rtoi to correctly convert NaN and +/- infinity 2013-10-11 11:39:18 -07:00
Cary R 0d6925fe5b V0.9: Fix real to vpiIntVal conversion in run time 2013-10-11 11:38:52 -07:00
Martin Whitaker 65d751690b Fix for br937.
When writing a string value, vpi_put_value cannot assume the target vector
is a multiple of 8 bits wide.
2013-09-28 17:19:05 +01:00
Cary R f8219bf8ff v0.9: The seed passed to $random() should not change the implicit seed. 2013-09-23 17:52:50 -07:00
Stephen Williams 8288f7305d Prepare for Icarus Verilog version 0.9.7 release 2013-08-19 12:10:31 -07:00
Cary R 8b6ccc65d6 Update to latest FST API files from GTKWave 2013-08-09 11:35:07 -07:00
Cary R 452c1650f4 Update FST files to latest from GTkWave 2013-07-16 11:27:52 -07:00
Cary R 00337d2418 Fix space issue in vvp/vvp_net.cc 2013-07-15 16:19:23 -07:00
Cary R bf2b086669 Back port vector8 changes from development to eliminate compile warnings 2013-07-15 16:16:04 -07:00
Cary R 4289ae23f9 Update fstap files to the latest from GTKWave 2013-06-14 16:35:44 -07:00
Martin Whitaker 4efb601fee V0.9: Fix for br930 - support attributes on old-style port declarations. 2013-05-19 11:05:01 +01:00
Cary R c8c0a298e4 V0.9 Update fstapi.c to latest from SVN 2013-04-16 15:14:01 -07:00
Martin Whitaker f99ca8672c Fix VHDL code generator crash when a terneray operator has a real operand. 2013-04-12 23:50:16 +01:00
Martin Whitaker 19e266159e Fix for br924.
Prevent compiler crashes after a function argument fails to be
elaborated (back-ported from development).
2013-03-31 19:57:37 +01:00
Cary R 2777a8b00b V0.9: A concatenation may also need a BUFZ to hold the drive strength
Just like a select a concatenation needs a BUFZ to hold the drive strength.
2013-02-12 18:37:09 -08:00
Cary R c84eec1d60 V0.9: minor fixes to br916 patch 2013-02-04 11:45:42 -08:00
Martin Whitaker 0f4658135e V0.9: Stopgap fix for br916.
Currently, when a variable expression is passed to a system task,
the expression value is stored in thread memory. Values stored
in thread memory cannot safely be passed to $strobe or $monitor,
because the thread memory may get reused or deallocated before
the $strobe or $monitor task actually executes. As a temporary
measure, we just trap this case and terminate with a "sorry"
message. A proper fix would require the expression value to be
calculated at the time the $strobe or $monitor executes, not at
the time it is called.
2013-02-04 11:45:35 -08:00
Martin Whitaker 200951275c Fix logic value returned for unambiguous HiZ1 strength.
If a strength aware net has an unambiguous HiZ1 strength, VVP treats
it as a logic '1'. It should be treated as a logic 'z'. An ambiguous
HiZ1/HiZ0 strength should also be treated as a logic 'z'.
2013-01-28 19:07:08 -08:00
Cary R 9b1c1a5d48 Fix space issue 2013-01-25 10:34:34 -08:00
Cary R edf741106d V0.9: Handle undefined L-value selects
L-value bit selects were incorrectly converting an undefined index to 0.

L-value part selects were asserting if an undefined index was given.

This patch unifies how all these are handle (including indexed part selects).

The base is set to an undefined value and an appropriate width is used.
A warning message is always printed since this is not a simple out of
range issue. It is the responsibility of the code generator to skip the
assignment, but we always want to execute the R-value since it could have
a side effect.
2013-01-25 10:32:52 -08:00
Cary R 4b805a2b89 Remove space issues 2013-01-21 19:29:34 -08:00
Martin Whitaker 8ae15b93cf Fix for bug 915 (was 3592746).
probe_expr_width() must be called before calling elab_and_eval(), to
determine the expression type.
2013-01-21 19:12:07 -08:00
Martin Whitaker 66338431f5 Fix for bug 913 (was 3587570).
probe_expr_width() must be called before calling elab_and_eval(), to
determine the expression type.
2013-01-21 19:02:08 -08:00
Martin Whitaker 0a06cf5d28 V0.9: Fix display of net array words when data type is signed.
When VVP compiles a .array statement for a net array, it does not
know the data type, so initialises the array signed_flag to false.
We need to set the signed_flag to the correct value once we know
the data type, to allow the VPI routines to correctly format the
data.
2013-01-21 18:46:59 -08:00
Martin Whitaker 15fee99abb Fix for pr3571573.
This patchs adds an implementation of recv_vec4_pv() to the vvp_fun_concat
class. This was already present in devel, so just needed to be backported
to v0.9.
2013-01-21 18:24:39 -08:00
Cary R 0ab44eca13 Update fstapi.c from GTKWave to fix MinGW compile. 2012-11-27 09:19:29 -08:00
Cary R 760ab91a36 Update fstapi.c and lxt2_write.c to latest from GTKWave
This just fixes warnings in cppcheck
2012-11-15 15:33:05 -08:00
Stephen Williams fc41668cf1 Make use of LDFLAGS when linking *.tgt files
Submitted by Ahmed El-Mahmoudy
2012-11-03 10:27:59 -07:00
Stephen Williams b8bcb016aa Fix licensing issues.
Remove des.v, which has incompatible restrictions.
Repair some copyright names (Remove Picture Elements)
Update FSF address.
2012-10-01 09:06:51 -07:00
Stephen Williams a233e21cd8 Prepare for 0.9.6 release. 2012-09-05 18:20:12 -07:00
Stephen Williams 87c691654e Spelling fixes. 2012-09-05 17:55:20 -07:00
Cary R 1f6aec6e26 Add %u support to the scanf routines. 2012-09-05 14:24:09 -07:00
Cary R 61cfb9e1fd Add support for %z to the scanf() routines 2012-09-04 18:46:37 -07:00
Cary R 01c4cd3dad Windows (mingw) _vsnprintf() returns -1 not the required size on overflow.
Windows and hence mingw does not follow the standard regarding the return
value of vsnprintf(). The mingw code needs to iteratively search for a
buffer large enough to print the output.
2012-08-31 10:57:31 -07:00
Cary R 62f1aa135b Cleanup after the va_copy()
I missed that va_end() needs to be called on the new ap created by va_copy().
2012-08-31 09:22:36 -07:00
Cary R 5794098aa4 Save the va_list so it can be reused if needed.
The second call to vsnprintf() needs to have a copy of the argument list
so it can run correctly. On some system vsnprintf() destorys the original
argument list.
2012-08-30 20:04:25 -07:00
Cary R 9d5f438872 Allocate a string buffer as needed in the code generator and vvp display code
When sending a string to a system task/function allocate the space needed
to avoid truncating the string vs using a large fixed buffer.

In vvp allocate and use an exactly sized buffer for the MCD print routine if
the fixed buffer is not large enough. Using a fixed buffer keeps normal
printing fast.
2012-08-30 19:12:23 -07:00
Martin Whitaker 267ba427a3 Fix for pr3561350.
When a new NetEBMult object is created, the compiler guesses the
expression width based on the sum of the operand widths. When we
duplicate an expression, we need to override this with the width
from the original expression.
2012-08-29 10:29:56 -07:00