Commits on Mar 17, 2011
  1. Prepare for 0.9.4 release.

    committed Mar 17, 2011
Commits on Mar 16, 2011
Commits on Mar 15, 2011
  1. For an input report the expression is pruned vs padded.

    There was a single message when the expression width was larger
    than the port width. This patch makes it a bit more clear by
    saying that the expression was pruned.
    (cherry picked from commit 1fbe777)
    caryr committed with Mar 13, 2011
  2. A '$' is also allowed in identifier names (dumpers)

    Update the dumper escaped identifier check to allow a '$'
    character after the first character in a normal identifier.
    (cherry picked from commit 2e0accf)
    caryr committed with Mar 13, 2011
  3. Fix for pr3194155 (v0.9).

    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.
    martinwhitaker committed with Mar 13, 2011
Commits on Mar 14, 2011
  1. Miscellaneous improvements and fixes to shift elaboration (v0.9).

    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
    (which fixes the compiler crash on pr3098439b in the test suite).
    martinwhitaker committed with Mar 12, 2011
Commits on Mar 9, 2011
  1. V0.9: Fix spacing issues

    Fix space before tab and space/tab before EOL.
    caryr committed with Mar 8, 2011
Commits on Mar 3, 2011
  1. V0.9: Don't normalize the port base (lidx) twice.

    eval_part_select_() has already normalized the base number so don't
    do it again.
    caryr committed with Mar 3, 2011
Commits on Mar 1, 2011
  1. V0.9: Don't delete L-value concat signals and give a better error mes…

    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.
    caryr committed with Feb 25, 2011
  2. V0.9: Allows multiple attribute instances.

    This patch adds the ability to have multiple attribute instances
    (e.g. (* foo = 1 *) (* bar = 2 *)).
    caryr committed with Feb 25, 2011
  3. Update fstapi files to latest from GTKWave 3.3.19

    Update the fstapi.{c,h} file to match the latest from GTKWave.
    (cherry picked from commit ed0469b)
    caryr committed with Feb 10, 2011
  4. The select not the original parameter get the file/line info.

    When taking a variable part select of a parameter we need to
    give file and line information to the select not the parameter.
    (cherry picked from commit 0106578)
    caryr committed with Feb 3, 2011
Commits on Jan 31, 2011
  1. Don't include local signals in @* sensitivity list.

    A locally created signal should not be included in the sensitivity
    list created by @*.
    caryr committed with Jan 31, 2011
  2. V0.9: Add support for giving both strengths to a pull device.

    In the standard a pull device can be given both a 1 and 0 strength.
    Only the appropriate one is actually used. This patch adds support
    for giving both pull strength to a pull device.
    caryr committed with Jan 29, 2011
  3. v0.9: Fix some bugs in task integer/real arguments.

    This patch fixes the following problem in the compiler:
      An integer task argument should be marked as an integer port.
      An implicit register can be converted to either a reg or an integer.
      An old style task port should default to <no type> unless reg or some
      other type is provided. ANSI style is always defined. For example:
        input ri;
        output ro;
        inout rio;
        real ri, ro, rio;
      should define all three task ports to be of type real.
    caryr committed with Jan 27, 2011
Commits on Jan 19, 2011
  1. Keep nulls in a verinum and keep as string when padding is mod 8.

    For diagnostics and to know what is really going on in the compiler
    we need to keep any NULL that is in a verinum string or when
    displayed as/converted to a string.
    When padding a verinum string if the padding is in multiples of eight
    then keep the string property.
    (cherry picked from commit dc17190)
    caryr committed with Jan 14, 2011
  2. is_cell needs to be defined for root scopes.

    This patch fixes a small bug found with the vlog95 back end. A root scope
    should define is_cell instead of leaving it undefined. Normally I would
    expect a root scope to not be a cell, but I don't think the standard
    prohibits this from happening, so copy the value from the definition.
    (cherry picked from commit 1a1b0d7)
    caryr committed with Jan 14, 2011
  3. Add a vpath for the local

    This patch doesn't completely fix the problem, but with it the problem
    is at least manageable. The issues was that when the lexor_keyword.gperf
    file is updated and you are building outside the source directory the
    Makefile would create a local as expected. The problem
    is that it always looked in the source directory for the file. This
    patch adds a special vpath rule that says to look in the build directory
    first and then in the source directory for
    This works as expected except for the first time the
    file is generated locally. During the make invocation it compares the
    source file to the gperf file and notices it is out of
    date. It then generates a new file in the build directory, but the make
    rule is still using the source file which didn't change so it doesn't
    rebuild as needed. To get the new file to compile you need to run make
    a second time to get the rule to execute using the local version of the
    file. This extra make invocation is only needed when the local file is
    first created since after that the rule always uses the local file.
    I plan to look at resolving the remaining issue, but there is much
    subtlety in this since you effectively need to break/rebuild the make
    dependency tree to get this to build correctly in a single run.
    (cherry picked from commit e67dcf5)
    caryr committed with Jan 14, 2011
