003. なぜ機能シミュレーションをするのか

HDLの記述品質は、設計者の技量がものをいいます。

コードレビューには限界があります。書いたコードは、設計者の頭のなかでは動く気がしているけれど、だいたい抜けや勘違いがあるから、動くことを証明する必要があります。証明には、機能シミュレーション と実機評価があります。(ここではタイミング解析はのぞく)

機能シミュレーションで確認可能な動きの集合と、実機評価で確認可能な動きの集合、そして「製品として合格」とする動作確認の集合があります。合格の集合を如何にカバーするかが重要です。

機能シミュレーションと実機評価は、得意不得意があります。

前者は、入力信号のタイミングとパターンを多種多様に生成できるので、確認可能な集合は広い一方で、実時間で数秒以上のシミュレートは処理時間がかかりすぎて現実的ではありません。(それをカバーするた めにハードウェアエミュレータがありますが。)

後者は、入力信号のタイミング、パタンは、用意したデバイスや基板によりかなり限定される一方で、長時間の動作確認が行えます。いわゆるヒートランなど。

実機評価で動けば大丈夫という話を時々聞きますが、とても品質の低い考え方だと思ってしまいます。