Commits on Sep 6, 2012
  1. Spelling fixes.

    steveicarus committed Sep 6, 2012
Commits on Sep 5, 2012
Commits on Aug 31, 2012
  1. Windows (mingw) _vsnprintf() returns -1 not the required size on over…

    caryr committed Aug 31, 2012
    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.
  2. Cleanup after the va_copy()

    caryr committed Aug 31, 2012
    I missed that va_end() needs to be called on the new ap created by va_copy().
  3. Save the va_list so it can be reused if needed.

    caryr committed Aug 31, 2012
    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.
  4. Allocate a string buffer as needed in the code generator and vvp disp…

    caryr committed Aug 31, 2012
    …lay 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.
Commits on Aug 29, 2012
  1. Fix for pr3561350.

    martinwhitaker authored and steveicarus committed Aug 27, 2012
    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.
Commits on Aug 22, 2012
  1. V0.9: Fix for pr3557493.

    martinwhitaker authored and caryr committed Aug 17, 2012
    defparam assignments found inside a generate block were being stored
    in the enclosing module scope. They should be stored in the generate
    block scope.
Commits on Aug 16, 2012
Commits on Aug 14, 2012
Commits on Aug 6, 2012
  1. Fix time scaling in PLI TF routines for MinGW.

    martinwhitaker authored and caryr committed Aug 5, 2012
    When built with MinGW, pow() may not always generate an exact integer
    result when supplied with integer operands. Converting the result to an
    integer before we use it seems to be enough to work round this issue.
Commits on Aug 1, 2012
  1. V0.9: Add missing semi-colons in parser rules.

    martinwhitaker authored and steveicarus committed Aug 1, 2012
    Also add null actions to prevent older versions of bison failing due
    to type clashes, plus a few minor spelling/formatting fixes.
