Skip to content

Latest commit

 

History

History
68 lines (51 loc) · 2.76 KB

File metadata and controls

68 lines (51 loc) · 2.76 KB

Visual tour

EDA Viz gallery

Generated by eda-viz from the same divider block source.

Layout view Schematic view
Divider layout rendered by eda-viz Divider schematic rendered by eda-viz
Physical geometry with layer colors, ports, and routed metal. Symbolic circuit view derived from the same Rust block.

Waveform gallery

Generated by eda-waveform examples and gallery tools.

Time-domain traces Bode response
Clock and sample-hold waveform RC low-pass bode plot
Clock + analog sample/hold traces with event timing context. Magnitude and phase response for RC low-pass analysis.

ML optimization gallery (differentiable flow)

rlx-eda uses differentiable graphs plus autodiff to optimize both model weights (surrogate training) and circuit parameters (inverse design).

flowchart LR
  A[Sample circuit design points] --> B[Ground truth target from circuit physics]
  B --> C[Build rlx graph with MLP and loss nodes]
  C --> D[Autodiff with grad_with_loss]
  D --> E[Adam update]
  E --> F{Converged?}
  F -- No --> C
  F -- Yes --> G[Trained surrogate parameters]

  H[Inverse design target Vout at Vin] --> I[Build circuit loss graph]
  I --> J[Autodiff wrt circuit params]
  J --> K[Optimizer step on R1,R2]
  K --> L{Converged?}
  L -- No --> I
  L -- Yes --> M[Found circuit parameters]
Loading

Losses used in the current pipeline:

  • Surrogate training: $L_{\text{surr}} = \frac{1}{B}\sum_{i=1}^{B}(\hat{y}_i - y_i)^2$
  • Circuit inverse design: $L_{\text{ckt}} = (V_{out} - V_{target})^2$
xychart-beta
  title "Surrogate training loss (spike-surrogate, 1000 Adam steps)"
  x-axis "step" [0, 100, 250, 500, 750, 999]
  y-axis "loss" 0 --> 1.0
  line [0.9858750, 0.2032971, 0.04010923, 0.03156146, 0.007113763, 0.003316347]
Loading

Measured run outputs (from this workspace):

Optimization target Initial parameters Found parameters Final metric
Divider inverse design (spike-divider-block) R1=1000 Ω, R2=3000 Ω R1=2647.6 Ω, R2=1765.8 Ω Vout=0.400095 at Vin=1.0, loss 9.078e-9 in 151 iterations
Surrogate training (spike-surrogate) Xavier init over MLP [3→16→1] 81 learned weights/biases (W1,b1,W2,b2) loss from 9.858750e-1 to 3.316347e-3 over 1000 steps

Single-circuit step-by-step trace (all optimization iterations):