<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Welcome | Yao Zheng@UHM</title><link>https://gustybear.github.io/docs/</link><atom:link href="https://gustybear.github.io/docs/index.xml" rel="self" type="application/rss+xml"/><description>Welcome</description><generator>Hugo Blox Builder (https://hugoblox.com)</generator><language>en-us</language><lastBuildDate>Fri, 08 May 2026 00:00:00 +0000</lastBuildDate><image><url>https://gustybear.github.io/media/logo_hu_d0a0b1783c391ac0.png</url><title>Welcome</title><link>https://gustybear.github.io/docs/</link></image><item><title>Online Verilog Simulation Guide</title><link>https://gustybear.github.io/docs/tutorials/verilog_sim_online/</link><pubDate>Tue, 30 Sep 2025 00:00:00 +0000</pubDate><guid>https://gustybear.github.io/docs/tutorials/verilog_sim_online/</guid><description>&lt;p>If you don’t have a local Verilog simulator (e.g., Icarus Verilog or Vivado XSim) installed, you can run this lab directly &lt;strong>in your web browser&lt;/strong> using free online tools such as &lt;strong>EDA Playground&lt;/strong> or &lt;strong>Makerchip&lt;/strong>. These platforms allow you to paste your Verilog source and testbench, simulate, and view console outputs or waveforms.&lt;/p>
&lt;h2 id="-option-1--using-eda-playground-recommended">🧩 Option 1 — Using EDA Playground (Recommended)&lt;/h2>
&lt;p>&lt;strong>Website:&lt;/strong>
&lt;/p>
&lt;h3 id="steps">Steps&lt;/h3>
&lt;ol>
&lt;li>Open the website and click &lt;strong>“Create New Playground”&lt;/strong>.&lt;/li>
&lt;li>In the &lt;strong>left code pane&lt;/strong>, paste your &lt;strong>design source&lt;/strong> file:
&lt;ul>
&lt;li>e.g., &lt;code>src/reg_multifunc.v&lt;/code> or &lt;code>src/regfile_2r1w.v&lt;/code>&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>In the &lt;strong>right code pane&lt;/strong>, paste the corresponding &lt;strong>testbench&lt;/strong>:
&lt;ul>
&lt;li>e.g., &lt;code>tb/tb_reg_multifunc.v&lt;/code> or &lt;code>tb/tb_regfile_2r1w.v&lt;/code>&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>In the &lt;strong>Tools &amp;amp; Simulators&lt;/strong> panel:
&lt;ul>
&lt;li>Set &lt;strong>Language&lt;/strong> to &lt;code>Verilog 2001&lt;/code> or &lt;code>SystemVerilog 2012&lt;/code>&lt;/li>
&lt;li>Choose &lt;strong>Simulator&lt;/strong>: &lt;code>Icarus Verilog (vvp)&lt;/code>&lt;/li>
&lt;li>Uncheck “Enable Design for UVM” if it appears&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>Click &lt;strong>Run ▶️&lt;/strong> at the top.&lt;/li>
&lt;li>Watch the console output:
&lt;ul>
&lt;li>You should see &lt;code>[PASS]&lt;/code> and &lt;code>[FAIL]&lt;/code> messages from the testbench.&lt;/li>
&lt;li>All “PASS” messages indicate correct behavior.&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ol>
&lt;h3 id="saving--sharing">Saving &amp;amp; Sharing&lt;/h3>
&lt;ul>
&lt;li>Click &lt;strong>Share → Save &amp;amp; Share Link&lt;/strong>.&lt;/li>
&lt;li>Include the generated link in your lab report or submission.&lt;/li>
&lt;/ul>
&lt;hr>
&lt;h2 id="-option-2--using-makerchip-advanced-visualizer">⚙️ Option 2 — Using Makerchip (Advanced Visualizer)&lt;/h2>
&lt;p>&lt;strong>Website:&lt;/strong>
&lt;/p>
&lt;h3 id="steps-1">Steps&lt;/h3>
&lt;ol>
&lt;li>Go to the Makerchip homepage → click &lt;strong>“Start Designing”&lt;/strong>.&lt;/li>
&lt;li>Paste both your &lt;strong>design&lt;/strong> and &lt;strong>testbench&lt;/strong> codes into the editor.&lt;/li>
&lt;li>Click &lt;strong>Build &amp;amp; Run&lt;/strong>.&lt;/li>
&lt;li>View the &lt;strong>console log&lt;/strong> for pass/fail messages and use the &lt;strong>waveform viewer&lt;/strong> for debugging.&lt;/li>
&lt;li>Makerchip automatically recognizes any module ending with &lt;code>_tb&lt;/code> as the top-level testbench.&lt;/li>
&lt;/ol>
&lt;hr>
&lt;h2 id="-expected-output">✅ Expected Output&lt;/h2>
&lt;p>A successful run will produce console logs like:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-gdscript3" data-lang="gdscript3">&lt;span class="line">&lt;span class="cl">&lt;span class="p">[&lt;/span>&lt;span class="n">PASS&lt;/span>&lt;span class="p">]&lt;/span> &lt;span class="n">LOAD&lt;/span>&lt;span class="p">:&lt;/span> &lt;span class="n">q&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="n">A5&lt;/span> &lt;span class="err">@&lt;/span> &lt;span class="n">t&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="mi">10&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="p">[&lt;/span>&lt;span class="n">PASS&lt;/span>&lt;span class="p">]&lt;/span> &lt;span class="n">SHL&lt;/span>&lt;span class="p">:&lt;/span> &lt;span class="n">q&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="mi">4&lt;/span>&lt;span class="n">A&lt;/span> &lt;span class="err">@&lt;/span> &lt;span class="n">t&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="mi">20&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="p">[&lt;/span>&lt;span class="n">PASS&lt;/span>&lt;span class="p">]&lt;/span> &lt;span class="n">SHR&lt;/span>&lt;span class="p">:&lt;/span> &lt;span class="n">q&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="mi">25&lt;/span> &lt;span class="err">@&lt;/span> &lt;span class="n">t&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="mi">30&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">tb_reg_multifunc&lt;/span> &lt;span class="n">completed&lt;/span> &lt;span class="n">OK&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>If something fails, you’ll see:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">[FAIL] SAR from 0x80: got 40 expected C0 @ t=70
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>Fix your RTL code and re-run the simulation.&lt;/p>
&lt;hr>
&lt;h2 id="-tips">💡 Tips&lt;/h2>
&lt;ul>
&lt;li>Use &lt;strong>Ctrl + Enter&lt;/strong> (EDA Playground) or &lt;strong>Ctrl + R&lt;/strong> (Makerchip) to rerun quickly.&lt;/li>
&lt;li>To view waveforms in EDA Playground:
&lt;ul>
&lt;li>Check “Enable VCD dump” under &lt;em>Run Options&lt;/em>, then open the waveform viewer.&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>Always verify reset behavior and edge timing (posedge clock updates).&lt;/li>
&lt;li>Record your &lt;strong>simulation logs&lt;/strong> and include screenshots in your report.&lt;/li>
&lt;/ul>
&lt;hr>
&lt;p>&lt;strong>End of Online Simulation Guide&lt;/strong>&lt;/p></description></item></channel></rss>