Skip to content


Subversion checkout URL

You can clone with
Download ZIP
Commits on Apr 7, 2011
  1. @martinwhitaker @steveicarus

    Rework of constant expression error reporting.

    martinwhitaker authored steveicarus committed
    This patch changes the method used to signal that a constant expression
    is being elaborated from flags stored in global variables to flags
    passed down the call chain. It also generates more informative error
    messages when variable references are found in a constant expression.
Commits on Apr 4, 2011
  1. @steveicarus

    Support collapse of PartSelect::PV to concatenation

    steveicarus authored
    During elaboration, it is sometimes efficient to collapse a
    collections of PV drivers to a net to a single concatenation.
    This removes a bunch of resolutions and other nodes, and also
    is the only way that 2-value logic should work.
Commits on Mar 14, 2011
  1. @martinwhitaker @steveicarus

    Fix for pr3194155.

    martinwhitaker authored steveicarus committed
    Currently the compiler coerces input ports to inout ports whenever
    there is an internal driver connected to the internal port net.
    This generates an error if the port is externally connected to
    something other than a structural net. This patch modifies the
    compiler to ensure port coercion only occurs in valid cases.
  2. @ldoolitt @steveicarus

    Spelling fixes

    ldoolitt authored steveicarus committed
    Mostly then/than confusion.  All comments or README files,
    except for one user-visible change in a tgt-vlog95 error message.
Commits on Mar 9, 2011
  1. @caryr @steveicarus

    Pass some module port information and fix a few bugs.

    caryr authored steveicarus committed
    This patch adds some preliminary module port information to the ivl
    interface. This may change as I investigate exactly what is needed.
    It also fixes a few minor bugs (a missed local variable and spacing)
Commits on Mar 3, 2011
  1. @caryr @steveicarus

    Don't normalize the port base (lidx) twice.

    caryr authored steveicarus committed
    eval_part_select_() has already normalized the base number so don't
    do it again.
Commits on Mar 2, 2011
  1. @martinwhitaker @steveicarus

    Expression width rework.

    martinwhitaker authored steveicarus committed
    This patch is a major rework of expression elaboration and
    evaluation in the compiler, aimed at better compliance with
    the IEEE standard.
Commits on Mar 1, 2011
  1. @caryr @steveicarus

    Don't delete L-value concat signals and give a better error message.

    caryr authored steveicarus committed
    This patch removes the code that was deleting the signals in an L-value
    concat if the concatenation failed to elaborate. This is incorrect since
    the signal could be used in another context that is processed later. The
    error message when an output/inout port fails to elaborate was also
    improved to give the expression that is connected to the port.
Commits on Jan 16, 2011
  1. @caryr @steveicarus

    Add uwire to the multiple driver error message.

    caryr authored steveicarus committed
    The original message talks about an unresolved net which may be
    something different/more encompassing. This patch explicitly adds
    uwire to the message to make it clear to the user that a uwire
    could cause this message.
Commits on Oct 26, 2010
  1. @steveicarus

    Remove some uses of the svector template.

    steveicarus authored
    I'm adding more uses of the make_range_from_width function, so
    it seems like time to get rid of its use of the svector template.
    This thread led to a lot of other uses of svector that had to
    also be removed.
Commits on Oct 10, 2010
  1. @steveicarus

    Allow variables to implicitly convert to unresolved nets.

    steveicarus authored
    SystemVerilog allows variables to be either variables or unresolved
    nets, depending on how they are used. If they are assigned by
    procedural code, then they are variables. If they are assigned
    by a continuous assignment, they are unresolved nets. Note that
    they cannot be both, and when they are unresolved nets they can
    only be assigned once.
Commits on Oct 2, 2010
  1. @steveicarus
Commits on Apr 23, 2010
  1. @steveicarus

    Make binary expressions use their tested width in self-determined con…

    steveicarus authored
    Operands to reduction unary operators are self determined, so
    evaluate the operands that way. But this means that binary expressions
    in this context should take pains to use their test_width tested
    expression width.
    This exposed a case where the test_width methods were not called
    for self-determined expressions. Fix that too.
Commits on Jan 23, 2010
  1. @martinwhitaker @steveicarus

    Fix for pr2924354.

    martinwhitaker authored steveicarus committed
    Creation of implicit nets requires knowledge of whether an identifier
    has been declared before it is used. Currently implicit nets are
    created during elaboration, but by this stage the order of declaration
    and use is not known. This patch moves the creation of implicit nets
    into the parser stage.
Commits on Dec 10, 2009
  1. @steveicarus

    Suppress redundant warning messages about input coerced to inout

    steveicarus authored
    A message for each signal name at a given source/line need only
    have this message emitted once.
Commits on Aug 31, 2009
  1. @caryr @steveicarus

    Major rewrite of indexed part selects.

    caryr authored steveicarus committed
    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.
Commits on Aug 6, 2009
  1. @steveicarus

    Fix index out of bounds error message.

    steveicarus authored
    When displaying an index out-of-bounds message, use the index
    given in the source code, not the canonical (translated) value.
