1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

はじめに

RFSoC を使った開発記事は世の中に増えてきましたが、意外と「RFDC IP Core とは何か?」を体系的に説明した記事が存在しません。

  • RFDC と JESD204 の違い
  • IP Core が提供している“本当の価値”
  • タイル構造・同期・キャリブレーションが必要な理由
  • 起動後に変更できるもの/できないもの
  • RF の専門家が評価するポイント

これらを「Why(なぜ?)」に徹底的に答える形でまとめてみます。

1. RFDC IP Core とは何か?

まず前提から解説します。

RFDC(RF Data Converter)IP Core は、RFSoC に内蔵された高性能 RF-ADC / RF-DAC を FPGA から扱うための“制御・データ処理ブロック”です。

RFSoC の特徴:

  • チップ内にマルチ GSPS レベルの高性能 ADC / DAC を内蔵
  • そのままでは扱えないので、
    → デジタル側(AXI)とアナログ RF ブロックをつなぐ 玄関口 が必要
  • その玄関ごと、内部処理も含めてまとめたのが RFDC IP Core

つまり RFDC の本質は:

“RF のアナログ世界” と “FPGA のデジタル世界” の橋渡しを
専用ハード(ADC/DAC)+専用デジタル処理(DDC/DUC)+
制御インターフェース(AXI)で統合する IP

RFDC は単なるラッパーではなく、内部にかなりの“頭脳”が入っています。

2. JESD204 と RFDC の違い(技術的核心)

RFSoC を使わない世界:JESD204 が必須

外付けの高速 ADC/DAC を使う場合:

  • FPGA と ADC/DAC は JESD204 シリアルリンク で高速通信
  • レーン配置、SYSREF 同期、スキュー補正など膨大な設計作業
  • 高速信号の基板設計も超難易度

これは専門家でも頭を抱える世界です。

RFSoC の世界:ADC/DAC がチップ内に“生えている”

RFSoC では:

  • ADC/DAC が同じシリコン内にあり
  • シリアル化の必要がなく
  • データもレジスタ制御も全て AXI インターフェースで済む

つまり JESD204 の苦行を全部すっ飛ばせます。

🟩 Why(なぜ?)

  • なぜ JESD204 ではなく RFDC IP?
    → 外付け器をつなぐわけではなく、内蔵 ADC/DAC を扱うため
  • なぜ IP Core が必要?
    → 内蔵 ADC/DAC はハードマクロで、制御・補正・同期が
    FPGA ロジックから触れる形に整備されている必要があるため。

RFSoC の強みの半分はこの点にあります。

3. RFDC の「中でできること」

RFDC は単に ADC と DAC を“出しっぱなし”にするのではなく、以下の高度な処理を ハードウェアで 担っています。

3.1 DDC(Digital Down Converter)

ADC 側:

  • NCO(数値制御発振器)
  • ミキサ(複素ベースバンド変換)
  • フィルタ
  • デシメーション

3.2 DUC(Digital Up Converter)

DAC 側:

  • ベースバンド信号 → RF 周波数へアップコンバート
  • 補正・フィルタ・インターポレーション

🟩 Why(なぜ SoC 内に DDC/DUC が統合されている?)

  1. RF を“生”でデジタル処理するのはサンプルレートが巨大すぎる
  2. 多くの応用では取りたい帯域は 狭い部分だけ
  3. 毎回 DDC/DUC を FPGA 側で自作するとコストが大きい

だから RFDC の中に入っている。

「高速サンプル → ベースバンドの必要帯域だけ抽出 → 軽量なデータへ」 という一般的な RF デジタル処理の黄金パターンを、ユーザーが意識せず使えるようにするためです。

4. 「キャリブレーション」がなぜ必要なのか?

RF 初学者が必ずつまずくポイントです。ここは 体重計のアナロジーで説明できます。

  • 新品の体重計でもゼロ点がズレている → オフセット誤差
  • 1 kg のおもりを乗せても 0.98〜1.02 kg になる → ゲイン誤差
  • 中央は合ってるが端でズレる → 非線形歪み

