Permalink
Commits on Sep 16, 2009
  1. Improve some assert messages

    steveicarus committed Sep 16, 2009
    Replace some assert functions with ivl_assert.
  2. Don't check the scope for array words.

    caryr committed with steveicarus Sep 16, 2009
    We do not want to check an array word scope to see if the scope
    was already included since a scope does not include array words.
    They must be explicitly specified.
    (cherry picked from commit 0b6bd34)
  3. Warn that events can not be user task or function arguments.

    caryr committed with steveicarus Sep 12, 2009
    This patch makes events passed as arguments to user tasks or functions
    a compile time error with an appropriate error message.
    (cherry picked from commit 4d57ede)
  4. Fix 64 bit problem in vvp/vpi_signal.c

    caryr committed with steveicarus Sep 10, 2009
    This is based on a suggested fix from Martin. It fixes the crash
    for two tests in the test suite. As a bonus it is more efficient.
    (cherry picked from commit 43f4157)
  5. Squash some gcc 4.3.3 warnings.

    caryr committed with steveicarus Sep 10, 2009
    This patch clears all the gcc 4.3.3 warning that can be fixed.
    The remaining warning is dictated by older versions of the
    1364 standard.
    (cherry picked from commit 6d5d06c)
  6. Revert one change from previous patch.

    caryr committed with steveicarus Sep 11, 2009
    I was mistaken in changing the cast in the comparison.
    (cherry picked from commit 5a11a8a)
  7. Fix another 64 bit problem in a part select.

    caryr committed with steveicarus Sep 11, 2009
    This patch fixes a problem in the .part/v select when the index is
    undefined. The default value needs to be INT_MIN, so when the long
    is cast to an int the value is in range.
    (cherry picked from commit 1b300cb)
  8. Fix .part/v to only use a 32 bit value.

    caryr committed with steveicarus Sep 9, 2009
    To get better functionality in V0.9 and development until we
    add a select that is sign aware to .part/v this patch uses
    a 32 bit integer (int) for the select value. This allows a
    normal Verilog integer to produce the correct results. A
    warning for smaller signed index vectors is planned, but it
    needs more input.
    (cherry picked from commit 27f0327)
Commits on Sep 13, 2009
  1. Add support for 'bx from a signal to &PV<>

    caryr committed with steveicarus Sep 7, 2009
    &PV<> was just using vpi_get_value() when a signal was driving
    the select. This incorrectly returned 0 for 'bx or 'bz. This
    patch adds a check for an undefined value and returns INT_MIN
    for this case.
    (cherry picked from commit 1b0dd8c)
  2. Add file/line information to named events and better expr. error.

    caryr committed with steveicarus Sep 7, 2009
    This patch adds file and line number information to named events.
    It also modifies the draw_eval_expr_wid() routine to fail with
    an appropriate message for named events. This checking needs to
    be pushed into the elaboration stage, but this will give a better
    message than we had before.
    (cherry picked from commit dff6a1e)
  3. Add user control over implicit sensitivity list warnings.

    martinwhitaker committed with steveicarus Sep 5, 2009
    This patch adds two new warning classes that can be enabled or
    disabled via the -W command line option. The first controls
    whether a warning is generated if a part select within an
    always @* statement causes the entire vector to be added to
    the implicit sensitivity list. The second controls whether a
    warning is generated if a word select within an always @*
    statement causes the entire array to be added to the implicit
    sensitivity list. The first class is not automatically enabled
    by -Wall, the second class is.
    (cherry picked from commit fc49420)
