持續累積的隨手筆記與小型探索。A running list of side notes and small explorations.書き留めたメモと小さな探究の記録です。随時更新しています。
relay_feedback2_gui.py 移植為 JavaScript):拉動 kg 與 fclk 滾桿,即時看穩態波形、頻譜與 f0 ≈ √kg / (1024π)·fclk 的驗證。RTL 本身無量綱、逐樣本運算,時鐘只重新縮放時間與頻率軸。A bit-accurate in-browser simulation of the relay-feedback oscillator RTL used in the DSIL radar (ported from relay_feedback2_gui.py to JavaScript): drag the kg and fclk sliders to watch the steady-state waveform, the spectrum and the f0 ≈ √kg / (1024π)·fclk relation confirm itself. The RTL is dimensionless and per-sample, so the clock only rescales the time and frequency axes.DSIL レーダーで用いるリレー帰還発振器 RTL の、ビット精度のブラウザ内シミュレーション(relay_feedback2_gui.py を JavaScript に移植):kg と fclk のスライダーを動かすと、定常状態の波形、スペクトル、そして f0 ≈ √kg / (1024π)·fclk の関係が成り立つ様子をその場で確認できます。RTL は無次元かつサンプル単位で動作するため、クロックは時間軸と周波数軸を再スケールするだけです。hilbert90_gui.py 的位元精確 JavaScript 移植版:以 relay_feedback2.v 震盪器(kg = 166)為輸入,經 L = 62 的二抽頭 Hilbert 對分成 I/Q,完全照 new40kHz4.v 的接法。震盪頻率以樣本數設定,因此隨 fclk 縮放,I 與 Q 的相位差則不受影響。A bit-accurate JavaScript port of hilbert90_gui.py: the relay_feedback2.v oscillator (kg = 166) feeds the L = 62 two-tap Hilbert pair that splits it into I and Q, wired exactly as in new40kHz4.v. The oscillation frequency is set in samples, so it scales with fclk — the I-vs-Q phase does not.hilbert90_gui.py をビット精度で JavaScript に移植したものです:relay_feedback2.v の発振器(kg = 166)を入力とし、L = 62 の 2 タップ・ヒルベルト対で I と Q に分離します。結線は new40kHz4.v とまったく同じです。発振周波数はサンプル数で指定するため fclk に応じて変化しますが、I と Q の位相差は影響を受けません。_1Mhz_beta010.v 的逐模組導讀:時鐘產生、繼電器回授震盪器、解調與抗飽和 PI 相位鎖定、hilbert_90 二抽頭 I/Q 對、定點數影像抑制與雜波消除、UART/PWM 輸出;每個模組附方塊圖、Q 格式定點約定、延遲預算與對應的 iverilog 測試平台。A module-by-module walkthrough of the DSIL radar FPGA core _1Mhz_beta010.v: clock generation, the relay-feedback oscillator, demodulation and the anti-windup PI phase lock, the hilbert_90 two-tap I/Q pair, fixed-point image rejection and clutter cancellation, and the UART/PWM outputs — each with a block diagram, the Q-format fixed-point convention, the latency budget and its matching iverilog testbench.DSIL レーダー FPGA コア _1Mhz_beta010.v のモジュール別解説:クロック生成、リレー帰還発振器、復調とアンチワインドアップ PI 位相同期、hilbert_90 による 2 タップ I/Q 対、固定小数点のイメージ除去とクラッタ除去、UART/PWM 出力。各モジュールにブロック図、Q フォーマットの固定小数点規約、遅延予算、対応する iverilog テストベンチを添えています。Rx_ir_Amped_DB 作為鎖定迴路的空中回授脈衝、Clutter_weak「不值得消除」旗標、fb_pulse 賦值順序為何不是 bug、_ir/_B 字尾整理、送進峰值擷取器的兩級 Rx_ir_B_d1/_d2 重定時與雙時鐘邊緣的來由、CC_Saver 第三次自動選路實驗與整理後的埠位,以及 clutter_cancel 的功能與演變。中英雙語。Nine design-decision notes grounded in the git record: Rx_ir_Amped_DB as the lock loop's over-the-air feedback pulse, the Clutter_weak "not worth cancelling" flag, why the fb_pulse assignment order is not a bug, the _ir/_B suffix hygiene, the two-stage Rx_ir_B_d1/_d2 re-time into the peak extractors and why it uses both clock edges, CC_Saver's third auto-selection experiment and its ports after the clean-up, and what clutter_cancel does and how it evolved. Bilingual.git の履歴に基づく 9 件の設計判断ノート:ロックループの空中帰還パルスとしての Rx_ir_Amped_DB、「除去する価値なし」を示す Clutter_weak フラグ、fb_pulse の代入順がバグではない理由、_ir/_B 接尾辞の整理、ピーク抽出器へ送る 2 段の Rx_ir_B_d1/_d2 リタイミングと両クロックエッジを使う経緯、CC_Saver の 3 回目の自動選択実験と整理後のポート、そして clutter_cancel の機能と変遷。中英二言語。