RF ADC/DAC も全く同じで、しかも GHz 帯では誤差が致命的。

  • I/Q の位相ずれ → 画像汚染
  • ゲインずれ → SN 比低下
  • 時間ずれ → フェーズドアレイが崩壊

🟩 Why(なぜキャリブレーションが不可欠?)

  • 半導体のばらつき・温度・電源で誤差が変動する
  • RF では“わずか数十ミリ度の位相誤差”が致命傷
  • チャンネル間で相対比較する用途(MIMO, I/Q)は特に厳しい
  • ソフト側では後補正できない種類の誤差が多い

だから RFDC IP Core は内部に

  • ゲイン補正
  • 位相補正
  • オフセット補正
  • 線形ity 補償

などの機構を持っている。

5. 「同期(Synchronization)」はなぜ RF で必須なのか?

RFSoC を使う目的の多くは

  • 複数チャネルのビームフォーミング
  • MIMO
  • I/Q 処理
  • 時系列での相関観測

など、“複数チャネルの相対位相”が意味を持つアプリケーションです。

5.1 一つのチャネルならまだ許される

単チャネルなら多少の位相ズレは FFT の結果に大影響はしません。

5.2 複数チャネルでは 1 サンプル以下のズレが致命傷

複数チャネル ADC で

  • サンプリング開始タイミングが微妙にズレる
  • 共有クロックのジッタがチャネル間で違う

こうなると:

  • 位相差が物理量として意味を失う
  • DOA(到来方向推定)が成り立たない
  • I/Q の 90° が 89° になるだけで画像リークが増える

🟩 Why(なぜハードウェア同期が絶対必要?)

ソフトでは サンプリング瞬間のズレ を直せないためです。

だから RFDC は

  • SYSREF
  • Tile Sync
  • Clock distribution
  • チャネル同時スタート

などの機能を具備している。

これは RFSoC が 無線・レーダ・ビームフォーミング用途に本気で使われている証拠です。

6. なぜ「タイル」に分かれているのか?

RFSoC の ADC/DAC は

  • ADC Tile × N
  • DAC Tile × N

のように“タイル”に分割されています。

6.1 タイルは「独立したミニ RF サブシステム」

1 タイルには

  • 4 チャネル程度の ADC(または DAC)
  • 専用 PLL
  • 専用補正ロジック
  • 専用クロックツリー

が含まれます。

6.2 なぜタイル構造が必要?

  • 熱源を分散できる(1 箇所に集めると焼ける)
  • クロック配線が短くできる(スキュー抑制)
  • アナログ回路同士が干渉しないように距離を置ける
  • 4ch 単位の“モジュール化”により設計・製造コストを最適化できる
  • 製品ラインアップ拡張(4ch/8ch/16ch)が容易

🟩 Why(なぜタイルなのか?)

大規模高周波回路を 1 つの巨大な ADC/DAC として設計するのは不可能だから。
小さな島(Tile)に切って、性能・熱・干渉・クロックのバランスを取るため。

7. RFDC の入出力インターフェース

7.1 入力(ADC 側)

  • RF アナログ入力ピン
  • サンプリングクロック
  • SYSREF
  • AXI4-Lite(設定)

7.2 出力(ADC → FPGA)

  • AXI4-Stream(デジタルサンプル)

7.3 DAC 側

  • AXI4-Stream でデジタルデータ入力
  • RF 出力へアナログ信号を送出

8. 起動後に「変更できる」もの/「できない」もの

8.1 変更できるもの(ソフト制御)

  • DDC/DUC の NCO 周波数
  • ゲイン/位相補正パラメータ
  • デシメーション比/インターポレーション比
  • タイルごとのミキサ設定

Why

→ アプリや温度によって変える必要があるから。

8.2 変更できないもの(ビットストリーム依存)

  • 有効チャネル数
  • AXI ポート構成
  • 最大サンプルレート
  • タイル配置(物理的制約)

Why

→ 配置配線・クロックツリーが変わるため、合成が必要。

9. RFDC IP Core の“すごいところ”

① DDC/DUC をハードで統合

これは FPGA ロジックを大幅に節約し、高速化し、消費電力を抑えます。

