Commits on Sep 7, 2008
  1. Generate delay devices for sign-extend devices.

    It is possible for signe-extend to have a delay attached to it. (Same
    for repeat.) Handle it like other LPM devices, by stuffing a .delay
    device into the output path of the device, if appropriate.
    committed Sep 7, 2008
Commits on Sep 6, 2008
  1. Pass file and line number information for expression constants.

    This patch passes the file and line number information for
    constants that are used in expressions.
    caryr committed with Sep 5, 2008
Commits on Sep 5, 2008
  1. Merge branch 'vhdl'

    committed Sep 5, 2008
  2. Add callbacks to vpiMemory objects.

    This patch adds the ability to set a global array callback.
    These type of callbacks will be called when any element of
    the array changes.
    caryr committed with Sep 5, 2008
  3. Non-controversial whitespace cleanup

    Nothing to do with tab width!  Eliminates useless
    trailing spaces and tabs, and nearly all <space><tab>
    pairings.  No change to derived files (e.g., .vvp),
    non-master files (e.g., lxt2_write.c) or the new tgt-vhdl
    Low priority, simple entropy reduction.  Please apply
    unless it deletes some steganographic content you want
    to keep.
    ldoolitt committed with Sep 4, 2008
  4. Parse attributes on statements within event statements.

    Statements can have attributes attached to them. Handle a few cases in
    the parser where attributes may be attached to statements, and get them
    as far as the pform.
    committed Sep 5, 2008
Commits on Sep 4, 2008
  1. Add blocking repeat event control, make repeat sign aware

    This patch adds blocking repeat event controls and also makes the
    base repeat statement sign aware. If the argument to repeat is
    negative (it must be a signed variable) then this is treated just
    like an argument of 0 (there is no looping). Doing this allows us
    to model the repeat event control as follows.
      lhs = repeat(count) @(event) rhs;
    is translated to:
        temp = rhs;
        repeat (count) @(event);
        lhs = temp;
    This patch also pushes the non-blocking event control
    information to the elaboration phase where it will report they
    are not currently supported.
    caryr committed with Sep 3, 2008
  2. Get generate block scope from generate case.

    The generate block is a placeholder for the generate items, and it
    is the items themselves that can specify the name of the generate
    block that is created.
    committed Sep 4, 2008
Commits on Sep 3, 2008
  1. Remove last vestiges of XNF.

    XNF hasn't been supported in a while. Xilinx doesn't put any effort
    into it either, for that matter.
    committed Sep 3, 2008
Commits on Sep 2, 2008
  1. Fix vhdl_expr::cast when expression has no assigned type

    This avoids a couple of segfaults
    nickg committed Sep 2, 2008

    nickg committed Sep 2, 2008
  3. Make sure LPM expression is cast to the output type

    This fixes some signed/unsigned bugs identified by the signedX tests.
    nickg committed Sep 2, 2008
  4. Fix a couple uninitialized value problems found with tgt-vhdl.

    This patch fixes two uninitialized variable problems found
    with valgrind when testing the VHDL code generator.
    caryr committed with Sep 1, 2008
Commits on Sep 1, 2008
  1. Allow .array/port input access generate statement.

    For nested array accesses the .array/port statement must
    evaluate its input argument before it starts printing the
    actual .array/port statement.
    caryr committed with Sep 1, 2008
  2. Compatibility with gcc-4.3

    Add "include" to fix error with abort() in
    Add "include" to AStatement.h so usage of struct PExpr works
    Get rid of warning: suggest parentheses around comparison in operand of ^
    ldoolitt committed with Aug 31, 2008
  3. Fix problem with vvp_vector2_t right shift

    that trips only when starting with perfectly
    aligned inputs.
    committed Sep 1, 2008
Commits on Aug 31, 2008
  1. Fix a bug in vector evaluation of abs().

    The calculation of the abs of a signed value
    was inverting the value if it was signed,
    and not if it was negative.
    committed Aug 31, 2008
Commits on Aug 30, 2008
  1. Fix right shift of vvp_vector2_t.

    The right shift of vvp_vector2_t needs to
    account for and mask off shifted bits. Otherwise
    there will be unexpected results after
    a vvp_vector2_t::trim method.
    committed Aug 30, 2008
  2. Remove unneeded real compare code.

    The code removed is unneeded since real values are already
    handled by the real specific comparison that is called at
    the beginning of each function.
    caryr committed with Aug 30, 2008
  3. Add the Verilog-2005 and Verilog-AMS constant system functions.

    This patch adds the constant system functions for Verilog-2005
    and Verilog-AMS. These are evaluated at compile time. $abs(),
    $min() and $max() support their polymorphic behavior in the
    compiler where it really matters. They are always evaluated
    as reals in the run time and the result/argument(s) will be
    converted as needed.
    The Verilog-2005 functions are available if using the 2005
    generation (default) and if either the icarus-misc (also on
    by default) or verilog-ams flags are set.
    The Verilog-AMS functions are available if either the
    icarus-misc or verilog-ams flags are set.
    committed Aug 30, 2008
  4. Evaluate constant real EQ and NE constructs.

    This patch adds code to evaluate constant == and != with real values.
    caryr committed with Aug 29, 2008
  5. More NaN constant fixes.

    This patch cleans up %loadi/wr regarding NaN values. It also
    fixes the code generator to correctly output a NaN value as
    a Cr<> constant.
    caryr committed with Aug 29, 2008
  6. Handle NaN constant in the code generator and fix loadi/wr NaN bug.

    This patch fixes a bug in %loadi/wr regarding NaN values. It also
    fixes the code generator to correctly output a NaN value.
    caryr committed with Aug 29, 2008
  7. Remove dead EEQ code.

    The EEQ function is handled by vvp_cmp_eeq, an arithmetic expression
    processor and the logic version of EEQ is never used.
    committed Aug 29, 2008
  8. Clean up $clog2() measurement of unsized numbers.

    If the argument to $clog2() is unsized constant, then trim it to the
    smallest representation that doesn't lose the sign, then do the $clog2
    on that.
    Also, use integer_width instead of 32 for the minimum $clog2() result
    for a negative value.
    committed Aug 29, 2008