Commits on Jan 13, 2011
  1. V0.9: Fix the display of characters with the MSB set (cast to unsigne…

    …d char).
    When a verinum is displayed as a string we need to make sure that any
    character that will be displayed as an octal constant must be converted
    correctly. Also change to isprint() instead of isgraph() since it is the
    same as isgraph() plus a space.
    caryr committed with Jan 1, 2011
  2. V0.9: Add a warning that ifnone with an edge-sensitive path is not su…

    Cadence allows an ifnone with an edge-sensitive path. Until we understand
    exactly what this is and how to implement it this patch adds a warning
    that an ifnone with an edge-sensitive path is not supported.
    caryr committed with Dec 14, 2010
  3. V0.9: Update some warning messages

    Update some of the tgt-vvp warning messages.
    caryr committed with Dec 14, 2010
Commits on Dec 3, 2010
  1. Update fstapi.{c,h} files to match GTKWave 3.3.17.

    The files generated after this patch is applied are not backwardly
    compatible with older versions of the API.
    (cherry picked from commit 25c1795)
    caryr committed with Dec 1, 2010
Commits on Nov 25, 2010
  1. V0.9: Fail if the user defines a real variable as a vector.

    Using reg real [1:0] var you can define a real variable with a
    range. This was crashing the run time. This patch catches this
    in the compiler and prints an appropriate message.
    caryr committed with Nov 19, 2010
  2. fix boring C lint in header

    With warnings turned sufficiently high in gcc, I get:
      .../vpi_user.h:568: warning: function declaration isn't a prototype
    when building VPI modules.  Patch is trivial.
    (cherry picked from commit 186779c)
    ldoolitt committed with Nov 18, 2010
  3. V0.9: Assert if the vcdid overflows.

    It should never happen, but if it does assert vs generating an
    invalid VCD identifier.
    caryr committed with Nov 17, 2010
  4. Ignore system tasks/functions NULL arguments in @* calculation.

    System tasks and functions can be defined to have NULL arguments.
    This patch makes the @* sensitivity list calculation skip these
    NULL (constant) arguments.
    (cherry picked from commit 9477154)
    caryr committed with Nov 16, 2010
  5. V0.9: Ignore COND in SDF timing check back annotations

    When back annotating from a SDF file we already ignore timing checks so
    we may as well ignore the COND statement that can be used with them.
    Also update a few other changes from development.
    caryr committed with Nov 14, 2010
  6. V0.9: Handle escaped characters in a SDF identifier.

    This patch adds the ability to parse a SDF identifier that contains
    escaped characters.
    caryr committed with Nov 13, 2010
Commits on Nov 19, 2010
Commits on Nov 10, 2010
  1. Another GTKWave file update,

    (cherry picked from commit 1ce595d)
    caryr committed with Nov 3, 2010
  2. V0.9: back port fixes from development.

    This patch back ports some fixes from development. It adds the ability
    to do signed === and !== correctly, adds support for && and || of real
    values in eval_tree and fixes an obscure bug in
    caryr committed with Nov 2, 2010
Commits on Nov 2, 2010
  1. Update GTKWave files to the latest from GTKWave CVS.

    This update fixes a rare bug in the FST file creation process along
    with a general sync of the files.
    (cherry picked from commit a359cc3)
    caryr committed with Nov 1, 2010