XXXXでいこう!

HDLばかりが設計ツールではない。他のツールは何が有る?

目次

FPGAとC

 FPGAをプログラム言語であるC言語使って設計したいという要望は古くからありました。回路が複雑になり、より抽象度の記述を求められたのと、ソフトウェアとの協調シミュレーション(Co-simulation)が必要になってきます。しかしソフトウェア言語であるC言語そのままハードウェアの設計に用いるにはいくつかの問題点がありました。  そこで現在では二つの方法が取られています。

  • Cにライブラリーを追加して対応する方法。
利点:コンパイラはCのコンパイラが使用できる。
欠点:ライブラリーで拡張するため、記述が複雑になる。
  • C言語をベースに機能を拡張する。
利点:機能を簡潔に記述できる。
欠点:コンパイラは専用のものが必要になる。


C言語設計と論理合成

C言語で記述した回路をFPGAに展開するには二通りの方法がある。

  1. VHDLもしくはVerilogに翻訳する。
  2. 直接ネットリストに変換する。

 市場の主流は前者であると思われる。前者の方が従来のツールとの親和性がよいので使いやすい。後者の場合、ツールも高価であり、対応の取れていないFPGAベンダーが殆んどなので、現時点では使いにくい。


C言語での設計ツール

  • SystemC

 C++のクラスライブラリーとして設計されている。そのためコンパイラはGCCが使用できる。
 ライブラリーはこちらからフリーでダウンロードが出来る。
 論理合成は別途ツールが必要


  • Handel-C

 ハードウェア記述に適応させるためANCIのC言語を拡張したもの。もともとはオックスフォード大学で研究されていたものが起源。旧版はフリーで入手できたようだが、現在は商用のものしか無いようでagilityが製品を出している。メンター社の製品はこれに基づく。


  • FPGAC

 現時点ではフリーのFPGAコンパイラ。C言語からFPGAのネットリストを発生させることができるが、古いテクノロジーしかサポートしていない。VHDLのネットリストを発生させる事が出来る。 FPGACのホームページ->FPGA C Compiler

JAVA言語での設計ツール

JHDL JAVA言語でFPGAの設計しようというフリープロジェクト