iverilog/releases/v13-0-release-note.html

202 lines
9.2 KiB
HTML

<!DOCTYPE html>
<html lang="en" data-content_root="../">
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" /><meta name="viewport" content="width=device-width, initial-scale=1" />
<title>🎉 Release V13.0 &#8212; Icarus Verilog documentation</title>
<link rel="stylesheet" type="text/css" href="../_static/pygments.css?v=fa44fd50" />
<link rel="stylesheet" type="text/css" href="../_static/alabaster.css?v=cb25574f" />
<script src="../_static/documentation_options.js?v=5929fcd5"></script>
<script src="../_static/doctools.js?v=888ff710"></script>
<script src="../_static/sphinx_highlight.js?v=dc90522c"></script>
<link rel="icon" href="../_static/favicon.ico"/>
<link rel="index" title="Index" href="../genindex.html" />
<link rel="search" title="Search" href="../search.html" />
<link rel="next" title="Icarus Verilog Usage" href="../usage/index.html" />
<link rel="prev" title="Icarus Verilog Release Notes" href="index.html" />
<link rel="stylesheet" href="../_static/custom.css" type="text/css" />
<meta name="viewport" content="width=device-width, initial-scale=0.9, maximum-scale=0.9" />
</head><body>
<div class="document">
<div class="documentwrapper">
<div class="bodywrapper">
<div class="body" role="main">
<section id="release-v13-0">
<h1>🎉 Release V13.0<a class="headerlink" href="#release-v13-0" title="Link to this heading"></a></h1>
<p>The Icarus Verilog development team is pleased to announce <strong>Release V13</strong> of Icarus Verilog.</p>
<p>Release V13 builds on the V12 series with a focus on correctness, runtime stability, improved
diagnostics, and incremental standard conformance improvements.</p>
<hr class="docutils" />
<section id="bug-fix-summary">
<h2>🐞 Bug Fix Summary<a class="headerlink" href="#bug-fix-summary" title="Link to this heading"></a></h2>
<p>Release V13 resolves numerous issues reported against V12, including:</p>
<ul class="simple">
<li><p>Incorrect signed constant handling.</p></li>
<li><p>Generate block naming collisions.</p></li>
<li><p>Elaboration-time assertion failures.</p></li>
<li><p>Runtime crashes in malformed corner cases.</p></li>
<li><p>Memory management issues during elaboration and simulation.</p></li>
</ul>
</section>
</section>
<hr class="docutils" />
<section id="major-changes-in-v13">
<h1>🔄 Major Changes in V13<a class="headerlink" href="#major-changes-in-v13" title="Link to this heading"></a></h1>
<section id="language-elaboration-fixes">
<h2>🧠 Language &amp; Elaboration Fixes<a class="headerlink" href="#language-elaboration-fixes" title="Link to this heading"></a></h2>
<p>Release V13 includes multiple fixes to elaboration and expression handling:</p>
<ul class="simple">
<li><p>Resolved generate block scope resolution issues affecting nested and conditional generate constructs.</p></li>
<li><p>Corrected signed arithmetic corner cases, including shift and width propagation behavior.</p></li>
<li><p>Fixed constant expression evaluation inconsistencies during parameter elaboration.</p></li>
<li><p>Improved handling of packed and unpacked arrays in assignments and port binding corner cases.</p></li>
<li><p>Addressed elaboration-time assertion failures triggered by malformed or ambiguous constructs.</p></li>
<li><p>Corrected several source-location reporting issues for elaboration errors.</p></li>
</ul>
<p>These changes improve standards conformance and eliminate behavioral inconsistencies observed in the V12 series.</p>
</section>
<hr class="docutils" />
<section id="simulator-vvp-improvements">
<h2>⚙️ Simulator (vvp) Improvements<a class="headerlink" href="#simulator-vvp-improvements" title="Link to this heading"></a></h2>
<p>The <cite>vvp</cite> runtime engine has received internal stability and correctness updates:</p>
<ul class="simple">
<li><p>Improved event scheduling behavior in zero-delay and non-blocking assignment scenarios.</p></li>
<li><p>Fixed race-condition corner cases uncovered by expanded regression testing.</p></li>
<li><p>Eliminated memory leaks affecting long-running or large simulations.</p></li>
<li><p>Resolved crash conditions caused by invalid internal state transitions.</p></li>
<li><p>Improved robustness of <cite>$dumpvars</cite> handling in large hierarchical designs.</p></li>
<li><p>General runtime consistency and determinism improvements.</p></li>
</ul>
<p><cite>vvp</cite> continues to enforce version matching between the runtime and generated bytecode. Designs
must be recompiled after upgrading.</p>
</section>
<hr class="docutils" />
<section id="vpi-updates">
<h2>🔌 VPI Updates<a class="headerlink" href="#vpi-updates" title="Link to this heading"></a></h2>
<p>Fixes improve VPI reliability and conformance:</p>
<ul class="simple">
<li><p>Corrected hierarchical object lookup behavior in specific corner cases.</p></li>
<li><p>Improved stability of callback registration during startup and shutdown.</p></li>
<li><p>Fixed invalid handle dereference scenarios that could result in segmentation faults.</p></li>
<li><p>Addressed inconsistencies in VPI object property reporting.</p></li>
</ul>
</section>
<hr class="docutils" />
<section id="diagnostics-toolchain">
<h2>🛠 Diagnostics &amp; Toolchain<a class="headerlink" href="#diagnostics-toolchain" title="Link to this heading"></a></h2>
<ul class="simple">
<li><p>Improved clarity and consistency of error and warning messages.</p></li>
<li><p>Better reporting of width mismatches and implicit net declarations.</p></li>
<li><p>More accurate diagnostic source locations.</p></li>
<li><p>Build system updates for compatibility with modern compiler toolchains.</p></li>
<li><p>Regression suite expansion and CI validation improvements.</p></li>
</ul>
</section>
<hr class="docutils" />
<section id="upgrade-notes">
<h2>📦 Upgrade Notes<a class="headerlink" href="#upgrade-notes" title="Link to this heading"></a></h2>
<ul class="simple">
<li><p>Recompile all designs when upgrading from V12 or any other prior version.</p></li>
<li><p>Review warnings carefully; improved diagnostics may expose previously silent issues.</p></li>
<li><p>The only known breaking change is that wires must now be declared before use; which is required in the standard (see <a class="reference external" href="https://github.com/steveicarus/iverilog/issues/1287">gh1287</a>).</p></li>
</ul>
</section>
<hr class="docutils" />
<section id="acknowledgments">
<h2>🙏 Acknowledgments<a class="headerlink" href="#acknowledgments" title="Link to this heading"></a></h2>
<p>We thank all contributors who reported issues, submitted patches, expanded regression coverage, and
improved documentation. Release 13 reflects continued community effort toward improving correctness,
stability, and maintainability.</p>
</section>
</section>
</div>
</div>
</div>
<div class="sphinxsidebar" role="navigation" aria-label="main navigation">
<div class="sphinxsidebarwrapper">
<h1 class="logo"><a href="../index.html">Icarus Verilog</a></h1>
<h3>Navigation</h3>
<p class="caption" role="heading"><span class="caption-text">Contents:</span></p>
<ul class="current">
<li class="toctree-l1 current"><a class="reference internal" href="index.html">Icarus Verilog Release Notes</a><ul class="current">
<li class="toctree-l2 current"><a class="current reference internal" href="#">🎉 Release V13.0</a></li>
<li class="toctree-l2"><a class="reference internal" href="#major-changes-in-v13">🔄 Major Changes in V13</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="../usage/index.html">Icarus Verilog Usage</a></li>
<li class="toctree-l1"><a class="reference internal" href="../targets/index.html">The Icarus Verilog Targets</a></li>
<li class="toctree-l1"><a class="reference internal" href="../developer/index.html">Icarus Verilog Developer Support</a></li>
</ul>
<div class="relations">
<h3>Related Topics</h3>
<ul>
<li><a href="../index.html">Documentation overview</a><ul>
<li><a href="index.html">Icarus Verilog Release Notes</a><ul>
<li>Previous: <a href="index.html" title="previous chapter">Icarus Verilog Release Notes</a></li>
<li>Next: <a href="../usage/index.html" title="next chapter">Icarus Verilog Usage</a></li>
</ul></li>
</ul></li>
</ul>
</div>
<div id="searchbox" style="display: none" role="search">
<h3 id="searchlabel">Quick search</h3>
<div class="searchformwrapper">
<form class="search" action="../search.html" method="get">
<input type="text" name="q" aria-labelledby="searchlabel" autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false"/>
<input type="submit" value="Go" />
</form>
</div>
</div>
<script>document.getElementById('searchbox').style.display = "block"</script>
</div>
</div>
<div class="clearer"></div>
</div>
<div class="footer">
&copy;2024-2026, Stephen Williams.
|
Powered by <a href="http://sphinx-doc.org/">Sphinx 7.2.6</a>
&amp; <a href="https://github.com/bitprophet/alabaster">Alabaster 0.7.12</a>
|
<a href="../_sources/releases/v13-0-release-note.rst.txt"
rel="nofollow">Page source</a>
</div>
</body>
</html>