<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Johan Fernandes</title>
    <description>The latest articles on DEV Community by Johan Fernandes (@johan_fernandes).</description>
    <link>https://dev.to/johan_fernandes</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F1891510%2F1322beb9-aff1-47f0-b557-f7d6d191ee71.png</url>
      <title>DEV Community: Johan Fernandes</title>
      <link>https://dev.to/johan_fernandes</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/johan_fernandes"/>
    <language>en</language>
    <item>
      <title>👻 ASCII Ghost: A Local AI Debugging Companion for FPGA &amp; Embedded Systems</title>
      <dc:creator>Johan Fernandes</dc:creator>
      <pubDate>Sun, 01 Nov 2026 18:31:31 +0000</pubDate>
      <link>https://dev.to/johan_fernandes/ascii-ghost-a-local-ai-debugging-companion-for-fpga-embedded-systems-55ko</link>
      <guid>https://dev.to/johan_fernandes/ascii-ghost-a-local-ai-debugging-companion-for-fpga-embedded-systems-55ko</guid>
      <description>&lt;p&gt;&lt;em&gt;Hacktoberfest 2026 Progress Update&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;If you’ve ever stared at a cryptic FPGA timing report or a garbled UART crash log at 2 AM, you know the feeling: there’s a ghost in the machine, and it’s mocking you. &lt;/p&gt;

&lt;p&gt;For Hacktoberfest Week 4 ("Ghost in the Machine"), I decided to build a tool to help exorcise those hardware demons: &lt;strong&gt;ASCII Ghost&lt;/strong&gt;. &lt;/p&gt;

&lt;p&gt;Since time is tight, I’m sharing this progress update to document the journey, share the architecture, and lay the groundwork for future deep-dive articles. &lt;/p&gt;




&lt;h2&gt;
  
  
  💡 The Problem
&lt;/h2&gt;

&lt;p&gt;Hardware debugging is hard. When a design fails, the logs are often verbose, cryptic, and highly specific to the toolchain. While AI can help summarize these logs, sending proprietary RTL code, timing reports, or firmware crash dumps to a cloud-based LLM is a massive security and privacy risk for engineers and companies.&lt;/p&gt;

&lt;h2&gt;
  
  
  👻 The Solution: ASCII Ghost
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;ASCII Ghost&lt;/strong&gt; is a terminal-based, offline AI debugging companion for FPGA and embedded systems. &lt;/p&gt;

&lt;p&gt;Instead of blindly asking an AI to "read this log," ASCII Ghost uses a &lt;strong&gt;two-stage pipeline&lt;/strong&gt;:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Deterministic Parsing&lt;/strong&gt;: Python scripts extract concrete, measurable evidence from the logs (e.g., Worst Negative Slack, specific register faults, watchdog timeouts).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Local AI Reasoning&lt;/strong&gt;: A local, open-weight model (via Ollama) interprets &lt;em&gt;only&lt;/em&gt; the extracted evidence to provide root-cause hypotheses and actionable debugging steps.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;This means your sensitive hardware logs &lt;strong&gt;never leave your machine&lt;/strong&gt;.&lt;/p&gt;




&lt;h2&gt;
  
  
  🛠️ Current Progress (MVP)
&lt;/h2&gt;

&lt;p&gt;Here’s what’s up and running so far:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;✅ &lt;strong&gt;Core Architecture&lt;/strong&gt;: Set up with Python, &lt;code&gt;typer&lt;/code&gt; for the CLI, and &lt;code&gt;rich&lt;/code&gt; for beautiful terminal output.&lt;/li&gt;
&lt;li&gt;✅ &lt;strong&gt;Local AI Integration&lt;/strong&gt;: Successfully connected to Ollama (currently testing with lightweight models like &lt;code&gt;gemma3:4b&lt;/code&gt;).&lt;/li&gt;
&lt;li&gt;✅ &lt;strong&gt;FPGA Analyzer&lt;/strong&gt;: A deterministic parser that scans timing reports for issues like Negative Slack (&lt;code&gt;WNS &amp;lt; 0&lt;/code&gt;) and unconstrained paths.&lt;/li&gt;
&lt;li&gt;✅ &lt;strong&gt;Evidence-Based Prompting&lt;/strong&gt;: The AI is explicitly instructed to separate &lt;em&gt;observed facts&lt;/em&gt; from &lt;em&gt;hypotheses&lt;/em&gt; and never invent measurements.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Example Output (Work in Progress)
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;[1] EXTRACTED EVIDENCE
{'target': 'FPGA', 'issues': ['Negative slack detected: -2.450 ns', 'Timing requirements were not met'], 'warnings': ['Unconstrained path detected']}