② 内蔵 ADC/DAC をわずか数行の API で扱える

  • Vitis のドライバで初期化・補正・設定が容易
  • 無線・レーダ・観測用途で圧倒的な開発スピード向上

③ JESD204 を使わずにマルチ GSPS ADC/DAC を利用可能

→ 基板コストと設計リスクを劇的に削減。

④ タイル同期で大規模 MIMO/アレイ構築が容易

→ 従来なら専用ハードが必要だった。

⑤ 高度なキャリブレーション機構を統合

→ I/Q バランス・ゲイン誤差・位相誤差が最初から抑制されている(理想的な場合)。

10. まとめ

RFDC IP Core を“Why”でまとめ直すとこうなります:

  • なぜ必要?
    内蔵 RF ADC/DAC をデジタル世界へ接続する玄関だから。

  • なぜキャリブレーション?
    → 半導体の誤差が RF では致命的だから。

  • なぜ同期?
    → MIMO や I/Q など相対位相が物理量として重要だから。

  • なぜタイル?
    → 熱・干渉・クロック・製造のすべての観点で大規模化が困難だから。

  • なぜ IP Core?
    → DDC/DUC や補正機能を統合し、ユーザーが即座に使える形にまとめた“RF 部分の OS”だから。

Appendix:RFDC GUI パラメータの「Why 辞書」

Vivado の RF Data Converter IP の GUI でよく見るパラメータを中心に、「これは何か?」「なぜ存在するのか?」「どう決めればいいか?」をセットで整理しています。厳密な名称は PG269 の User Parameters / Mixer Settings の表を元にしています。

A. タイル単位の基本設定(ADC/DAC Tile n …)

1. ADC Tile n Enable / DAC Tile n Enable

  • What
    そのタイル(4ch くらいの島)を 有効にするか/しないか

  • Why

    • 使わないタイルまで起こすと 電力と熱の無駄
    • 配線も増えてタイミング制約が厳しくなる。
  • **How **:

    • 最初の実験は「本当に使うタイルだけ ON」。
    • 例:RFSoC4x2 の一つの ADC タイルだけ有効にして、ループバック実験から。

2. Sampling Rate(ADC/DAC Tile n Sampling Rate)

  • What
    そのタイルの 物理サンプリング周波数 [GSPS] を指定。

  • Why

    • RF で「どこまでの周波数をサンプリングできるか」を決める基本設定。
    • DDC/DUC の周波数、AXI のデータレート、フィルタ帯域が全部これに紐づく。
  • How

    • 拾いたい帯域 B に対してざっくり
      F_s \gtrsim 2B \times \text{(安全マージン)}
      
    • チュートリアルでは「1.0 GSPS」「2.0 GSPS」などキリのよい値で試す。

3. Refclk Frequency / PLL Enable / Feedback Divider (FBDIV)

  • What

    • Refclk:タイル内部 PLL に入る基準クロック。
    • FBDIV:PLL の倍率設定。
    • PLL Enable:外部クロックをそのまま使うか、PLL で生成するか。
  • Why

    • サンプリングクロックの“源泉”をどう作るかを決める。
    • PLL を使うと柔軟だが、ジッタが増える場合もあり、外部クロック品質とのトレードオフ。
  • How

    • 評価ボード推奨設定(UG/リファレンスデザイン)をまず真似する。
    • 特別な理由がなければ PLL Enable = TRUE, Refclk はボード準拠。

4. Fabric Frequency / Outclk Frequency

  • What

    • Fabric Frequency:AXI4-Stream 側で見える想定データレート由来のクロック。
    • Outclk:実際に PL(FPGA ロジック)に出てくるクロック。
  • Why

    • PL でどのくらいの周波数のクロックでデータをさばくか」の前提となる。
    • ここが高すぎると、PL のタイミングが死ぬ。
  • How

    • 最初は 250 MHz 前後を目安(PG269 のデフォルトもこのあたり)
    • HLS/RTL が 250 MHz 出ないなら、デシメーションで落とす/ファブリッククロックを下げる。

