Skip to content


Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Commits on Aug 29, 2012
  1. @arunpersaud

    updated FSF-address

    arunpersaud authored committed
Commits on Jul 22, 2012
  1. Support the new[] operator for arrays

    Implement through the ivl core to the ivl_target.h API.
    Also draft implementation of creating and storing arrays
    in the vvp runtime and code generator.
  2. Parse support for dynamic arrays.

    This includes limited support for dynamic arrays down to the code
    generator, and some stubs in the vvp code generator and vvp run time.
  3. Detect and implement string.len() method, and string[index] expressions

    Implement the string.len() method in the system.vpi, and implement
    the string[index] method in vvp.
Commits on Jun 7, 2012
  1. @wackston

    Extend VPI and build to for SIMetrix cosimulation

    wackston authored committed
    Added: basic vpiPort VPI Objects for vpiModulkes
        vpiDirection, vpiPortIndex,   vpiName, vpiSize attributes
       Since ports do not exist as net-like entities (nets either side
       module instance boundaries are in effect connect directly in
       the language front-ends internal representation) the port information
       is effectively just meta-data passed through t-dll  interface and
       output as a additional annotation of module scopes in vvp.
    Added: vpiLocalParam attribute for vpiParameter VPI objects
    Added: support build for 32-bit target on 64-bit host (--with-m32
       option to and minor tweaks to Makefiles and systemc-vpi).
Commits on May 17, 2012
  1. Allow specparam declarations outside specify blocks.

    Martin Whitaker authored committed
    This patch extends the compiler to support all specparam declarations
    allowed by the 1364-2005 standard. For compatibility with other
    simulators, it allows specparam values to be used in any constant
    expression, but outputs a warning message and disables run-time
    annotation of a specparam if it is used in an expression that must
    be evaluated at compile time.
Commits on Apr 30, 2012
Commits on Feb 20, 2012
  1. Implement increment/decrement statements.

    During parse/pform processing, convert increment statements to
    the equivalent compressed assignment statement. This is less weird
    for elaboration processing and better expresses what is going on.
Commits on Feb 11, 2012
  1. Get packed signals working through to simulation in some situations.

    When dynamic indexing of early dimensions is not needed, we can get
    pretty far with getting packed arrays to work.
Commits on Feb 3, 2012
Commits on Jan 2, 2012
  1. @caryr

    Fix the compiler to keep the original file/line information.

    caryr authored
    For a parameter we want to keep the base definition file/line information
    not the file/line information for the override.
Commits on Sep 19, 2011
Commits on Apr 7, 2011
  1. @martinwhitaker

    Rework of constant expression error reporting.

    martinwhitaker authored 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 Mar 14, 2011
  1. @martinwhitaker

    Fix for pr3194155.

    martinwhitaker authored 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. @martinwhitaker

    Miscellaneous improvements and fixes to shift elaboration.

    martinwhitaker authored committed
    This patch ensures that the result of a shift is an undefined value
    if the right operand is an undefined value. It also improves the
    code generated for right shifts where the right operand is constant
    and optimises away shifts where the right operand is a constant 0.
    It also fixes a few places where the expression type (signed/unsigned)
    was not being set correctly.
Commits on Mar 3, 2011
  1. @caryr

    Fix spacing problems.

    caryr authored committed
    This patch fixes spacing problems in the source code, space/tab at
    the end of line and space before tab.
Commits on Mar 2, 2011
  1. @martinwhitaker

    Expression width rework.

    martinwhitaker authored 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 Dec 6, 2010
  1. @martinwhitaker

    Cleanup after parameter expression rework.

    martinwhitaker authored committed
    This patch removes some code made redundant by the rework of
    parameter expression evaluation. It also documents the new
    -g option.
Commits on Oct 26, 2010
  1. Remove some uses of the svector template.

    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 Apr 27, 2010
  1. Account for unsized arguments to comparisons.

    Comparison expressions have sorta-self-determined arguments.
    Handle the special cause that some of the arguments may be
    themselves unsized, and so expecting to be even wider then
Commits on Mar 6, 2010
  1. @jaredcasper

    Allow connecting module instance using implicit named port connections.

    jaredcasper authored committed
    This is part of the 1800-2009 standard (Section and allows
    ports of module instances to be declared like:
    modname instance(.foo, .bar);
    instead of
    modname instead(.foo(foo), .bar(bar));
    The only tricky part about this is the implicit port connection shall
    not create an implicit net declaration.  To make this happen, the path
    of least resistance was to add a bool to PEIdent indicating that it
    should not implicitely create a net.
    This does not rely on the generation flag to be 2009, following the
    trend that new port naming convention (like ANSI style ports) work
    regardless of the generation.
Commits on Jan 23, 2010
  1. @martinwhitaker

    Fix for pr2922063.

    martinwhitaker authored committed
    When handling the $signed/$unsigned system functions, the compiler
    was applying the new signed/unsigned property to the NetExpr object
    representing the input argument. This caused the input argument to
    be evaluated incorrectly. This patch fixes this by applying the new
    property to the NetExpr object created to pad the result to the
    required size.
    In testing this fix, it was also discovered that the width of the
    input argument expression was not being calculated correctly. This
    patch also fixes this issue.
  2. @martinwhitaker

    Fix for pr2924354.

    martinwhitaker authored 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 Jan 12, 2010
  1. @caryr

    Fix some constant bit/part select bugs and add warnings.

    caryr authored committed
    This patch fixes a few bugs in constant bit/part selects and
    adds optional warnings for out of bound or undefined selects.
Commits on Sep 27, 2009
  1. @caryr

    The concat object can get out of sequence so don't optimize a repeat.

    caryr authored committed
    Under some situation the optimized repeat expression can get out
    of sync while it is being processed this causes the code to
    reference freed memory. This happens when the repeat expression
    is converted to an unsigned integer, but the repeat expression
    is used in a different path. It was easier to just remove the
    optimization then track down the convoluted call sequence that
    was causing this and then figure out what needed to be fixed.
    The repeat expression must be constant, so is likely not too
    complicated so this optimization is very minor and should not
    be missed.
Commits on Aug 31, 2009
  1. @caryr

    Major rewrite of indexed part selects.

    caryr authored 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 Feb 17, 2009
  1. Handle some cases of self-determined repeat concatenations.

    The test_width for repeat-concatenations is tricky because it
    requires the evaluated value for the repeat expression. It should
    be OK to call elab_and_eval on that expression even during the
    test_width for the containing expression. We'll see.
Commits on Jan 9, 2009
  1. @caryr

    Update copyright in files changed in 2009

    caryr authored 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 6, 2009
  1. Handle ternary expressions with mixed argument types.

    If the true and false alternatives are mixed types, then vectored
    arguments are treated as if in a self-determined context then cast
    to REAL.
Commits on Jan 2, 2009
  1. Handle part selects with bad (xz) bits.

    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 19, 2008
  1. Fix the signed-ness calculations of +- in parameter expressions.

    This fixes up the elaboration of binary expressions found in
    parameter expressions. Parameter expressions are special because
    they elaborate early, before all the other parameters are necessarily
Commits on Nov 29, 2008
Commits on Nov 28, 2008
  1. Rework shift and power PExpr nodes for their special needs.

    The power (**) and shift operators are different from other binary
    operators because their expression width calculations rely only on
    their left operand, with their right operand self-determined. Get
    the handling of these operators out of the PEBinary base class to
    prevent confusion.
Commits on Nov 23, 2008
Something went wrong with that request. Please try again.