Veryl registryAkiyukiOkayasu/gndless-iec60958-veryl · gndless_iec60958Source ↗

Keyboard shortcuts

Press or to navigate between chapters

Press ? to show this help

Press Esc to hide this help

gndless_iec60958

IEC 60958, S/PDIF, and AES3 codec and link cores for Veryl.

Version 0.1.0
Repository https://github.com/AkiyukiOkayasu/gndless-iec60958-veryl
License MIT OR Apache-2.0

Modules

Aes3Receiver AES3 professional receiver
Aes3Transmitter AES3 professional transmitter
SpdifReceiver S/PDIF consumer receiver
SpdifTransmitter S/PDIF consumer transmitter

Packages

Aes3 AES3固有のpreambleとchannel status生成
Spdif S/PDIF固有の型とchannel statusコードを定義する。
Types IEC 60958共通の型とpreamble変換

Modules


Aes3Receiver AES3 professional receiver
Aes3Transmitter AES3 professional transmitter
SpdifReceiver S/PDIF consumer receiver
SpdifTransmitter S/PDIF consumer transmitter

Aes3Receiver

AES3 professional receiver

共通stereo receiverをAES3向けの公開APIとして提供する薄いラッパー A/B subframeの組み立てとoutput backpressureの契約はSpdifReceiverのIEC60958 stereo RX timingと同じ。

Ports


clk input clock システムクロック
rst input reset リセット
cell_tick input logic BMC cell進行パルス
line_bit input logic BMC line入力
line_valid input logic line_bit有効
sample_valid output logic stereo sample出力有効
sample_ready input logic stereo sample受理可能
left_audio output AudioSample 左チャンネルPCM
right_audio output AudioSample 右チャンネルPCM
left_invalid output bbool 左チャンネルinvalid flag
right_invalid output bbool 右チャンネルinvalid flag
left_user output logic 左subframeのU bit
right_user output logic 右subframeのU bit
left_status output logic 左subframeのC bit
right_status output logic 右subframeのC bit
block_start output logic block開始パルス
error output bbool 受信エラーフラグ

Aes3Transmitter

AES3 professional transmitter

status mapperとblock CRCを内蔵し、AES3のC bitを自動生成する。 stereo sampleの受理、A/B subframe送信、busyの契約はSpdifTransmitterのIEC60958 stereo TX timingと同じ。

Ports


clk input clock システムクロック
rst input reset リセット
cell_tick input logic BMC cell進行パルス
sample_valid input logic stereo sample有効
sample_ready output logic stereo sample受理可能
left_audio input AudioSample 左チャンネルPCM
right_audio input AudioSample 右チャンネルPCM
left_invalid input bbool 左チャンネルinvalid flag
right_invalid input bbool 右チャンネルinvalid flag
sample_rate input Types SampleRate サンプルレート
channel_mode input Aes3 ChannelMode AES3 channel mode
line_bit output logic BMC line出力
line_valid output logic line_bit有効
busy output logic 送信中フラグ

SpdifReceiver

S/PDIF consumer receiver

共通stereo receiverをS/PDIF向けの公開APIとして提供する薄いラッパー A subframeを保持し、続くB subframeと組み合わせてstereo sampleを出力する。 sample_valid && !sample_readyの間はPCM、invalid、user、statusを保持し、line側にもbackpressureを伝えて次の完成subframeを受理しない。 block_starterrorはイベントを示す1クロックpulseであり、stall中は保持しない。

Ports


clk input clock システムクロック
rst input reset リセット
cell_tick input logic BMC cell進行パルス
line_bit input logic BMC line入力
line_valid input logic line_bit有効
sample_valid output logic stereo sample出力有効
sample_ready input logic stereo sample受理可能
left_audio output AudioSample 左チャンネルPCM
right_audio output AudioSample 右チャンネルPCM
left_invalid output bbool 左チャンネルinvalid flag
right_invalid output bbool 右チャンネルinvalid flag
left_user output logic 左subframeのU bit
right_user output logic 右subframeのU bit
left_status output logic 左subframeのC bit
right_status output logic 右subframeのC bit
block_start output logic block開始パルス
error output bbool 受信エラーフラグ

SpdifTransmitter

S/PDIF consumer transmitter

PCM stereo sampleを受け取り、channel statusを自動生成してBMC lineへ出す。 channel statusの詳細設定を明示的に受け取るため、用途に応じて固定値を上位で管理できる。

sample_valid && sample_readyでstereo sampleを受理し、payloadを内部保持してA(left)、B(right)の順にsubframeを送る。B subframeを受理するまではsample_readyがLowとなり、busyはBMC送信完了までHighを含み得る。 64cellの詳細は省略し、line_valid区間として示す。

Ports


clk input clock システムクロック
rst input reset リセット
cell_tick input logic BMC cell進行パルス
sample_valid input logic stereo sample有効
sample_ready output logic stereo sample受理可能
left_audio input AudioSample 左チャンネルPCM
right_audio input AudioSample 右チャンネルPCM
left_invalid input bbool 左チャンネルinvalid flag
right_invalid input bbool 右チャンネルinvalid flag
left_user input logic 左subframeのU bit
right_user input logic 右subframeのU bit
sample_rate input SampleRate 現在のサンプルレート
original_sample_rate input SampleRate 元のサンプルレート
category_code input logic<7> channel status category code
source_number input logic<4> channel status source number
left_channel_number input logic<4> 左チャンネル番号
right_channel_number input logic<4> 右チャンネル番号
copy_permitted input bbool コピー許可フラグ
non_audio input bbool non-audioフラグ
emphasis input logic<2> emphasis code
mode input logic<2> channel status mode
clock_accuracy input logic<2> クロック精度コード
original input bbool オリジナル音源フラグ
line_bit output logic BMC line出力
line_valid output logic line_bit有効
busy output logic 送信中フラグ

Module Prototypes


Interfaces


Packages


Aes3 AES3固有のpreambleとchannel status生成
Spdif S/PDIF固有の型とchannel statusコードを定義する。
Types IEC 60958共通の型とpreamble変換

Aes3

AES3固有のpreambleとchannel status生成

Spdif

S/PDIF固有の型とchannel statusコードを定義する。 TODO: S/PDIF固有の公開APIとchannel status対応範囲を拡張する。

Types

IEC 60958共通の型とpreamble変換