chat-Claude 2026-08-30 arc の「差動 Manchester #1 candidate」を land。MIL-STD-1553 系列の differential Manchester coding を FPGA template として spec 化。5 軸 schema (STEP 1570) の非重複 point 3 例目 + Encoding 型に 'differential-manchester' の additive extension。
3 template で encoding (pulse-width / differential-manchester / manchester) が全て異なり、power (inductive / none / inductive-coupling)、lines (single / differential-pair / single)、physical (custom antenna / custom twist-pair / coil-pair) の複数軸で非重複。5 軸 schema (STEP 1570) が 3 データポイントで overparameterize せず、それぞれ違う design point を占めることを実証しました。
'0' = 開始 edge あり(polarity 反転)/'1' = 開始 edge なし(polarity 保持)。
| id | differential-manchester-pair |
| name | 差動 Manchester (differential-manchester pair, MIL-STD-1553 系列) |
| roles | ['receiver', 'decoder', 'output'] — embedded clock なので oscillator/arbiter 不要 (最小 point-to-point) |
| lines | { kind: 'differential-pair', pairs: 1 } — 2 wire twisted pair |
| encoding | 'differential-manchester' ★ STEP 1713 で Encoding 型に additive 追加 |
| clock | 'embedded' — Manchester bit-中央 transition から復元 |
| power | 'none' — bus 非給電 (別電源前提) |
| physical | 'custom' — twisted pair (標準 PMOD では収まらない) |
| frame | 20 bit word (sync 3 + payload 16 + odd parity 1)、sync は Manchester code violation |
| verification | maxThroughputBps: 1,000,000 (1 Mbps MIL-STD-1553B) / allowedErrorRate: 0.0001 / driftPpmTolerance: 500 |
| target | estimatedLUT: 700 / clockDomains: 2 (TX + RX PLL) / boards: tang-nano-9k + tang-console-neo |
| version | '0.1.0' / lastUpdateStep: 1713 |
import {
DIFFERENTIAL_MANCHESTER_SPEC,
templateRegistry,
generateArtifacts,
} from './fpga/connector-generator/index.js';
// Spec 取得
const spec = templateRegistry.get('differential-manchester-pair');
console.log(spec.roles); // ['receiver', 'decoder', 'output']
console.log(spec.encoding); // 'differential-manchester'
console.log(templateRegistry.size()); // 3 (STEP 1713 で 2 → 3)
// HDL skeleton 生成 (Verilog + .cst + testbench)
const arts = generateArtifacts(DIFFERENTIAL_MANCHESTER_SPEC, 'tang-nano-9k');
// arts.verilog / arts.cst / arts.testbench = 空箱、
// 実 logic (Manchester encoder + PLL + parity check) は 手書き必須
'differential-manchester' を union 型に追加したのみ、既存の 4 encoding (nrz / manchester / pulse-width / differential) は unchanged。DESIGN_AXES.encoding.length assertion を持つ既存 test (step1570) は「>= 4」に widen で対応 (v2 セマンティクス遵守)。