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ファイルが含まれていませんので、下記のドキュメントを参考にして論理合成してください。
- Cosmo-ZのFPGAソース公開とビルド方法 2019/12/9公開
Linuxでの論理合成
Cosmo-ZのFPGAは、Linux上のVivadoでも論理合成を行うことができます。
- Vivadoを自動化するTclスクリプトをLinuxでも使う 2020/1/7公開
ユーザ回路の追加方法
Cosmo-ZのFPGAにはフィルタブロックとトリガブロックという、ユーザが自由かつ簡単にカスタマイズすることができるモジュールがあります。
- フィルタブロックにお客様の回路を組み込むことで、AD変換された生のデータをFPGA内のユーザ回路で自由に処理することができるようになります。
- トリガブロックにお客様の回路を組み込むことで、お客様の独自のトリガを埋め込むことができます
Cosmo-ZのFPGAの論理合成方法および、カスタマイズ方法を下記のページに記載しました。
- ZYNQ搭載高速ADCボード「Cosmo-Z」のユーザ回路追加(前編) 2020/1/6公開
- ZYNQ搭載高速ADCボード「Cosmo-Z」のユーザ回路追加(後編) 2020/1/6公開
例えば、フィルタブロックから取り出した計測データを、ユーザ回路でリアルタイムに処理し、DACボードから計算結果を出力することで、リアルタイムな制御装置を開発するなどの応用ができます。