Commits on Nov 27, 2011
Commits on Nov 26, 2011
  1. Revert "Assume module output primitive arguments as variables by defa…

    This reverts commit 537b8cb.
    Whatever problem that report was trying to address was addressed
    wrongly by the reverted patch.
    committed Nov 26, 2011
Commits on Nov 25, 2011
  1. @caryr

    Make wreal an extra keyword in Icarus.

    Most people doing real modeling don't want to bring in the whole
    Verilog-AMS infrastructure to use wreal nets. This patch adds the
    wreal keyword to the xtypes generation so that wreal is available
    by default.
    caryr committed Nov 25, 2011
Commits on Nov 24, 2011
  1. @caryr

    Add preliminary support for wreal in Verilog-AMS mode.

    This patch adds wreal support when in Verilog-AMS mode. It doesn't add
    everything that is shown in the Verilog-A standard.
    It adds the following:
      Declaring a wreal net.
      Declaring a wreal net with an initialization.
      Declaring a wreal input/output using ANSI syntax.
      Declaring a wreal input/output using the old style.
    Declaring wreal inout ports are also allowed and parsed, but the
    compiler does not know how to handle this. There are other deviations
    from what is shown in the Verilog-A standard, but this should get most
    of the syntax people actually use.
    caryr committed Nov 24, 2011
  2. @caryr

    Treat an empty @* as something that will never trigger.

    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.
    caryr committed Nov 24, 2011
Commits on Nov 23, 2011
  1. @caryr

    Add support for a named block to only have variable definitions.

    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().
    caryr committed Nov 23, 2011
  2. @caryr

    Fix two bugs and use the more efficient !empty() vs size() > 0

    These two bugs were found with a recent cppcheck addition. It also
    changes one occurrence of size() > 0 for the more efficient ! empty().
    caryr committed Nov 23, 2011
  3. @caryr

    Update PSpecPath to take the polarity and full_flag when constructed

    To avoid a variables not initialized in the construct this patch modifies
    the PSpecPath class to take the polarity and full_flag as arguments to
    the constructor.
    caryr committed Nov 23, 2011
  4. @caryr

    Update the cppcheck suppression file in the vpp directory.

    Recent code changes moved the line that was being suppressed to a
    different line. This patch updates the suppression file to match the
    current code.
    caryr committed Nov 23, 2011
Commits on Nov 20, 2011
  1. Add the -mvpi_debug VPI module.

    This is a place to store interesting debug tools for VPI.
    For starters, there is $vpi_tree function.
    committed Nov 20, 2011
Commits on Nov 19, 2011
  1. Improve version tag from git.

    The --always flag to git describe is harmless in the normal case,
    and helpful in some special cases. Also add the --dirty flag to
    get extra interesting details.
    committed Nov 19, 2011
  2. @caryr

    For wire and/or nets we need all the net resolution to be and/or.

    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.
    caryr committed with Nov 18, 2011
Commits on Nov 17, 2011
  1. @caryr

    Assert that sync/async set/clear are not supported for a DFF primitive.

    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.
    caryr committed with Nov 12, 2011
  2. @caryr

    Fix Cygwin compile problem (replace abs() call with ?:

    This patch fixes a compile problem in Cygwin where there are two
    definitions for abs() that do not match so the C++ code doesn't know
    which one to call. To avoid the whole mess replace the call to abs()
    with the appropriate ?: construct.
    caryr committed with Nov 12, 2011
Commits on Nov 11, 2011
  1. @caryr

    Report that a vectored full connection only supports a single src/dst

    In a specify block a full connection is defined to only support a single
    source and destination path. This patch adds an error message when this
    is found, except we skip the error if all the paths are a single bit
    wide. This exemption was added to match the functionality found in
    NC-Verilog and presumably Verilog-XL.
    A message was also added in place of an assert if the source signals was
    not found in the current scope.
    caryr committed with Nov 8, 2011
  2. @caryr

    Remove wide input valgrind warnings.

    Both UDPs and system functions use the wide input functor. This patch
    modified the code generator to create a local net declaration for the
    output net if we have either a delay or modpath connecting the output
    to the true output. This is needed so that the wide input can be
    cleaned up correctly.
    Local real nets were also added to the local net pool when testing with
    valgrind. This allows them to be cleaned up at the end.
    caryr committed with Nov 6, 2011
  3. @caryr

    Cleanup unneeded vectors in a delay after initialization.

    For a delay we do not know exactly what type we will be propagating
    until the initialization event has happened. Because of this we
    allocate both a vec4 and a vec8 value. Once the initialization event
    has happened we can free the unneeded element(s).
    caryr committed with Nov 6, 2011
  4. @caryr

    Add check that a parallel connection uses the same width input/output.

    This patch uses the full_flag to verify that the input and output have the
    same width for a parallel connection. Icarus always uses a full connection
    so this is just a portability issue with other simulators.
    The pform dump code was also modified to correctly display the polarity
    and full/parallel connection type.
    caryr committed with Nov 6, 2011
Commits on Nov 6, 2011
  1. System Verilog tasks can have multiple statements.

    The begin/end block that wraps the statements can be implicit.
    committed Nov 6, 2011
  2. Handle arrays of vectors in VHDL types.

    This incidentally adds binding of generic to generic instantation.
    committed Nov 6, 2011
Commits on Nov 5, 2011
Commits on Nov 4, 2011
  1. @caryr

    Fix space issues.

    This patch removes space before EOL, etc.
    caryr committed with Nov 3, 2011
  2. Compiler fixes for MinGW.

    In MinGW, when parameters are passed to vhdlpp by ivlpp, single quotes
    are treated as ordinary characters. Use double quotes instead, as is
    done in the driver.
    Also, MinGW does not have a standard mkdir() function, so we need to
    convert calls to mkdir() into calls to _mkdir().
    Martin Whitaker committed with Nov 2, 2011
  3. @caryr
Commits on Nov 1, 2011
  1. @caryr

    Use UINT_MAX instead of -1 to set unsigned to maximum value.

    The Sun C compiler warns when -1 is used to initialize an unsigned.
    caryr committed with Oct 31, 2011
Commits on Oct 31, 2011
  1. @caryr

    Reduce the error when scaling a real time value.

    When scaling a time value we would often use the power operator to
    create constants 10**-N that were then multiplied with the original
    value. The problem with this is that there is some errors in the
    representation of the fractional number. It is better to create a
    integer value 10**N and then divide the original value by this
    exact constant. You still have the calculation error, but the scale
    value is now an exactly real value.
    caryr committed with Oct 31, 2011
  2. @caryr

    Remove old comment.

    caryr committed with Oct 31, 2011
  3. @caryr

    Major rework of the $sscanf()/$fscanf() code.

    Add support for %m, suppression '*' and a maximum field width along with
    a number of other fixes/enhancements. There is still no support for
    %u, %v or %z.
    caryr committed with Oct 31, 2011
  4. @caryr

    Make some messages consistent in sys_icarus.c.

    This patch makes some of the VPI messages consistent with the rest.
    caryr committed with Oct 31, 2011
  5. Restore ability to supply LDFLAGS to MinGW configure.

    The fix to get a C99 compliant strtod() in MinGW mistakenly set the
    LDFLAGS value rather than appending to it. This meant that a LDFLAGS
    supplied by the user on the configure command line would be ignored.
    Martin Whitaker committed with Oct 28, 2011