🧪 5.1 シミュレーション結果の確認と波形評価
Simulation Results and Waveform Evaluation
本節では、PoCブロック(FSM、MUX、Adder)を対象に行った Verilogシミュレーション の結果を、波形ファイル(.vcd
)を通じて 可視化・検証 する方法を学びます。
単に出力信号が出たかどうかではなく、タイミング関係・フラグの遷移・信号の整合性 を総合的に評価します。
🧰 使用ツール|Tools Used
種類|Type | ツール|Tool |
---|---|
シミュレータ | Icarus Verilog (iverilog, vvp) |
波形ビューア | GTKWave (.vcd ファイル表示) |
🗂️ 対象ブロックと波形ファイル|Target Blocks & Waveform Files
ブロック|Block | 波形ファイル|VCD File | 検証目的|Purpose |
---|---|---|
FSM | fsm.vcd |
状態遷移と完了フラグの確認 |
MUX | mux.vcd |
選択信号と出力の一致確認 |
Adder | adder.vcd |
入力A/Bと加算結果・COUTの確認 |
🔍 GTKWaveによる表示方法|GTKWave Usage
以下のコマンドで .vcd
ファイルを開きます:
gtkwave fsm.vcd
Makefile に gtkwave
起動ステップを含めると、シミュレーション後に自動表示も可能です。
✅ 表示の工夫|Display Tips
clk
,rst_n
,start
,flag_done
など主要信号を上部に配置zoom fit
機能で全波形を一括表示- グループ化や色分けで視認性向上も可能
🔎 検証観点|Key Evaluation Points
🎯 FSM(状態遷移)
clk
立ち上がりで状態が変化しているかstart
信号でIDLE → LOAD
遷移を確認EXEC
状態でflag_done
が1
になるかrst_n
によりIDLE
に戻るか
🔀 MUX(2:1セレクタ)
SEL = 0
→ 出力Y = A
SEL = 1
→ 出力Y = B
SEL
変化に出力が即時追従しているか
➕ Adder(4bit加算器)
SUM = A + B
が常に正しいか- 桁あふれ(Carry Out)発生時、
COUT = 1
を確認
💡 アサーションの活用(発展)|Assertions for Robust Testing
設計内に assert
文を追加すれば、自動的な動作検証が可能です:
always @(posedge clk) begin
if (state == DONE) assert(flag_done == 1);
end
🔧 → 波形を目視確認せずとも、異常検出が可能になります
📘 教材的まとめ|Summary
波形確認は、設計の「正当性の検証」における最初のステップです。
ここでの観察力・検証スキルが、物理設計や実装信頼性に直結します。
🔗 次節への接続|Next Section
📁 5.2 面積・タイミングの評価とレポート解釈
→ OpenLaneレポートをもとに、設計実装の効率や性能を数値的に評価します。