火曜日, 3月 16, 2010

仕様を明確化する


[曖昧な仕様の解釈は人それぞれ]


これはハードウェアに限った事ではないと思いますが、仕様を明確化する事は重要です。

勿論、開発の初期段階で全ての仕様を明確にするのはほぼ不可能だと思うので、実際の工程では仕様の不明な点が見つかる毎に明確化させていくという手順を踏むことになると思います。

ここで重要なのは、不明な点をそのままにしておかないという事。「ここは多分こうだろう」と勝手に決めて実装してしまうのは非常に危険です。

多くの場合、人は自分の都合の良いように仕様を解釈します。という事は、かなりの確率でインタフェース相手の考えはあなたの考えとは異なるでしょう。

HDLで実装した後に、仕様が変更されると非常にエネルギーを浪費します。また、ハードの場合はさらにその先で仕様の不備が発覚すると莫大なコストが発生することも。

はじめは面倒かもしれませんが、コツコツと仕様を明確化して行く事が結果的には品質の向上とコストダウン、そしてストレスフリーにつながります。

2 件のコメント:

Unknown さんのコメント...

こんにちは。ブログを再開されたのですね?
仕様を明確にすることは本当に大事なことだと思います。多人数で開発するときはもちろん、1人で開発する際にも仕様を明確にしておかないと、半月前の自分の作業がわからなかったりします。
複雑な構成だと、C言語などでモデルを作って、いろいろな構成の損得を見積もる必要がありますね。これは、インターフェースの仕様を明確にする上でも重要なことかもしれません。
その上で、各箇所にアサーションを埋め込んで自分の意思を示すとともに、チェッカーとしての役割を期待したいです。

Ein さんのコメント...

> こんにちは。ブログを再開されたのですね?

はい。
とはいっても、更新は気まぐれになると思いますが。。。

どうやって仕様を明確にするかというのが重要だと思うのですが、インタフェース部分のプロトコルに関して言えば間違いなくアサーションが有効だと思います。
ARMもAXIのプロトコルチェッカーをSystemVerilog版とOVL版で提供しています。
独自のプロトコルであってもアサーションを記述しておくと検証や修正の時にかなり役立ちますよ。