FPGA開発

このページではCosmo-ZのFPGAの論理合成方法と、ユーザ回路の組み込み方について説明しています。

具体的な手順はQiitaに執筆していますので、リンク先をご覧ください。

Vivado Block Designによる設計

Cosmo-ZのFPGAは、VivadoのBlock Designを使用して設計されていています。モジュール化されたブロックを組み合わせてデータパスを接続するというビジュアル的な設計手法が用いられています。

論理合成に必要なVivadoのバージョン

Vivadoの推奨バージョンは2018.3以降です。

モジュール間のバスはAXI Streamという標準バスで配線されています。

NahiViva(なひビバ)によるプロジェクト管理

Vivadoのプロジェクトは数百Mバイトと非常に巨大になります。また、バイナリファイルも多く、プロジェクトファイル中にパス名が埋め込まれるため、gitやsubversionによる管理と相性がよくありません。

そこで、NahiVivaというTclスクリプトライブラリを使用してコンパクトなテキストソースのみにしてアーカイブしています。ダウンロードしたプロジェクトファイルにはXPRファイルが含まれていませんので、下記のドキュメントを参考にして論理合成してください。

Linuxでの論理合成

Cosmo-ZのFPGAは、Linux上のVivadoでも論理合成を行うことができます。

ユーザ回路の追加方法

Cosmo-ZのFPGAにはフィルタブロックとトリガブロックという、ユーザが自由かつ簡単にカスタマイズすることができるモジュールがあります。

  • フィルタブロックにお客様の回路を組み込むことで、AD変換された生のデータをFPGA内のユーザ回路で自由に処理することができるようになります。
  • トリガブロックにお客様の回路を組み込むことで、お客様の独自のトリガを埋め込むことができます

Cosmo-ZのFPGAの論理合成方法および、カスタマイズ方法を下記のページに記載しました。

例えば、フィルタブロックから取り出した計測データを、ユーザ回路でリアルタイムに処理し、DACボードから計算結果を出力することで、リアルタイムな制御装置を開発するなどの応用ができます。