オンライン Verilog コンパイラ
コードスニペットを書いて、実行して、共有できます — セットアップ不要。
main.v
出力を表示するには、実行をクリックしてください。
Plusargsシミュレータに渡される実行時パラメータ — テストベンチで
$value$plusargs または $test$plusargs で読み取ります。キー値
Verilog HDL をブラウザで書き、コンパイルし、シミュレーションする
無料のオンライン Verilog コンパイラ・シミュレータです。Verilog または SystemVerilog のモジュールを書き、テストベンチを組み立てて Run を押せば、標準出力と VCD 波形がそのまま表示されます。インストールも、Vivado も Quartus も、ツールチェーンのセットアップも不要。エディタはクロック付きカウンタのテストベンチで開くので、数秒で編集して実行できます。
コードは Icarus Verilog (iverilog) でコンパイルされ、サンドボックス化されたコンテナ内で vvp 上で実行されます。だから本物の Verilog HDL のセマンティクスがそのまま動きます — クロック駆動の always ブロック、ノンブロッキング代入、階層的なモジュールインスタンス化、$display、$finish。テストベンチに $dumpfile と $dumpvars を追加すれば、波形タブが 1 ビット信号や多ビットバスを、ドラッグ可能なカーソル、遷移、信号ごとの値ピルとともに描画します。Plusargs (+KEY=VALUE / +FLAG) は $value$plusargs と $test$plusargs 経由でテストベンチに渡るので、ソースを書き換えずにクロック周期、実行長、機能フラグをスイープできます。
この Verilog コンパイラの強み
- 即時コンパイル&シミュレーション — Verilog HDL を書いて Run を押せば、標準出力と VCD 波形が数秒で表示されます。
- Verilog と SystemVerilog のシンタックスハイライト — VS Code と同じエディタエンジン、module/endmodule のスコープ、キーワードの自動補完。
- 波形ビューア内蔵:テストベンチから $dumpfile と $dumpvars を出力すれば、波形タブが信号、バス、遷移、可動カーソル、そして信号ごとの値ピルを表示します。
- テストベンチ用 Plusargs パネル: +CYCLES、+PERIOD、+VERBOSE を $value$plusargs / $test$plusargs 経由で渡し、ソースを書き換えずに再実行できます。
Verilog プレイグラウンドで作れるもの
- 組合せ回路 — 加算器、マルチプレクサ、ALU — を $display チェック付きのテストベンチに配線し、即座にフィードバックが得られます。
- クロック同期式の順序回路 — カウンタ、シフトレジスタ、有限状態機械を
always @(posedge clk)で駆動し、VCD 波形で信号遷移を確認できます。 - パラメータスイープ:iverilog/vvp のコマンドラインと同じ感覚で、+CYCLES、+PERIOD、+VERBOSE の plusargs を渡して実行ごとに動作を切り替えられます。
オンライン Verilog コンパイラ FAQ
Verilog とは?
Verilog はハードウェア記述言語 (HDL) で、単純な組合せゲートからフルプロセッサまで、デジタル回路のモデリングとシミュレーションに使われます。コードでモジュール、配線、レジスタを記述し、Verilog コンパイラでコンパイルして、テストベンチを実行して動作を検証します。SystemVerilog は Verilog のスーパーセットで、検証向けの機能が追加されています。プレイグラウンドはどちらも受け付けます。
オンライン Verilog コンパイラは無料ですか?
はい、Verilog コンパイラとシミュレータは無料で使えます。登録も不要、Vivado や Quartus のライセンスも不要、インストールするツールチェーンもありません — モジュールを書いて Run を押すだけです。
Icarus Verilog や EDA ツールをインストールする必要はありますか?
いいえ。コードは iverilog でコンパイルされ、サーバー上のサンドボックスコンテナ内で vvp によって実行されます。Verilog のソースを書いて Run を押せば、あとはコンパイラとシミュレータが処理します。
Verilog コードの波形を見るには?
テストベンチの
initial ブロック内で $dumpfile("dump.vcd") と $dumpvars(0, your_module) を呼び出します。Run 後、Waveform タブに信号が描画されるので、トレース上の任意の場所をクリックすればカーソルが置かれ、その時点の信号ごとの値を読み取れます。Plusargs を使った Verilog テストベンチの書き方は?
Plusargs パネルに行を追加すると (例: CYCLES=10、VERBOSE)、コマンドラインで +CYCLES=10 +VERBOSE としてシミュレータに渡されます。テストベンチ側では、整数値は $value$plusargs("CYCLES=%d", n)、boolean フラグは $test$plusargs("VERBOSE") で読み取れます。デフォルトのスターターコードに両方のパターンが載っています。