Veryl registryAkiyukiOkayasu/gndless-adat-veryl · gndless_adatSource ↗

Keyboard shortcuts

Press or to navigate between chapters

Press ? to show this help

Press Esc to hide this help

AdatTx

ADAT TXトップモジュール

8ch 24bit PCMをADATフレームへ変換し、NRZI信号として出力 channelsgndless_fixedpoint::FixedPointValue::<gndless_fixedpoint::Q1_23>境界で、raw値はchannels[i].rawから得る。 AdatRxchannels出力とは同じformatのため、Smux2Unpackerと同様に利用側でQ1.23 interfaceを共有できる。

実機確認状況

実機動作は未確認。現時点ではNative testと、RTL内部で接続したAdatTxAdatRx loopback testだけを確認している。 外部ADAT機器との相互接続、光送信回路を含む電気的条件、実機上のタイミングは未検証。

送信パイプラインは以下の2段で構成される。

  1. frame_serializer
    • frame_clk立ち上がりをトリガに256bit ADATフレームを構築して単一のshift registerへ保持し、MSB-firstでシリアル化
    • ADAT_FAMILYに応じて44.1kHz系/48kHz系のビット周期を選択
  2. nrzi_encoder
    • シリアルビットをNRZIへ変換してadatへ出力

公開インターフェースの概念タイミング

次図は縮尺なし。frame_clkの立ち上がりでchannelsを取り込み、256bitのNRZI送信が完了するとframe_doneをシステムクロック1周期だけHighにする。 adatの遷移パターンはPCM値によって変わる。

Parameters


CLK_FREQ u32 システムクロック周波数 [Hz]
ADAT_FAMILY AdatFamily ADATビットレートファミリー (44.1kHz系 or 48kHz系)

Ports


clk input clock
rst input reset
frame_clk input logic 外部フレームクロック立ち上がりで新規フレーム送信開始
channels modport gndless_fixedpoint __FixedPointValue__gndless_fixedpoint_Q1_23 input_port [8] 外部フレームクロック立ち上がりで新規フレーム送信開始
smux_active input bbool S/MUX有効フラグ入力
adat output logic ADAT NRZI出力
frame_done output logic 256bitフレーム送信完了パルス