[2] ASCII GHOST DIAGNOSIS
   .-""""-.
  /  o  o  \   "Your timing budget is haunted..."
  |   --   |
  \  ____  /
   '------'

OBSERVED: WNS of -2.450 ns and unconstrained paths.
HYPOTHESIS: A setup timing violation on a clock domain crossing or poorly constrained path.
NEXT STEPS: 
  1. Inspect the failing startpoint and endpoint in the timing report.
  2. Verify clock constraints (create_clock, set_clock_groups).
  3. Consider adding a synchronizer if this is a CDC path.
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h2&gt;
  
  
  🌍 Why Open-Source AI Matters Here
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Privacy First&lt;/strong&gt;: Proprietary hardware logs stay on your local machine. No API keys, no cloud uploads.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Transparency&lt;/strong&gt;: By separating deterministic parsing from AI generation, we can audit &lt;em&gt;why&lt;/em&gt; the AI made a suggestion. It’s grounded in extracted facts, reducing hallucinations.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Flexibility&lt;/strong&gt;: You can swap the underlying model (e.g., Llama 3, Phi-3, Gemma) based on your laptop's RAM constraints without changing the application logic.&lt;/li&gt;
&lt;/ol&gt;




&lt;h2&gt;
  
  
  🔮 What’s Next?
&lt;/h2&gt;

&lt;p&gt;This is just the beginning! In upcoming articles, I’ll be covering:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;🛠️ Building the &lt;strong&gt;Embedded Analyzer&lt;/strong&gt; (UART logs, firmware watchdog resets, and stack overflows).&lt;/li&gt;
&lt;li&gt;🎨 Enhancing the &lt;strong&gt;Terminal UI&lt;/strong&gt; to give the "Ghost" more personality and better visual diagnostics.&lt;/li&gt;
&lt;li&gt;🧪 Writing robust &lt;code&gt;pytest&lt;/code&gt; suites to ensure the deterministic parsers never break.&lt;/li&gt;
&lt;li&gt;📦 Packaging and publishing the tool for an easy &lt;code&gt;pip install&lt;/code&gt;.&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  🤝 Get Involved!
&lt;/h2&gt;

&lt;p&gt;The project is in its early stages, and I’d love your feedback. &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;GitHub Repo&lt;/strong&gt;: &lt;code&gt;https://github.com/LiquidSilicion/ascii-ghost&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Try it out&lt;/strong&gt;: Clone the repo, install Ollama, and run the sample FPGA logs!&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Have a hardware debugging horror story? Or an idea for what the Ghost should analyze next? Let me know in the comments below! 👇&lt;/p&gt;




&lt;p&gt;&lt;em&gt;Built with ❤️ and ☕ for #Hacktoberfest 2026.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>devchallenge</category>
      <category>hf26challenge</category>
    </item>
    <item>
      <title>Beyond TOPS: Building an Open-Source Neuromorphic FPGA Benchmarking Suite</title>
      <dc:creator>Johan Fernandes</dc:creator>
      <pubDate>Tue, 20 Oct 2026 10:21:21 +0000</pubDate>
      <link>https://dev.to/johan_fernandes/beyond-tops-building-an-open-source-neuromorphic-fpga-benchmarking-suite-1mme</link>
      <guid>https://dev.to/johan_fernandes/beyond-tops-building-an-open-source-neuromorphic-fpga-benchmarking-suite-1mme</guid>
      <description>&lt;p&gt;&lt;strong&gt;Why traditional AI benchmarks fail for brain-inspired computing, and how we're fixing it with open-source tooling.&lt;/strong&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  🧠 The Problem: Measuring a Sports Car with a Ruler
&lt;/h2&gt;

&lt;p&gt;If you've been following AI hardware trends, you've probably seen benchmarks like MLPerf throwing around impressive numbers: "100 TOPS!" "1000 TOPS!" These metrics work great for traditional deep learning accelerators that crunch dense matrix multiplications.&lt;/p&gt;

&lt;p&gt;But here's the thing: &lt;strong&gt;neuromorphic computing doesn't work like that.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Spiking Neural Networks (SNNs) are:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Sparse&lt;/strong&gt;: Most neurons are idle most of the time&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Event-driven&lt;/strong&gt;: Computation only happens when spikes arrive&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Asynchronous&lt;/strong&gt;: No global clock ticking away&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Measuring an SNN with TOPS (Tera Operations Per Second) is like measuring a hybrid car's fuel efficiency in gallons per hour instead of miles per gallon. The metric is technically valid, but it completely misses the point.&lt;/p&gt;

&lt;p&gt;What we actually care about for neuromorphic hardware:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Spikes Per Second (SOPS)&lt;/strong&gt;: True event-driven throughput&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Energy per Spike (pJ/spike)&lt;/strong&gt;: The holy grail for ultra-low-power edge AI&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Neuron Density&lt;/strong&gt;: How many neurons per LUT/FF?&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Routing Efficiency&lt;/strong&gt;: SNNs are highly interconnected; routing is often the real bottleneck&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  🔍 The Solution: NeuroMetric-FPGA
&lt;/h2&gt;

&lt;p&gt;I've been working on an open-source benchmarking suite called &lt;strong&gt;NeuroMetric-FPGA&lt;/strong&gt; that's specifically designed to evaluate neuromorphic FPGA designs using metrics that actually matter.&lt;/p&gt;

&lt;h3&gt;
  
  
  Architecture Overview
&lt;/h3&gt;

&lt;p&gt;The suite has three modular layers:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;&lt;code&gt;workloads/&lt;/code&gt;&lt;/strong&gt;: Standardized neuromorphic datasets (N-MNIST, DVS Gesture) converted to spike-train format&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;&lt;code&gt;rtl/&lt;/code&gt;&lt;/strong&gt;: Reference SNN implementations in Verilog (currently a baseline Leaky Integrate-and-Fire neuron array)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;&lt;code&gt;host/&lt;/code&gt;&lt;/strong&gt;: Python telemetry engine that parses Vivado/Quartus reports and auto-generates benchmark reports&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;The key innovation? &lt;strong&gt;Automated parsing of FPGA toolchain reports&lt;/strong&gt; to extract real hardware metrics, combined with neuromorphic-specific performance calculations.&lt;/p&gt;

&lt;h2&gt;
  
  
  📊 Real Results: ZedBoard Baseline
&lt;/h2&gt;

&lt;p&gt;Let's look at some actual data from our baseline LIF (Leaky Integrate-and-Fire) neuron array implemented on a Xilinx Zynq-7020 (ZedBoard).&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fcjftu4b4p4meero8l7bb.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fcjftu4b4p4meero8l7bb.png" alt="**Key Insight**: This ultra-lightweight design uses less than 1% of the FPGA's resources, leaving massive headroom for scaling up to larger neuron arrays or adding complex routing fabrics." width="670" height="356"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Key Insight&lt;/strong&gt;: This ultra-lightweight design uses less than 1% of the FPGA's resources, leaving massive headroom for scaling up to larger neuron arrays or adding complex routing fabrics.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fi8eu03mtxmjjorucwidf.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fi8eu03mtxmjjorucwidf.png" alt="**Critical Finding**: Only **20.7%** of the power is used for active computation. The rest is static leakage. This reveals a major optimization opportunity: clock gating and power gating could dramatically improve efficiency for event-driven workloads." width="454" height="374"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Critical Finding&lt;/strong&gt;: Only &lt;strong&gt;20.7%&lt;/strong&gt; of the power is used for active computation. The rest is static leakage. This reveals a major optimization opportunity: clock gating and power gating could dramatically improve efficiency for event-driven workloads.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fkfujg1wa6cw0n68q6pnt.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fkfujg1wa6cw0n68q6pnt.png" alt="The difference between " width="670" height="356"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The difference between "total" and "dynamic" energy per spike is striking: &lt;strong&gt;4.8x improvement&lt;/strong&gt; when you account for only the active computation. This is exactly the kind of insight that traditional benchmarks miss.&lt;/p&gt;

&lt;h2&gt;
  
  
  🛠️ How It Works
&lt;/h2&gt;

&lt;p&gt;The Python telemetry engine (&lt;code&gt;benchmark.py&lt;/code&gt;) does the heavy lifting:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="c1"&gt;# Parse Vivado utilization report
&lt;/span&gt;&lt;span class="n"&gt;lut_match&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;re&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;search&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sa"&gt;r&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;\|\s*Slice LUTs\s*\|\s*(\d+)\s*\|&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;content&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="n"&gt;lut_match&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
    &lt;span class="n"&gt;hw_metrics&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;LUT&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nf"&gt;int&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;lut_match&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;group&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt;

&lt;span class="c1"&gt;# Parse power report
&lt;/span&gt;&lt;span class="n"&gt;total_power_match&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;re&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;search&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sa"&gt;r&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;\|\s*Total On-Chip Power \(W\)\s*\|\s*([\d\.]+)&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;content&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="n"&gt;total_power_match&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
    &lt;span class="n"&gt;power_metrics&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;total_power_w&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nf"&gt;float&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;total_power_match&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;group&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt;

&lt;span class="c1"&gt;# Calculate neuromorphic metrics
&lt;/span&gt;&lt;span class="n"&gt;sops&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;total_spikes&lt;/span&gt; &lt;span class="o"&gt;/&lt;/span&gt; &lt;span class="n"&gt;time_sec&lt;/span&gt;
&lt;span class="n"&gt;energy_per_spike_pj&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;power_w&lt;/span&gt; &lt;span class="o"&gt;*&lt;/span&gt; &lt;span class="n"&gt;time_sec&lt;/span&gt; &lt;span class="o"&gt;*&lt;/span&gt; &lt;span class="mf"&gt;1e12&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;/&lt;/span&gt; &lt;span class="n"&gt;total_spikes&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The script automatically generates a clean Markdown report that's ready to be committed to GitHub and shared with the community.&lt;/p&gt;

&lt;h2&gt;
  
  
  🔮 What's Next?
&lt;/h2&gt;

&lt;p&gt;This is just &lt;strong&gt;Part 1&lt;/strong&gt; of the project. Here's what's on the roadmap:&lt;/p&gt;

&lt;h3&gt;
  
  
  Phase 2: Real-World Workload Validation (Coming Soon)
&lt;/h3&gt;

&lt;p&gt;A baseline is only as good as the data it processes. In the next iteration, we are upgrading the pipeline to handle real neuromorphic workloads:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;AXI4-Stream Integration&lt;/strong&gt;: Replacing the simple button/switch interface with a proper AXI4-Stream data path to ingest high-throughput event data.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;N-MNIST / DVS Gesture Pipeline&lt;/strong&gt;: Implementing a full classification pipeline to measure not just raw SOPS, but actual temporal classification accuracy vs. resource trade-offs.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Design Space Exploration&lt;/strong&gt;: Scaling the neuron array from 8 to 64+ neurons to observe how routing congestion and dynamic power scale non-linearly.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Phase 3: Framework Integration (Lava &amp;amp; snnTorch)
&lt;/h3&gt;

&lt;p&gt;Intel's &lt;strong&gt;Lava&lt;/strong&gt; and frameworks like &lt;strong&gt;snnTorch&lt;/strong&gt; are becoming the standard for software-side SNN development. We are exploring:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Using NeuroMetric-FPGA as a hardware validation backend for Lava models.&lt;/li&gt;
&lt;li&gt;Automating the mapping of software-defined SNN layers to our parameterized FPGA RTL.&lt;/li&gt;
&lt;li&gt;Cross-platform benchmarking: Comparing our FPGA metrics against CPU/GPU software simulations of the same network.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Phase 4: Community Contributions
&lt;/h3&gt;

&lt;p&gt;We're actively seeking contributions for:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Intel Quartus support&lt;/strong&gt;: Parse utilization and power reports from Altera/Intel tools&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;New datasets&lt;/strong&gt;: DVS Gesture, SHD (Spiking Heidelberg Digits), CIFAR10-DVS&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Larger FPGA boards&lt;/strong&gt;: ZCU102, Alveo U250, Lattice iCE40&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Advanced neuron models&lt;/strong&gt;: Izhikevich, Hodgkin-Huxley&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  🤝 Join the Hacktoberfest Challenge!
&lt;/h2&gt;

&lt;p&gt;This project is an official submission for the &lt;strong&gt;Hacktoberfest 2026 Open-Source AI Challenge&lt;/strong&gt;, and we need your help!&lt;/p&gt;

&lt;p&gt;Whether you're an FPGA engineer, ML researcher, or Python developer, there's something for you:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;🟢 &lt;strong&gt;[good first issue]&lt;/strong&gt;: Add a parser for Intel Quartus reports&lt;/li&gt;
&lt;li&gt;🟢 &lt;strong&gt;[good first issue]&lt;/strong&gt;: Convert a new dataset to spike-train format&lt;/li&gt;
&lt;li&gt;🟡 &lt;strong&gt;[help wanted]&lt;/strong&gt;: Implement AXI-Stream telemetry for high-throughput data transfer&lt;/li&gt;
&lt;li&gt;🔵 &lt;strong&gt;[documentation]&lt;/strong&gt;: Improve the API docs or write tutorials&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Check out the repo&lt;/strong&gt;: &lt;a href="https://github.com/LiquidSilicion/NeuroMetric-FPGA" rel="noopener noreferrer"&gt;github.com/LiquidSilicion/NeuroMetric-FPGA&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  💡 Why This Matters
&lt;/h2&gt;

&lt;p&gt;The neuromorphic computing community is growing rapidly, but we lack standardized, open-source benchmarking tools. Most research groups build their own custom evaluation scripts, making it nearly impossible to compare results across different papers and hardware platforms.&lt;/p&gt;

&lt;p&gt;NeuroMetric-FPGA aims to change that by providing:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Standardized metrics&lt;/strong&gt; that actually reflect neuromorphic efficiency&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Automated report generation&lt;/strong&gt; for reproducible research&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Open-source tooling&lt;/strong&gt; that anyone can extend and improve&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;If we can get the community to rally around a common benchmarking framework, we'll accelerate innovation in brain-inspired computing and make it easier to identify the most promising architectures for ultra-low-power edge AI.&lt;/p&gt;




&lt;h2&gt;
  
  
  📚 Resources
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;NeuroMetric-FPGA GitHub&lt;/strong&gt;: &lt;a href="https://github.com/LiquidSilicion/NeuroMetric-FPGA" rel="noopener noreferrer"&gt;github.com/LiquidSilicion/NeuroMetric-FPGA&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;NeuroBench&lt;/strong&gt;: The foundational neuromorphic benchmarking framework&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Intel Lava&lt;/strong&gt;: Open-source neuromorphic software framework&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Catalyst N1/N2&lt;/strong&gt;: Open-source neuromorphic processors with Loihi parity&lt;/li&gt;
&lt;/ul&gt;




&lt;p&gt;&lt;em&gt;Built with ❤️ for the open-source hardware community. If you find this project useful, please give it a ⭐ on GitHub and share it with your fellow FPGA engineers!&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Questions? Drop a comment below or open an issue on GitHub. Let's build the future of neuromorphic benchmarking together!&lt;/em&gt;&lt;/p&gt;

</description>
      <category>devchallenge</category>
      <category>hf26challenge</category>
      <category>opensource</category>
    </item>
  </channel>
</rss>
