こんにちは、ドルフィンシステムの笹生です。
実は先週は流行り病のような風邪で少しダウンしておりました。
病院で2度ほど検査しましたがどちらも陰性でした。今はすっかり回復しております。皆様もお気を付けください。
今回は「ドルフィンシステム開発事例 (6) 2012年 : 弊社フェージング IP コアを利用した 4x8 MIMO チャネルエミュレータ」についてご紹介させていただけたらと思います。
弊社ではフェージングシミュレータを開発・販売していますが、使用している FPGA 向けの 2x2 フェージング IP コア (Riviera IP コア)もお客様にご提供しています。
2011年から 2012年にかけて、お客様の開発した FPGA ボードに弊社の 2x2 フェージング IP を複数組み合わせて 4x8 の MIMO フェージングシミュレータを実現された例をご紹介します。
(ちなみにトップの画像は AI (DALL-E3) が生成した「IPコア」のイメージだそうです。それっぽい 回路基板ですが、プローブとかが無造作に置かれていてデバッグ中ですかね?)
2x2 フェージング IP コア
仕様は以下のような感じです。
パス数 | 20 (Total 80パス) |
フェージングモデル | Jakes モデル |
最大遅延量 | 4095サンプル (100MHzサンプリングで 40.95us) |
素波数 | 32 (Total 2560素波) |
対応フェージング | スタティック、ダイレクト、レイリー、ライス |
アンテナ相関 | パラメータにより付与可能 |
提供できる チャネルモデル | ITUモデル : ITU-PA3, ITU-PB3, ITU-VA30,ITU-VA120 3G モデル : 3GPP Standard Multipath case 1 ~ 6/ 3GPP Deployment-TU120,TU50,TU3,RA250,RA120,HT120 HIPERLAN : Model A,B,C,D,E |
帯域幅 | ハードウェアに依存 |
固定小数点ビット数 | IPコア内部16bit |
その他機能 | AWGN付加 |
入出力と経路だけを強調するとこのような感じです。(左が入力、右が出力)
デフォルトでは 2x2 の MIMO に対応していますが、これを組み合わせる(出力の合成等をする)ことで 2x4, 4x4, 4x8 と言う様に増やしていくことが可能です。勿論、その分の FPGA リソースが 4倍必要になります。
4x8 フェージングシミュレータを実現
4x8 というと以下の図のような経路になります。(左が入力、右が出力)
経路の数は 4x8 = 32 経路あり、2x2 の IP コアで実現するとなると 8 個の IP コアが必要になります。当時の FPGA は Xilinx Virtex6 が出始めた頃で、この案件では Virtex6 VSX475Tという DSP スライスが最大の物を使用しました。しかし、4x8 を1つに収めることはリソース的に不可能でしたので、 2つ搭載された基板に実装をするということになりました。
それでも、IPコア 4個 (4x4相当) で DSP リソースが 100% になってしまい、これでは他の回路が追加できないため、回路特に乗算器の削減を行い最終的に 4x4 を Virtex6 1個に収めることが出来ました。
赤い部分が FPGA1つめ、青い部分が FPGA 2つめ に相当します。
当時の開発記録を見ると、コンパイルするのにメモリが非常に消費されてしまって当時で 16GB を積んだ PC でコンパイルし最初の頃は 8日間かけて配線しきれずに失敗という有様でした。
色々コンパイルオプションや配線にかかる時間を軽減させるために工夫をし、最終的に何とかコンパイルを通すことができました。
設定するソフトウェアについてもローレベルでの設定をするものを提供させていただきました。
上位のアプリケーションはお客様の方で開発され、弊社の IP コアのレジスタに変換する部分を提供しました。
実際に組み込まれてからのテストは割とスムーズにできて、スルー設定での 16QAM, 64QAM,256QAM の EVM 1.6% 程度でした。
レイリー変動も VSA で観測し、所望のフェージングを生成している事を確認できました。
おまけ
16x16 相当の経路図で 4番目の入力の経路だけを赤くしたものを chat GPT に書かせてみました。
今回の経路図は全て chat GPT にプロンプトで指示して描いてもらったものです。
こういう図をパワポなどで書くのはしんどいので、今回重宝しました。
256x256 の生成は以下の様に頑張ってくれたのですがエラーしてしまいました。。。
「256x256のシステム図は非常に大規模で、視覚的に理解するのが難しい可能性があります。また、描画および表示に時間がかかることが予想されますが、実行してみます。
少々お待ちください。
256x256のシステム図の作成中にエラーが発生しました。大規模な図の作成にはリソースが多く必要となるため、描画には限界があります。
もし別の方法や分割した図が必要であれば、お知らせください。それとももう少し小さい規模(例えば64x64や128x128など)で試してみましょうか?」
限界はあるようです(笑)
128x128 はなんとか成功してこのような図になりました。(ここまですることはほとんどないですよね)
経路数は 16384 になります。手動では線を引いてられませんね。
0 件のコメント :
コメントを投稿