記述スタイル
RTL記述を書く上での制約 (文法、コーディング規約等)には次の5つのレベルがあると思う。
レベル1,2は文法すなわち各ツールでERRORにならないための最低限のルールであり、レベル3の同期設計ルールはFPGA設計では常識で論理合成ツールがWARNINGぐらいは出してくれる。しかしこれらの制約だけでは自由度がまだ多く残っていて、人によってかなり見た目のばらばらなコードを書いてしまう。できた回路が動けばいいという場合もあるが、一般には
レベル4,5の記述スタイルをコーディング規約として決めておかないと、
→ 他人が読めない、時間がたつと本人も読めない
→ レビューできない、デバッグできない、分担できない、仕様変更できない、流用できない
という事態になる。もちろん設計や仕様自体が汚いのがコードが汚くなる主因ではあるが、コーディング規約も意外と効いていると思う。
◇
この種のルールが書いてある本としては「RTL設計スタイルガイド」(STARC)があるが、いろいろな内容が詰め込まれているので初心者が読むには難しい。上記のレベル4,5の記述スタイルうち「RTL設計スタイルガイド」に書いてあることよりも主観的で細かいコーディングのTipsも拾ってみようというのが本章を書いたきっかけである。