いまさら聞けない!電気回路設計者向け EDA基礎知識 可読性の高い記述とは

LSI/FPGAの設計ではVHDLやVerilog HDLといったHDLによる設計が主流です。
論理合成が可能な範囲であれば、これらの言語はどのような記述も可能です。
また極端な場合、テストベンチ内の文法さえ正しければシミュレータはコンパイル可能です。
しかし、それで何も問題ないでしょうか?例えば、ある特定の条件時の動作が記述されていなければ実際の回路はどのように動くでしょうか?また"clk"という信号をリセット信号として扱った場合、そのソースコードを再利用する際に別の設計者に誤解を与えるかもしれません。
このような問題を回避するためには曖昧な記述は避け、ルールに従った記述を行う必要があります。
ここでは特に再利用を意識した記述スタイルをいくつかご紹介致します。

回路設計はHDLによる設計が一般的であることから、もはや一種のプログラミングと言っても良いのかもしれません。
そこで重視したいのが「ソースコードの質」です。
質の高いコードはバグがない(少ない)だけではなく、メンテナンスや機能拡張が容易であったり、検証しやすいなど多くのメリットをもたらします。
如何に質の高いソースコードを記述するか?皆さんも色々な工夫をなされているかと思いますが、今回は「可読性」の観点でソースコードの質の向上を考えてみたいと思います。

基本的に(?)他人が書いたソースコードは読みにくく、理解しにくいものです。同じ言語であっても、ちょっとした個人の癖(記述スタイル)などにより第三者が読みにくいと感じてしまうことはよくあることです。最悪なのは「以前自分自身で書いたソースコードが解読できない」というような状況です。製品開発ではあってはならないことなのですが、意外に経験したことのある方も多いのでは?

可読性とは「読みやすさ」や「理解しやすさ」の指標ですが、この可読性は「検証のし易さ」や「メンテナンスのし易さ」に大きく影響します。デバッグ時の作業を考えてみて下さい。波形出力などを基に不具合箇所のソースコードを1行ずつ追いかけることがありますが、そこで「読みにくい」ソースコードだと余計に時間がかかってしまいます。特に検証や保守においては設計者以外にも第三者が対応するケースがあるだけに、誰が見ても分かりやすく読みやすいコードが求められるというわけです。
そこで、可読性を高めるための方法をいくつか取り上げてみます。

開発するメンバーで記述スタイルを統一する

開発メンバーそれぞれの癖をなくし、グループ内で記述スタイルを統一します。ヘッダの形式やインデント(スペース、タブ)の設定、コメントの桁数などを揃えます。 下記の項目も含めて「コーディング規約」として、開発グループ内で使用すると良いでしょう。

信号名、定数名に意味のある名称を付ける

「A」「B」「X」「TMP」など、その場しのぎでとっさに付けた名称は、後々の理解の妨げとなりやすいです。
その信号や定数の特徴を表す意味のある名称を付けることを推奨します。また信号と定数を明確に識別するために、定数名の先頭を「P_」や「C_」で始めると、よりコードが読みやすくなります。  (※PはParameter、CはConstantの頭文字を使用)

適切なコメントを入れる

コメントは、ソースコードを読む際に理解の助けとなり得るもので非常に重要です。しかし、コメントの内容がコードに書かれているものと同じであれば何の意味もありません。コメントにはコードで行う演算や処理の「理由」などを書くようにします。 設計者がソースコードを記述する際に、分かりにくいと感じる部分や注意が必要と思われる箇所には、積極的にコメントを挿入すべきです。

回路構造を意識した記述を行う

生成した信号を入力側で参照することを「フィードバック」と言います。このフィードバックはソースコードの可読性を低下させます。
無意識の内にフィードバック信号を多用してしまうと、記述した本人ですら理解不能なコードになってしまうことも少なくありません。
このような状況に陥らないためには、回路構造を意識しながらコードを記述しなければなりません。フィードバック信号も必要最低限の使用に抑えます。
一人前の回路設計者であればソースコードの質にこだわり、可読性が高く、綺麗で美しいコードを書きたいものです。
あなたが書いているコードは、いかがですか?

転載元:Copyright© 2016 hdLab, Inc. All Rights Reserved.
※転載許可を得て掲載しています。

イメージを含めた具体的な記事については以下↓「デザインチェック」を参照ください。