Commits on Sep 4, 2009
  1. Allow labelled begin blocks to contain processes in VHDL target

    nickg committed with steveicarus Aug 26, 2009
    This is a simple fix for a crash that occured when a process
    was inside a labelled begin inside a generate statement.
    (cherry picked from commit face1a1)
  2. Handle generate scopes with signals in VHDL target

    nickg committed with steveicarus Aug 26, 2009
    This uniques the name of each copy of a signal and adds
    it to the containing VHDL entity.
    (cherry picked from commit 388c9c6)
  3. Translate simple generate loops to VHDL

    nickg committed with steveicarus Aug 26, 2009
    This handles generate loops and genvars with no local variables
    (cherry picked from commit bc7ec04)
  4. Remove old configure files in vvp directory.

    caryr committed with steveicarus Sep 3, 2009
    (cherry picked from commit 5f08f40)
  5. Support negative index for %assign/av opcodes.

    caryr committed with steveicarus Sep 3, 2009
    If the array index is negative these opcodes need to just return.
    (cherry picked from commit 9d76582)
  6. Major rewrite of indexed part selects.

    caryr committed with steveicarus Aug 28, 2009
    This patch is a major rewrite of the indexed part selects (+: and -:).
    
    It made the following enhancements:
    
    1. Make indexed part selects work correctly with both big and little
       endian vectors.
    
    2. Add a warning flag that warns about constant out of bounds/or 'bx
       indexed selects.
    
    3. Moved the -: parameter code to its own routine.
    
    4. Added support for straddling before part selects in a CA.
    
    5. Added more assert(! number_is_unknown) statements.
    
    6. Add warning for &PV<> select with a signed index signal that is
      less than the width of an int. This will be fixed later.
    
    7. Add support for loading a 'bx/'bz constant into a numeric register.
    
    8. Add a number of signed value fixes to the compiler/code generator.
    
    9. Major fix of draw_select_expr() in the code generator.
    (cherry picked from commit 2b17366)
  7. Propagate sign in synthesize for math operators.

    caryr committed with steveicarus Aug 25, 2009
    The sign of the expression needs to be propagated for the
    math operators when they are synthesized.
    (cherry picked from commit a49463e)
  8. Pass file/line information for part selects.

    caryr committed with steveicarus Aug 25, 2009
    Propagate the file and line information for a part select
    expression and LPM (continuous assign).
    (cherry picked from commit 06997c6)
  9. Enhance %shiftr/i0 and $shiftl/i0 to work with negative shifts.

    caryr committed with steveicarus Aug 25, 2009
    The %shiftr/i0 and %shiftl/i0 opcodes are used for some part
    selects and if we have a negative shift we want the value to be
    padded with 'bx. This patch enhances the two %shift/i0 opcodes
    to work with negative shifts and for negative shifts pad with
    'bx instead of 'b0.
    
    It also fixes %ix/get/s to use a uint64_t instead of a unsigned
    long to avoid problems with sign extension on 32 bit machines.
    (cherry picked from commit ecb0001)
  10. Assert number is not unknown for many cases in tgt-vvp.

    caryr committed with steveicarus Aug 25, 2009
    This patch adds a number of asserts that a number is not unknown
    in places where this should never happen.
    (cherry picked from commit d108221)
  11. Add vvp support for out of bound variable part selects.

    caryr committed with steveicarus Aug 25, 2009
    This patch adds support for variable part selects with out of bound
    and 'bx index values.
    (cherry picked from commit 1306a6d)
  12. Add a -Wselect-range warning class.

    caryr committed with steveicarus Aug 25, 2009
    This patch adds support for a -Wselect-range warning class to the
    driver and ivl programs. This is part of -Wall. The actual checks
    will be added in a later patch.
    
    Cherry-picked from e576e1e
  13. Convert IVL_LPM_CONCAT to use ivl_lpm_size() instead of ivl_lpm_selec…

    caryr committed with steveicarus Sep 2, 2009
    …ts()
    
    It was documented that a IVL_LPM_CONCAT would use _size() instead
    of _selects(). This patch adds the functionality to _size() and
    converts all the Icarus provided code generators to use _size().
    _select() will be kept for compatibility in V0.9.
    (cherry picked from commit 4cd790a)
  14. Fix subtle bug in scope checking.

    caryr committed with steveicarus Aug 31, 2009
    This check looks to be defined to check the child scope not the
    top level scope.
    (cherry picked from commit 872962e)
  15. Update config.guess and config.sub to latest version.

    caryr committed with steveicarus Aug 31, 2009
    This patch updates the config.guess and config.sub files to the
    latest ones from automake 1.11.
    (cherry picked from commit 9669ccd)
  16. Update MinGW requirements, etc.

    caryr committed with steveicarus Aug 29, 2009
    The old readline library was causing problem. I updated the mingw.txt
    file to use the gnuwin32 version of readline (5.0-1) which works. I
    also mentioned that I plan to rewrite the directions using a newer
    version of MinGW.
    (cherry picked from commit a51f2dc)
  17. Add support for an undefined index for the %load/a* opcodes.

    caryr committed with steveicarus Aug 28, 2009
    These opcodes need to return 'bx or 0.0 for the real opcode when
    the array index is undefined.
    
    The patch also documents the auto incrementing of the bit
    index register done by the %load/avx.p opcode.
    (cherry picked from commit 8623f80)
  18. Add missing limits.h include in vpi_signal.cc

    caryr committed with steveicarus Aug 27, 2009
    (cherry picked from commit 83c7a24)
  19. For a part select driving another part select the extra bits must be …

    caryr committed with steveicarus Aug 25, 2009
    …'bz.
    
    When a part select is driving another part select any bits outside the
    original select must be 'bz instead of 'bx. If we initialize the temporary
    buffer to 'bz this should work as required. It there are multiple drivers
    then a resolver comes into play and this should not matter.
    (cherry picked from commit e31b6bd)
  20. Ignore a zero MCD for $fflush, $fdisplay*, $fwrite* and $fstrobe*.

    caryr committed with steveicarus Aug 24, 2009
    (cherry picked from commit ed4e2eb)
  21. Fix for pr2842185 and for genvar scopes.

    martinwhitaker committed with steveicarus Aug 22, 2009
    When checking for name collisions, the compiler looks for genvar
    declarations in the enclosing module rather than in the current
    scope, which leads to false positives. The compiler also places
    all genvar declarations in the enclosing module scope, even when
    the declarations are inside a generate block which has its own
    scope. This patch fixes both these faults. It also fixes some
    typos and outdated information in comments.
    (cherry picked from commit da010db)
Commits on Aug 19, 2009
  1. Fix for pr2837451.

    martinwhitaker committed with steveicarus Aug 15, 2009
    pr2827132 changed the val_ field in vvp_fun_part_sa to only store
    the bit values for the selected part, not the entire source vector,
    but omitted to modify the recv_vec4_pv method to handle this change.
    This patch rectifies that omission.
    (cherry picked from commit 7c61763)
Commits on Aug 18, 2009
  1. Fix a few more minor memory leaks.

    caryr committed with steveicarus Aug 11, 2009
    This patch fixes a few more memory leaks that can happen under
    error conditions.
    (cherry picked from commit 35f3d7f)
  2. Do not schedule a new event if the previous event has the same value.

    caryr committed with steveicarus Aug 7, 2009
    If the previous event has exactly the same value as this event then
    we do not add this event to the event queue.
    (cherry picked from commit 2e820ca)