5. Link Coupling(AC / DC)

  • What
    入力カップリング(AC カップリング or DC カップリング)の想定。

  • Why

    • AC:DC 成分をカット、オフセットに強いが、低周波は苦手。
    • DC:DC〜低周波まで観測したいときに必要だが、オフセット・ドリフトに気を遣う。
  • How

    • 無線っぽい「バンドパス信号」→ AC カップリング。
    • ゆっくり変化する波形(制御信号など)→ DC カップリング(ボード側回路も要確認)。

B. コンバータ(チャネル)ごとの設定(ADC/DAC n within Tile)

6. Converter Enable(Channel Enable)

  • What
    各タイル内の 各チャネル(ADC ch0〜3, DAC ch0〜3)を有効化するフラグ

  • Why

    • 使わないチャネルを OFF にすることで消費電力・ノイズ源を削減。
    • 配線も不要になるためデザインがすっきりする。
  • How

    • 最初は 1 チャネルだけ有効化して動かしてみる。
    • MIMO/アレイ実験時に複数チャネルを順次追加。

7. Analog Input/Output Type(Real / I/Q)

  • What

    • 入出力が「実数(Real)」か「複素(I/Q)」かを指定。
    • ※ RF-ADC 側ではアナログ入力は基本 Real。ただし内部で I/Q に変換されて出てくるモードもある。
  • Why

    • DDC/DUC 後の デジタル信号形式を決定し、
    • 後段の DSP(FIR, FFT, OFDM 処理など)の設計に直結する。
  • How

    • シンプルなスペクトル観測 → Real で OK。
    • IQ ダウンコンバートや変調/復調 → I/Q モードを活用。

8. Data Type / Data Width(AXI データ幅)

  • What
    AXI4-Stream 上でのビット幅(例:16 bit, 8 bit, 2’s complement など)。

  • Why

    • ビット幅を増やすと SNR に余裕が出るが、データレートも跳ね上がる。
    • データ幅とクロックの組み合わせで PL の帯域設計が変わる。
  • How

    • 初学者&HLS なら 16 bit 整数 I/Q くらいが扱いやすい。
    • 帯域が厳しくなってきたら、ビット幅縮小+高クロックも検討。

C. DDC / DUC & フィルタ設定

9. Decimation / Interpolation Mode(1x, 2x, 4x, 8x, …)

  • What

    • ADC 側:デシメーション(サンプルレートを下げる)
    • DAC 側:インターポレーション(サンプルレートを上げる)
  • Why

    • 欲しい帯域だけを残して、データレートを落とす/上げる」ため。
    • デシメーションフィルタは passband が Nyquist の 80% 程度など、仕様に依存
  • How

    • 求める信号帯域 B, サンプルレート Fs から、
      B \le 0.4 \times \frac{F_s}{\text{decimation}}
      
      を満たすように decimation を選ぶ(0.4 は目安)。
    • 最初は 1x か 2x 程度で試し、帯域とデータレートを確認。

10. Filter Type / Mode

  • What
    DDC/DUC の内部 FIR/半帯域フィルタなどの種類やモード。

  • Why

    • ノイズ帯域を削り SNR 向上
    • エイリアシング/イメージ抑圧
    • 通信規格(LTE, 5G など)に合わせた帯域整形
  • How

    • チュートリアルでは基本のデフォルト設定で OK。
    • 特定の帯域を狙いたいときに PG269 の表を見て選ぶ。

D. ミキサ(Mixer / NCO)まわり

11. Mixer Type(Bypassed / Coarse / Fine)

  • What

    • Bypassed:ミキサなし(そのまま通す)
    • Coarse:Fs/2, Fs/4 などの簡易ミキサ
    • Fine:NCO を使った任意周波数ミキサ
  • Why

    • そもそも「どの周波数帯をベースバンドに落とすか」を決める。
    • Coarse はハード的に軽く、高速・単純。Fine は柔軟だが計算コスト大。
  • How

    • 最初の動作確認:Bypassed でスペクトルを見る。
    • 任意の RF 帯を狙う:Fine を使って NCO 周波数を設定。

