FPGA開発日記

カテゴリ別記事インデックス https://msyksphinz.github.io/github_pages , English Version https://fpgadevdiary.hatenadiary.com/

オープンソースFPGAフォーマットを知る

Google Open Source Blog の "FPGA Interchange format to enable interoperable FPGA tooling" を読んでわかったことをまとめる。

FPGAのツールチェインはそれぞれのベンダで発展しており、ツールチェイン間での互換性については考慮されることがあまりない。 HDLという言語は共通であるが、それらをFPGA向けビットストリームに変換するためのフォーマットがそれぞれ異なる。

各種FPGA向けビットストリームの生成ツールは以下のようなものがある。

共通フォーマットを導入することで、各種ビルディングブロック内でのフォーマットを交換可能となる。このために、GoogleとAntomicroによるFPGA Interchange format プロジェクトを開始し、開発者があるツールから別のツールへ迅速に移行できるよう、参入障壁を下げる統一フレームワークを提供することにした。 Antmicroと他のCHIPSアライアンスメンバーは共同で、FPGA業界が必要とする開発標準となるべく、Interchangeフォーマットの定義と関連ツールの開発を進めている。

このフォーマットを概観すると、大まかに以下のコンポーネントに分類される。

  • バイス資源: FPGAの内部構造とセルライブラリを定義する。基本ブロックのフリップフロップDSPブロックなどを含む。
  • 論理ネットリスト: 論理合成後のネットリストを示す。
  • 物理ネットリスト: 配置配線ツールによる物理的な配置配線情報を含んでいる。

GoogleとAntmicroはこのフォーマットに対応した配置配線ツールであるnextpnrというツールチェインを開発した。 AntmicroはnextpnrをXilinx-7シリーズ及びLattice Nexus FPGAファミリ向けに拡張する。

Xilinxのデバイスをサポートするために、Xilinxの研究チームと共同しRapidWrightフレームワークを使っている。このツールにより、デバイスデータベースを本フォーマットに変換して出力することができる。

参考: RapidWright フレームワーク

github.com


まずキーワードは、オープンソースFPGAフォーマット。そしてこの文章を読みながらいろんなツールがあることを知った。

それぞれの技術について読み解いていくと面白いかもしれない。

f:id:msyksphinz:20220214231804p:plain