こんにちは! ネフロックでハードウェアを担当している ごとぅー です。
前回のブログでは K26 SOM 拡張基板の概要をお話させていただきましたが、概要だったため内容がちょっと薄かったかと思います。
今回は Xilinx Kria K26 SOM の技術的なことについてもう少しお話いたします。
K26 SOM について
前回もお話した通り今回の基板の目的は Kria K26 SOM を使って「エッジシチュエーションでリアルタイムにAIで音声処理をする」ということでした。
K26 SOM は Xilinx が今まで発売していたFPGAデバイス単体とは異なり、FPGAとその周辺部品を一つのバッケージにした System On Module (SOM) という全く新しいデバイスになっています。
したがってまず大前提として K26 SOM がちゃんと動作するように設計しなければならないので、K26 SOM についてある程度理解する必要があります。
K26 SOM のドキュメント
K26 SOMは初めて使うデバイスなので、拡張基板の設計開始前に下記のドキュメントを読んでおきました。
- Kria SOM Carrier Card Design Guide (UG1091)
- Kria K26 SOM Data Sheet (DS987)
- KV260 ML Starter Kit Carrier Card 回路図
K26 SOM のインターフェース
K26 SOMは SO240_1 と SOM240_2 の2つのB2Bコネクタで拡張基板と接続するように設計されています。
SOM240_1コネクタ側には主にSOMの動作に必要な サイドバンド信号 と パワーマネジメント信号 そして PSのI/O がアサインされています。SOM240_2コネクタ側には PLの外部I/O とその電源入力がアサインされています。
したがってPLの外部I/Oを使わないのであればSOM240_2コネクタ側のピン接続は不要になります。 KV260 でもSOM240_2側のPL I/Oは使わない設計になっているため、拡張基板にも付属するK26 SOMにもコネクタは実装されていません。
サイドバンド信号
この信号には電源、プロセッサ、およびコンフィギュレーション信号から構成されています。
まずは電源ですが、SOMの動作だけ考えれば最低限必要な電源は VCC_SOM(+5V) だけです。
SOMは内部で VCC_SOM から FPGA の CORE、PLL、PS用電源のほか、DDRメモリ、QSPI、eMMC の電源も生成します。
ただしコンフィグレーションで JTAG や SD などを使う場合は電源(1.8V)が必要なり、PLの外部I/Oを使う場合もそこのバンク電源が必要になります。
通常FPGA基板を設計するときにはFPGA の CORE や PLL 等に対して、それぞれ大電流かつノイズの少ない電源を設計する必要がありますが SOM ではそれらの電源が内部で生成されるため拡張基板が設計しやすくなっています。
JTAG と PS_MODE に関してはどちらもSOM内部で+1.8Vにプルアップされているため、必要に応じてコネクタやスイッチに割り当てます。 PS_SRST_C2M_L は SOM Zynq MPSoC の PS_SRST_B信号で通常デバッグ時に使用します。 PS_POR_L はHighにアサートするとブートプロセスが開始するので、すべての電源が安定した段階でアサートします。
パワーマネジメント信号
SOMのパワーマネジメント信号には下記があり、詳細はデータシートを参照してもらえばよいのですが僕の雑な説明をしておきます。
- PWROFF_C2M_L: SOMの電源シャットダウン信号で、LOWにするとSOMの電源OFFシーケンスが走りシャットダウンする。
- PWRGD_LPD_M2C: SOMのPSの低電力ドメイン (LPD) の電源ステータスを示す。
- PWRGD_FPD_M2C: SOMのPSのフル電力ドメイン (FPD) の電源ステータスを示す。
- PWRGD_PL_M2C: SOMのPLの電源ステータスを示す。
- VCCOEN_PS_M2C: SOM電源システムからPSペリフェラルの電源オンが可能であることを示す。
- VCCOEN_PL_M2C: SOM電源システムからPLペリフェラルの電源オンが可能であることを示す。
PSのI/O
PS I/Oには500/501/502の3つのバンクがありますが、バンク500はSOM内部ですべて使われていて バンク501の一部もパワーマネジメント機能として使われているのでよく確認してから使用する必要があります。
ただKV260にはPS周りで一般的によく使われるインターフェース(SD/USB/DP/HDMI/MIPI/Ethernet等)がほぼ揃っているため、拡張基板を新規設計する場合必要に応じてそこから踏襲すればよいと思います。
またPS I/Oはすべて+1.8Vで電源はSOM内部で生成されるので供給する必要はなく、DDRメモリも実装されているので、拡張基板側で設計する必要ありません。
以上のことから SOMのPS周りも設計しやすくなっています。
PLのI/O
PLのI/Oには高性能I/O(HPIO)バンクと高密度I/O(HDIO)バンクとGTHトランシーバーがあります。
KV260ではSOM240_1側のHDIOにPMOD(+3.3V)がアサインされていてますが、
SOM240_2側のPS I/Oは一切使っていないので拡張基板を新規設計する場合すべてユーザーが使用することができます。
ただし使うバンク毎に電源が必要でHDIOのI/O電圧は1.2~3.3Vに対して、HPIOのI/O電圧は1.0~1.8Vなので注意が必要です。
まとめ
今回はK26 SOMの簡単な説明になってしまいましたが、
K26 SOMには FPGA ボードに最低限必要なペリフェラルが実装済みなので、
拡張基板の設計において結構な工数削減ができるほか、基板層数や部品数の削減、
等長配線やインピーダンスマッチングなども減らすことができるため基板の価格も抑えることができそうです。
また KV260 にはPS周りのインターフェースが一通り実装されているので非常に参考になります。
今回の記事の K26 SOM や KV260 について間違えていることも書いてあるかもしれませんので、詳細についてはXilinxのデータートを参照してください。
次回はいよいよ今回設計したK26 SOM 拡張基板の中身についてお話したいと思います!