Commits on Jul 28, 2012
  1. Handle error case of zero width in indexed part select.

    Martin Whitaker authored and steveicarus committed Jul 26, 2012
    The compiler doesn't currently check that the width of an indexed
    part select is non-zero. If code contains this erroneous case, the
    compiler can crash (with an assertion failure). This patch causes
    the compiler to output a suitable error message and recover. It
    also fixes a potential crash if an illegal expresson is encountered.
    (cherry picked from commit c4ff830)
  2. V0.9: Allow a UDP instance to have a simple real delay.

    martinwhitaker authored and steveicarus committed Jul 17, 2012
    The parser does not distinguish between module and UDP instances, so
    a UDP delay is handled by the rules used for parsing module parameter
    overrides. Although these rules had been relaxed to accept the case of
    a simple decimal value (e.g. #10), they did not allow a simple real
    value (e.g. #0.1).
Commits on Jul 1, 2012
  1. V0.9: Fix elaboration order in generate blocks.

    martinwhitaker authored and steveicarus committed Jun 11, 2012
    Currently, localparam declarations inside generate blocks are
    elaborated after any nested generate constructs are elaborated.
    This prevents the localparams being used by the nested constructs.
    Reversing the elaboration order fixes this bug.
Commits on May 18, 2012
  1. V0.9: Fix for pr3527022.

    Martin Whitaker authored and steveicarus committed May 18, 2012
    This patch adds support for an explicit range or type in a parameter
    declaration that is part of a module parameter port list.
Commits on Apr 2, 2012
  1. V0.9: For a delayed vpi_put_value() copy any pointer data members.

    caryr committed Apr 2, 2012
    When vpi_put_value() is asked to delay the assignment any pointer data
    needs to be duplicated so that the caller can clean up the locally
    allocated memory without causing memory access problems.
Commits on Mar 12, 2012
  1. V0.9 - Fix for pr3499807.

    Martin Whitaker authored and caryr committed Mar 9, 2012
    Output a "sorry" message to inform the user that tranif delays are
    not supported.
Commits on Jan 24, 2012
  1. V0.9: Fix the formatting of time values that are less than 1

    caryr committed Jan 24, 2012
    This patch is a modification of a user contributed patch that fixes the
    time formatting when the time is less than 1 and $timeformat() is used.
Commits on Jan 10, 2012
  1. V0.9: Remove crash for function def with zero args and warn on calls

    caryr committed Jan 10, 2012
    Normal Verilog does not allow a function to be defined without at
    least an input argument. This patch fixes a crash that was happening
    when a function with no arguments was defined. It also adds checks
    and prints a descriptive error message when calling a function without
    an argument.
    The development branch allows this in SV.
Commits on Jan 7, 2012
  1. V0.9: remove unneeded -s flags for flex

    caryr committed Jan 7, 2012
    I added these in a previous patch, but they are not needed and
    generate a warning.
Commits on Jan 5, 2012
  1. V0.9: Update lex/yacc builds to be consistent and to support parallel…

    caryr committed Jan 5, 2012
    … builds
    Not all the lex/yacc (flex/bison) targets were using a consistent syntax.
    This patch fixes that and explicitly serializes the *.c/*.cc and *.h build.
    Not doing this was causing problem when using make -j. The issue appears to
    be that if two targets are specified for a rule (e.g. file.h: file.y)
    make does not realize they are both built by the same call so the rule is
    executed twice. Once for the .cc target and once for the .h target. This is
    not a problem for a serial build. To work around this only use the .c/.cc
    file in the main target and then make the .h file depend on the .c/.cc file
    as a sub-target.
Commits on Dec 17, 2011
  1. V0.9: To reduce error divide by an integer vs multiple by a fraction.

    caryr committed Dec 17, 2011
    This same change was done in the vpi directory. This patch fixes the
    issues in the libveriuser directory. This fixed a fail in the vpi
    timescale test under MinGW.
Commits on Dec 16, 2011
  1. Add support for param declarations with signed type but no range

    Martin Whitaker authored and steveicarus committed Dec 12, 2011
    The standard allows a parameter (or localparam) declaration of the
    form "parameter signed my_param = ...". The parser currently rejects
    this. A small adjustment is also required in the parameter evaluation
    code to correctly apply the type.
Commits on Dec 10, 2011
  1. Fix for pr3452808.

    Martin Whitaker authored and caryr committed Dec 9, 2011
    The tran island rework included an optimisation that meant that an
    island port would only be resolved once the initial value for the net
    attached to that port had propagated to the port. However, v0.9 does
    not propagate initial values in some cases, so this optimisation
    cannot be used.
Commits on Dec 6, 2011
  1. V0.9:Don't pad a real argument to a user task.

    caryr committed Dec 6, 2011
    The compiler was incorrectly padding real arguments to tasks if they were
    assigned to vectored arguments greater than 1 bit wide. This was asserting
    for some cases and generating incorrect code for others.
Commits on Nov 26, 2011
  1. V0.9: Define turn_sig_to_wire_on_release_ to false in constructor.

    caryr committed Nov 26, 2011
    Not giving this a default value was leaving the value undefined under
    some circumstances. This was producing incorrect results on Cygwin.
Commits on Nov 24, 2011
  1. v0.9: Treat an empty @* as something that will never trigger.

    caryr committed Nov 24, 2011
    An @* with no sensitivities should be treated as something that will
    never trigger vs something that will run continuously. This patch makes
    this change and adds a warning when an @* has no sensitivities since
    this is almost certainly a coding bug.
Commits on Nov 23, 2011
  1. V0.9: Add support for a named block to only have variable definitions.

    caryr committed Nov 23, 2011
    It is legal for a named block to contain variable definitions and
    no statements. This patch fixes this for both style of blocks. It
    also organizes the block parsing code to be a bit more clear, adds
    an error case for fork/join and changes on check for size() > 0 for
    the more efficient ! empty().
Commits on Nov 19, 2011
  1. V0.9: For wire and/or nets we need all the net resolution to be and/or.

    caryr authored and steveicarus committed Nov 18, 2011
    If a wired and/or net has more than four connections all the other
    resolution branches must also be wired and/or. All other nets can
    just be tri since tri0/tri1 only needs the final resolution to be
    an active pull up/down.
Commits on Nov 17, 2011
  1. V0.9: Assert that sync/async set/clear are not supported for a DFF pr…

    caryr authored and steveicarus committed Nov 12, 2011
    Since synthesis is not currently supported we do not support/generate
    sync/async set or clear control inputs. This is further complicated by
    the fact that the VVP DFF primitive is not fully implemented.