12. Mixer Mode(Real→Real / Real→I/Q / I/Q→I/Q / Bypass)

  • What
    入出力の形式に応じて、ミキサの変換モードを選択。

  • Why

    • Real→I/Q:実信号 → 複素ベースバンドへダウンコンバート。
    • I/Q→I/Q:複素信号同士の周波数シフト。
    • Real→Real:シンプルな周波数反転など。
  • How

    • IQ ダウンコンバート実験 → Real→I/Q。
    • もともと I/Q で持っている信号を周波数シフト → I/Q→I/Q。

13. Coarse Mixer Frequency(0, Fs/2, Fs/4, -Fs/4)

  • What
    Coarse Mixer で使う固定周波数のキャリア。

  • Why

    • 例えば Fs/2 でミックスすると、スペクトルを左右反転できる。
    • 低コストで簡単な周波数移動やイメージ抑圧ができる。
  • How

    • 特定の周波数計画(例えば SSB 抑圧など)があるときに使う。
    • 「なんとなく」の段階では使わなくてもよい(Bypass or Fine で十分)。

14. Fine Mixer Frequency(任意周波数)

  • What
    NCO が出すキャリアの周波数(-10 GHz ~ 10 GHz)。

  • Why

    • 観測対象のキャリア周波数に合わせて」ベースバンドに落とすため。
    • RFSoC の本当の強さはここ:任意キャリアの DDC/DUC が全部中に入っている
  • How

    • 例えば 観測したい信号が 1.2 GHz、サンプルレート 2.0 GSPS なら
      Fine Mixer Frequency = 1.2 GHz などとしてベースバンドに落とす。
    • 実際はエイリアシングも加味した周波数計画が必要。

15. Fine Mixer Phase

  • What
    NCO の出力位相(-180°〜180°)。

  • Why

    • I/Q の位相合わせ
    • ビームフォーミングやキャリブレーションで基準位相を揃える用途。
  • How

    • 最初は 0° 固定でよい。
    • マルチチャネルで波形をぴったり重ねたいときに、微調整として使う。

E. その他よく出てくる設定

16. Nyquist Zone / Analog Band Selection

  • What
    どのナイキストゾーンの信号を観測対象とするか(第 1〜4 ゾーンなど)。

  • Why

    • サンプリング周波数より高い RF も「折り返し」として観測できるため、
      どのイメージを信号として解釈するかを決める必要がある。
  • How

    • 最初は第 1 ナイキストゾーン(0〜Fs/2)を素直に使う。
    • 高いキャリアをサブサンプリングするときに上位ゾーンを活用。

17. Observation / Feedback Path(一部の DAC タイル設定)

  • What
    パワーアンプ観測用などの「フィードバック経路」を使うかどうか。

  • Why

    • DPD(Digital Pre-Distortion)など、「出した信号をモニタして補正する」用途に必要。
  • How

    • 初学者は「何か難しいことに使うんだな」くらいでも OK (だと思う...)。
    • PA 線形化や無線システムの高級機能で本領発揮。

18. Clocking Mode(Internal / External)

  • What
    サンプリングクロックを内蔵 PLL で作るか、外部クロックをそのまま使うか。

  • Why

    • 内部 PLL:柔軟だがジッタが増えることも。
    • 外部高精度クロック:装置が複雑だが SN 比向上。
  • How

    • 評価ボードのリファレンスを踏襲(たいてい内部 PLL 利用)。
    • 本気の実験では高品位外部クロック+PLL オフも検討。

F. 実務的「優先度マップ」

パラメータが多すぎて混乱する学生向けに、優先度をざっくり示すと:

  • 最優先(動作そのものに直結)

    • Tile Enable / Channel Enable
    • Sampling Rate / Fabric Frequency
    • Decimation / Interpolation
    • Mixer Type / Mode / Fine Mixer Frequency
  • 次点(性能チューニングで効いてくる)

    • キャリブレーション関連(QMC, gain/phase/offset)
    • Filter Mode / Nyquist Zone
    • PLL Enable / Refclk 設定
  • 高度な応用で効いてくる

    • フィードバックパス
    • Fine Mixer Phase & マルチチャネル位相合わせ
    • 観測用タイルと送信用タイルのクロス同期

関連記事

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?