Commits on Jul 4, 2009
  1. @caryr @steveicarus

    Add compiler warnings for more constant out of bounds array accesses.

    caryr authored steveicarus committed
    This patch adds compiler warning messages for all/most constant out
    of bounds array access.
Commits on Jun 7, 2009
  1. @caryr @steveicarus

    Add more default net types

    caryr authored steveicarus committed
    Previously Icarus only supported a default net type of wire or none.
    This patch adds the rest of the supported net types (all except
    uwire and trireg) to the `default_nettype directive. It also fixes
    make_implicit_net_() to use the default_nettype instead of always
    using implicit (the same as wire).
Commits on Apr 18, 2009
  1. @caryr @steveicarus

    It is an error to select part of a scalar value.

    caryr authored steveicarus committed
    In 1364-2005 it is an explicit error to take the select of a scalar
    or real value. We added the checks for real a while ago. This patch
    adds the functionality for scalar values. In the future we may want
    to push the scalar property to the run time.
Commits on Apr 3, 2009
  1. @caryr @steveicarus

    Report an error when trying to take the concatenation of a real value.

    caryr authored steveicarus committed
    This patch adds checks in various places to prevent the user from
    taking a concatenation of a real value.
  2. @caryr @steveicarus

    Enhance the real selection is invalid error messages.

    caryr authored steveicarus committed
    This patch enhances the error messages emitted when trying to
    select part of a real value. It now includes the signal name
    so it is easier to debug.
  3. @caryr @steveicarus

    Report an error when trying to take the select of a real value.

    caryr authored steveicarus committed
    This patch adds checks in various places to prevent the user from
    taking a select of a real value (bit, part and indexed selects).
Commits on Mar 6, 2009
  1. @caryr @steveicarus

    More constant function not supported warnings.

    caryr authored steveicarus committed
    This patch adds more places that need to warn about constant
    functions not being available.
Commits on Jan 9, 2009
  1. @caryr @steveicarus

    Update copyright in files changed in 2009

    caryr authored steveicarus committed
    This patch updates the copyright notice in the files that
    were modified in 2009. It also updates the normal programs
    and the vvp target.
Commits on Jan 2, 2009
  1. @steveicarus

    Handle part selects with bad (xz) bits.

    steveicarus authored
    Part selects need to be fully defined. If not, then the resulting
    expression is 'bx no matter what. The same for bit selects, when
    the bit select expression is constant.
Commits on Dec 12, 2008
  1. @steveicarus

    Fix elaboration of part-select ports.

    steveicarus authored
    Verilog-1995 allows ports to be part selects of signals in the module.
    Handle those cases with part select or TranVP as needed.
Commits on Oct 30, 2008
  1. @steveicarus

    Rework of automatic task/function support.

    Martin Whitaker authored steveicarus committed
    This patch splits any VVP net functor that needs to access both
    statically and automatically allocated state into two sub-classes,
    one for handling operations on statically allocated state, the
    other for handling operations on automatically allocated state.
    This undoes the increase in run-time memory use introduced when
    automatic task/function support was first introduced.
    This patch also fixes various issues with event handling in automatic
    scopes. Event expressions in automatic scopes may now reference either
    statically or automatically allocated variables or arrays, or part
    selects or word selects thereof. More complex expressions (e.g.
    containing arithmetic or logical operators, function calls, etc.) are
    not currently supported.
    This patch introduces some error checking for language constructs
    that may not reference automatically allocated variables. Further
    error checking will follow in a subsequent patch.
Commits on Oct 15, 2008
  1. @caryr @steveicarus

    Ignore PS that are outside the signal and allow PS to extend past the…

    caryr authored steveicarus committed
    … signal.
    If a part select (either a constant or constant indexed part select)
    of a L-value is fully outside the signal the part select will be
    omitted after printing a warning. If a part select straddles the
    upper portion of a signal a warning will be printed. The run time
    will use only the appropriate part of the select. Straddling the
    lower part of the signal is not currently supported and a message
    is printed for this case.
Commits on Oct 14, 2008
  1. @ldoolitt @steveicarus

    Shadow reduction part 2

    ldoolitt authored steveicarus committed
    Continue cleaning up shadowed variables, flagged by turning on -Wshadow.
    No intended change in functionality.  Patch looks right, and is tested
    to compile and run on my machine.  No regressions in test suite.
Commits on Sep 26, 2008
  1. @steveicarus

    Give l-value nets their proper type.

    steveicarus authored
    L-value nets (i.e. in continuous assignments) that were words in
    arrays need to have the data type of their parent array.
Commits on Sep 9, 2008
  1. @steveicarus

    Remove the elaborate_net methods.

    steveicarus authored
    These methods are no longer in use, their functionality taked over
    by a compination of elab_and_eval and NetExpr::synthesize methods.
Commits on Sep 7, 2008
  1. @steveicarus
Commits on Sep 5, 2008
  1. @ldoolitt @steveicarus

    Non-controversial whitespace cleanup

    ldoolitt authored steveicarus committed
    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.
Commits on Aug 30, 2008
  1. @steveicarus
Something went wrong with that request. Please try again.