FPGAのカスタマイズ
このページではCosmo-Zにオリジナルの回路を追加したり、ADCのビット幅や拡張基板の枚数を変更するための、FPGAカスタマイズ方法について説明します。
プロジェクトのダウンロード
特電のダウンロードサイトから、Vivadoのプロジェクトを取得します。
- Cosmo-Z Mini2 FPGA ソースコード (2023/10/17)
- Cosmo-Z Type-C FPGA ソースコード (2024/8/25)
このアーカイブファイルを解凍したら、できるだけ短いフォルダ名の場所に移動してください。また、フォルダ名には漢字が含まれないようにしてください。
良いフォルダ名と悪いフォルダ名の例
× D:\Users\内藤\Desktop\CosmozMini2FPGA-release (1)
〇 D:\naitou\CosmozMini2FPGA\
Vivadoのダウンロード
推奨するVivadoのバージョンは2022.2もしくは2023.1です。AMD XILINXのWebサイトからVivadoをダウンロードしてインストールしてください。リビジョンはWebPackでもMLでも何でも構いません。
プロジェクトの復元
Cosmo-ZのVivadoプロジェクトフォルダのサイズは約1GByteになるので、フォルダを圧縮して配布するのではなく、プロジェクトのソースコード(VHDL、TCL、XCIなどの本当のソースレベル)に還元した状態で配布しています。そのため、上記のアーカイブの中にはxprやbdは入っておりません。
上記のアーカイブファイルを解凍すると、以下のようなフォルダが現れます。
SETTING.TXTをメモ帳などで開くと、
という記述があるので、ご利用されるVivadoのバージョンに合わせて書き換えます。
書き換えたらopen_project_gui.cmdを実行します。
MS DOSプロンプトの黒い画面が現れます。
黒い画面に白い文字が現れます。
Vivadoが起動します。
Vivadoがバックグラウンドでプロジェクトを作成するので、そのままにします。
ブロックデザインが開き、自動的にIPモジュールが置かれ、配線が接続されていきます。
すべての配線が終了すると、Vivadoの実行中状態が解除されます。
これでVivadoのプロジェクトが復元されました。フォルダの構成は以下のようになります。
途中でエラーが出たときなど、再度、プロジェクトを生成する場合はプロジェクトフォルダにあるvivadoとtempは削除してopen_project_gui.cmdを実行してください。
プロジェクトのビルド
プロジェクトをビルドするには、通常のVivadoの使い方のように、Generate Bitstreamを実行してもよいのですが、これだと\vivado\vivado.runs\vivado.impl_1\フォルダにbitファイルが作られてしまいます。
そこで、Cosmo-Zのプロジェクトでは、TCLコンソールにNahiRunと入力してビルドを実行することを強く推奨します。
NahiRunはTCLのスクリプトで、
- コメントからのパラメータ設定
- IP CoreのUpgrade IP
- Synthesis, Implementation , および Generate BitStreamの実行
- Bitファイルをプロジェクトのフォルダのトップにコピー
を行います。
なお、最初の1回目のビルドはIPコアのGenerateを含むので長い時間がかかりますが、2回目以降は早くなります。
ビルドが完了すると、次の図のように、プロジェクトフォルダにcosmoz_main_wrapper.bitというファイルが出来上がります。
ADC数、ADCビット幅のカスタマイズ
Cosmo-ZはADCの数やビット幅など、さまざまなパラメータがあります。よくあるパラメータはBlockDesign内のすべてのIPを一括で変更できるように、コメントからパラメータ反映にできるようにしています。
具体的には、BlockDesign左上にあるこのコメントを書き換えることで、すべてのIPのパラメータが一括変更されます。
変更可能なパラメータは
- MAX_ADCCH・・・8,16,24,32のいずれかを指定
- ADC_BITS・・・12,14,16のいずれかを指定
- FPGA_VERSION・・・任意の値を指定。/cosmoz.elf fpgavで読みだされる
です。パラメータを書き換えたら、NahiRunを行ったときに自動的に反映されますが、NahiConfigByCommentと入力しても手動で反映できます。
プロジェクトの保存
Block Designを変更した場合は、TCLコンソールに NahiSave と入力してください。変更点がTCLのファイルに保存され、vivadoフォルダを全削除しても戻せるようになります。
Boot.binの生成
boot.binはSDカードに書き込む起動ファイルですが、Cosmo-Zではboot.binを生成する必要はありません。SDカードの書き換えはリスクを伴うため通常のやり方は推奨しません。
推奨する方法は、FPGAの更新のページで示したように、Cosmo-ZのWeb経由でbitファイルを送って置き換える方法です。このやり方が最も安全です。
どうしてもローカルPC上でboot.binを生成した場合は、mkbootフォルダに移動して、mkboot.batを起動してください。バッチファイルが起動してboot.binを生成します。
このboot.binをSDカードに書くか、Web経由でCosmo-Zに送ってください。
以上の手順で、Cosmo-Zのソースを変更して再コンパイルし、新しいデザインで動かすことが可能になります。