挑戦!OpenCoresにIPコアを登録(その2)

OpenCores

OpenCoresのデザインガイドラインを確認してみました。
FAQページのDesign Guidelinesには次のように書かれています。

・設計言語は何を使えばよいですか?
特におすすめの言語はありませんが、あまり使われていない言語で設計されたIPコアは利用者が少ないかもしれません。ほとんどの設計者はVHDL, Verilog,SystemVerilogを利用しています。
・奨励するSoCバスは何ですか?
WISHBONEバスです。よく利用されているバス規格のうち、真に”フリー”と呼べる唯一の規格です。”Wishbone”ページには、よく利用されているSoCバス規格の比較レポートが置いてあります。
・OpenCoresのコーディングガイドラインはありますか?
こちらです。

OpenCoresのコーディングライドライン

OpenCoresのデザインガイドライン「OpenCores HDL modeling guidelines」を読むと、コーディングガイドラインが重要度に応じて3つのクラスにまとめられていました。

ガイドラインの3つのクラス

Good practice:
共通の優れた取り組みなので、ほとんどの場合に適用されるべきガイドライン。ある特異的なケースでは、このガイドラインに違反すると問題が起こる場合がある。
Recommendation:
奨励されるガイドライン。このガイドラインに違反しなければ、ほとんどの問題発生を防げる。
Strong recommendation:
厳格なガイドライン。どのような場合であっても守る必要がある。ルールに違反する場合には、違反することに納得できる理由が必要。マストルール。

今回適用するガイドライン

今回登録を行おうとしているIPコアでは、次のガイドラインを適用することにしました。(現在でも適用しているガイドラインや、デザインの機能上関係のないガイドラインは省略しています。)

  • 動作のコメントを書いて下さい。できればアサイン、ブロックごとに。(Strong Recommendation)
  • リセットは、非同期アクティブHighにしてください。(Recommendation)
  • WISHBONEバスを利用してください。(Recommendation)
  • IPコアの外部I/Oはレジスタにしてください。(Recommendation)
  • IPコアのI/O名は奨励されているルールを守ってください。(Recommendation)
  • 負論理の信号は*nを使用してください。(Recommendation)
  • 私たちの標準ファイルヘッダを利用してください。(Recommendation)

コーディングガイドラインと共に奨励されていること

ガイドラインの「Before you start」の章には、次の項目が書かれていました。

・仕様書を書いてください。
・デザインドキュメントを書いてください。
・SVNで管理してください。
・WISHBONEモデルなどを利用して、検証環境を構築してください。
・推奨されるディレクトリ構造にしてください

今回のIPコアへの適用について考える

OpenCoresが奨励する項目への対応は、一つ一つはあまり大変ではありません。しかし、すべてを漏れなく行おうとすると、やはりそれなりの時間がかかりそうです。一番時間がかかりそうなのは、デザインドキュメントです。デザインドキュメントをどの程度詳細に書くかは考えどころです。

その3に続く。

タイトルとURLをコピーしました