code coverageの計測はcoveredを使用した。
coveredはTrevor Williams氏が開発し、GPLで公開している Verilog code coverage analysis toolだ。line coverage, toggle, condition (combinational logic)等の他にOVLによるAssertionにも対応している優れ物だ。
昨日までに作成したtest benchはmpifの粗動作を確認するため簡単なものだが、line coverageは回路(記述)の冗長な部分を見極めるのにも有効であり、その点において現時点で実行する意味はあると思う。
simulatorはicarus verilog (iverilog)を使用した。
←はcoveredやiverilogへの入力fileの内容と、実行の様子だ。
coveredは結果をGUIで見ることもでき、
covered report -view cdd_file でGUI modeで立ち上がる。
←で分かる通り左側のwindowがcoverageの結果表示で右側のwindowがsource表示用だ。
←からmpifのline coverageは98%であり、cover出来ていない部分があることがわかる。その部分をsource windowで確認すると、state machineのGRANT state部のif文の記述であることが判った。w_cmdは2bitでその前の部分で全ての場合について記述されているので問題の箇所はw_cmdの値が不定値でも無い限りは到達しない。冗長な回路記述だ。削除しよう。
covered良さそうですね。原稿書きが終わったら、私も試してみようと思います。
返信削除素晴らしいソフトウェアだと思います。
返信削除ぜひ、使って見てください。