|
1 | 1 | # CLAUDE.md |
2 | 2 |
|
3 | | -This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository. |
4 | | - |
5 | 3 | ## プロジェクト概要 |
6 | 4 |
|
7 | | -ADAT受信機のRTL実装。TOSLINK ADAT信号を受信し、8チャンネル24bit PCMデータを出力する。Veryl言語で実装。 |
| 5 | +ADAT送受信機のRTL実装。Veryl言語で記述し、Verilatorでシミュレーションする。 |
| 6 | + |
| 7 | +- **RX**: ADAT光入力 → 8ch 24bit PCM出力(クロック自動復元) |
| 8 | +- **TX**: 8ch 24bit PCM入力 → ADAT光出力 |
8 | 9 |
|
9 | 10 | ## コマンド |
10 | 11 |
|
11 | 12 | ```bash |
12 | | -# フォーマット |
13 | | -veryl fmt |
14 | | - |
15 | | -# ビルド(Veryl → SystemVerilog生成) |
16 | | -veryl build |
17 | | - |
18 | | -# テスト実行 |
19 | | -veryl test |
20 | | - |
21 | | -# 波形付きテスト(FST出力) |
22 | | -veryl test --wave |
23 | | - |
24 | | -# 波形表示(macOS) |
25 | | -surfer src/tb_adat_rx.fst |
26 | | - |
27 | | -# クリーン |
28 | | -veryl clean |
| 13 | +veryl fmt # フォーマット |
| 14 | +veryl build # Veryl → SystemVerilog生成 |
| 15 | +veryl test # テスト実行 |
| 16 | +veryl test --wave # 波形付きテスト(FST出力) |
| 17 | +veryl clean # クリーン |
29 | 18 | ``` |
30 | 19 |
|
31 | 20 | ## アーキテクチャ |
32 | 21 |
|
33 | | -パイプライン構成でADAT信号を処理: |
34 | | - |
| 22 | +### RX パイプライン |
35 | 23 | ``` |
36 | 24 | ADAT入力 → timing_tracker → bit_decoder → frame_parser → output_interface → PCM出力 |
37 | | - (エッジ検出) (NRZI/4B5B) (30bit→24bit) (ワードクロック) |
| 25 | + (エッジ検出) (NRZI/4B5B) (30bit→24bit) (ワードクロック) |
| 26 | +``` |
| 27 | + |
| 28 | +### TX パイプライン |
| 29 | +``` |
| 30 | +PCM入力 → tx_frame_builder → tx_bit_serializer → tx_nrzi_encoder → ADAT出力 |
| 31 | + (256bitフレーム構築) (MSB-firstシリアル化) (NRZI変換) |
38 | 32 | ``` |
39 | 33 |
|
| 34 | +### 共有 |
| 35 | +- `adat_pkg` — `AdatFamily` enum等の共有型定義 |
| 36 | + |
40 | 37 | ## コーディング規約 |
41 | 38 |
|
42 | | -- ドキュメントコメント・実装コメントは日本語を使用 |
43 | | -- ポート命名: 入力は`i_`、出力は`o_`、アクティブローは`_n`接尾辞 |
44 | | -- 共有型を使う場合は `adat_pkg::*` をインポート |
| 39 | +- コメントは日本語 |
| 40 | +- ポート命名: 入力`i_`、出力`o_`、アクティブロー`_n`接尾辞 |
| 41 | +- 共有型は `adat_pkg::*` をインポート |
45 | 42 | - リセットは全モジュールでアクティブハイ `i_rst` |
46 | 43 |
|
47 | | -## 編集禁止ファイル |
| 44 | +## 編集禁止 |
48 | 45 |
|
49 | | -- `target/` - 生成されたSystemVerilog(`veryl build`で再生成) |
50 | | -- `dependencies/std/` - vendored標準ライブラリ |
51 | | -- `doc/` - 生成ドキュメント |
| 46 | +- `target/` — 生成SystemVerilog |
| 47 | +- `dependencies/std/` — vendored標準ライブラリ |
| 48 | +- `doc/` — 生成ドキュメント |
52 | 49 |
|
53 | 50 | ## テスト |
54 | 51 |
|
55 | | -- シミュレータ: Verilator |
56 | | -- 波形フォーマット: FST |
57 | | -- 波形ビューワー: Surfer |
| 52 | +- シミュレータ: Verilator / 波形: FST / ビューワー: Surfer |
| 53 | +- `surfer src/<テストベンチ名>.fst` で波形表示 |
0 commit comments