testing page - jtristan123/HW-for-AI-ML-ECE-410 GitHub Wiki

sequenceDiagram
  participant GA_Python as GA Software (Python)
  participant LFSR_HW as LFSR (Verilog)
  participant Cocotb as cocotb Testbench
  participant VerilogSim as Icarus/Verilator
  participant SPI as SPI Bus

  GA_Python->>LFSR_HW: Request random (conceptual)
  note right of GA_Python: Swaps random.random() for hw_rand()

  GA_Python->>Cocotb: Send test harness (Python)
  Cocotb->>VerilogSim: Compile & run lfsr16.v
  VerilogSim->>LFSR_HW: Simulate LFSR logic
  LFSR_HW-->>VerilogSim: Output rnd_out bits

  VerilogSim-->>Cocotb: Return waveform results
  Cocotb-->>GA_Python: Validate correctness

  GA_Python->>SPI: (Future) Read rnd_out via SPI
  SPI-->>GA_Python: Random 16-bit word (hardware output)
Loading
sequenceDiagram
  participant User
  participant GA
  participant LFSR

  User->>GA: Run generation
  GA->>LFSR: Request random number
  LFSR-->>GA: Return 16-bit value
Loading
- random.random() 
+ hw_rand() / 65536.0 
  • random.random()
  • hw_rand() / 65536.0
gantt
  title Project Timeline
  section Simulation
    Setup      :a1, 2024-06-01, 3d
    Testing    :a2, after a1, 2d
Loading
flowchart TD
  A[Initialize Population] --> B[Evaluate Fitness]
  B --> C{Fitness == 0?}
  C -- No --> D[Select Parents → Mate → Mutate]
  D --> E[Form New Generation]
  E --> B
  C -- Yes --> F[Output Best Solution]
Loading

Release checklist

  • Tests pass
  • Update CHANGELOG
  • Tag v1.4.0

💡 Quick tip
Stash before you switch branches to avoid “would be overwritten” errors.


test

Why do we use Git-flow?

Because trunk-based makes Jim cry, that’s why.
(Click again to collapse)

Git branching workflow
Figure 1 — GA.py Output

**Git’s typical branching strategy lets contributors work in isolation while** **the main branch stays deployable. ** **New features are developed in short-lived branches, merged via pull requests,** **and deleted once tested. Release branches and hot-fix branches follow the** **same pattern, giving you a clean, linear history on main.**

Because the table is using the old-school align="right" attribute, browsers treat it like a floating element: it hugs the right margin and later inline content flows alongside on the left. :contentReference[oaicite:0]{index=0}


Any content that comes after this clear-break will begin on a new line beneath the image-and-caption block.

Git branching workflow
Figure 1 — GA.py Output

  • find where to improve
  • design chipset to improve speed
  • The image on the right show the time and HW acceleration is only worth if less than T3
  • measure and take to account all Ts (T5,T6,T7) make sure to benchmark main.

Because the table is using the old-school align="right" attribute, browsers treat it like a floating element: it hugs the right margin and later inline content flows alongside on the left.


Any content that comes after this clear-break will begin on a new line beneath the image-and-caption block.

⚠️ **GitHub.com Fallback** ⚠️