AdatTx
ADAT TXトップモジュール
8ch 24bit PCMをADATフレームへ変換し、NRZI信号として出力
channelsはgndless_fixedpoint::FixedPointValue::<gndless_fixedpoint::Q1_23>境界で、raw値はchannels[i].rawから得る。
AdatRxのchannels出力とは同じformatのため、Smux2Unpackerと同様に利用側でQ1.23 interfaceを共有できる。
実機確認状況
実機動作は未確認。現時点ではNative testと、RTL内部で接続したAdatTx→AdatRx loopback testだけを確認している。
外部ADAT機器との相互接続、光送信回路を含む電気的条件、実機上のタイミングは未検証。
送信パイプラインは以下の2段で構成される。
frame_serializerframe_clk立ち上がりをトリガに256bit ADATフレームを構築して単一のshift registerへ保持し、MSB-firstでシリアル化ADAT_FAMILYに応じて44.1kHz系/48kHz系のビット周期を選択
nrzi_encoder- シリアルビットをNRZIへ変換して
adatへ出力
- シリアルビットをNRZIへ変換して
公開インターフェースの概念タイミング
次図は縮尺なし。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フレーム送信完了パルス |