<?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: PAWAN</title>
    <description>The latest articles on DEV Community by PAWAN (@pawan_fe14d4bbd65e54b9a86).</description>
    <link>https://dev.to/pawan_fe14d4bbd65e54b9a86</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.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3485365%2Ff46c3078-e87a-480b-a2d4-00fa24be788b.png</url>
      <title>DEV Community: PAWAN</title>
      <link>https://dev.to/pawan_fe14d4bbd65e54b9a86</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/pawan_fe14d4bbd65e54b9a86"/>
    <language>en</language>
    <item>
      <title>I Asked Kiro to Understand My Verilog Codebase — It Built Me an AI-Powered EDA Assistant</title>
      <dc:creator>PAWAN</dc:creator>
      <pubDate>Sun, 14 Sep 2025 20:44:30 +0000</pubDate>
      <link>https://dev.to/pawan_fe14d4bbd65e54b9a86/i-asked-kiro-to-understand-my-verilog-codebase-it-built-me-an-ai-powered-eda-assistant-41j4</link>
      <guid>https://dev.to/pawan_fe14d4bbd65e54b9a86/i-asked-kiro-to-understand-my-verilog-codebase-it-built-me-an-ai-powered-eda-assistant-41j4</guid>
      <description>&lt;p&gt;&lt;strong&gt;Hardware engineers spend up to 30% of their time navigating code instead of writing it.&lt;/strong&gt; I used &lt;a href="https://kiro.dev" rel="noopener noreferrer"&gt;Kiro&lt;/a&gt; to build a system that indexes, visualizes, and even AI-assists Verilog development — all inside VS Code. Here’s how I transformed chaotic hardware projects into structured, efficient workflows with AI-powered planning and coding.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why Verilog Needs Better Tools
&lt;/h2&gt;

&lt;p&gt;Verilog projects are notoriously messy. Modules are scattered across dozens of files, signal flows are invisible, and documentation is minimal. AI tools either ignore hardware languages or offer irrelevant suggestions. I wanted to change that.&lt;/p&gt;

&lt;p&gt;With Kiro, I built &lt;strong&gt;VeriGraph&lt;/strong&gt;, an AI-enhanced, graph-aware Verilog code intelligence system that helps engineers navigate designs, identify bugs, and write production-ready code — all while keeping performance, monitoring, and debugging in mind.&lt;/p&gt;




&lt;h2&gt;
  
  
  🚀 Phase 0 – Spec Mode: Thinking Before Coding
&lt;/h2&gt;

&lt;p&gt;When I opened Kiro and asked it to “Help me build a tool that indexes Verilog codebases,” I expected it to generate code immediately. Instead, it asked:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;“Before we code — let’s structure this. Would you like me to generate &lt;code&gt;design.md&lt;/code&gt;, &lt;code&gt;requirements.md&lt;/code&gt;, and &lt;code&gt;tasks.md&lt;/code&gt; to get started?”&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;That pause changed everything. Kiro helped me &lt;strong&gt;plan like a senior engineer&lt;/strong&gt;, giving me structured files to guide development.&lt;/p&gt;

&lt;h3&gt;
  
  
  Files Kiro Generated:
&lt;/h3&gt;

&lt;p&gt;✅ &lt;strong&gt;design.md&lt;/strong&gt; – The “Why” and “What”&lt;br&gt;&lt;br&gt;
Defines architecture, user experience, and vision.&lt;/p&gt;

&lt;p&gt;✅ &lt;strong&gt;requirements.md&lt;/strong&gt; – The “Must-Haves”&lt;br&gt;&lt;br&gt;
Outlines functional needs, constraints, and performance goals.&lt;/p&gt;

&lt;p&gt;✅ &lt;strong&gt;tasks.md&lt;/strong&gt; – The “How” and “When”&lt;br&gt;&lt;br&gt;
Breaks down the project into ordered steps with dependencies and effort estimates.&lt;/p&gt;

&lt;p&gt;This approach transformed how I think about building software — from guesswork to clarity.&lt;/p&gt;




&lt;h2&gt;
  
  
  💡 Phase 4 – Task-by-Task Development with Kiro as Copilot
&lt;/h2&gt;

&lt;p&gt;For each task, I would:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Click the task → “Implement this with Kiro.”&lt;/li&gt;
&lt;li&gt;Review the generated code → test → refine → commit.&lt;/li&gt;
&lt;li&gt;Move to the next task.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;strong&gt;Example prompt:&lt;/strong&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;“Kiro, implement task #2: Build CacheManager with LRU + disk fallback.”&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;It felt like pair programming with someone who already read the spec. Kiro even anticipated my needs — suggesting unused signal detection based on the design goals, not just following instructions.&lt;/p&gt;




&lt;h2&gt;
  
  
  ✅ Key Features Built with Kiro
&lt;/h2&gt;

&lt;h3&gt;
  
  
  📦 Multi-Level Caching
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Prompt:&lt;/strong&gt; Design a CacheManager with LRU memory cache + disk fallback.&lt;br&gt;&lt;br&gt;
&lt;strong&gt;Result:&lt;/strong&gt; TypeScript interfaces, TTL support, and fallback logic integrated with symbol indexing.&lt;/p&gt;

&lt;h3&gt;
  
  
  🤖 AI Service Manager
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Prompt:&lt;/strong&gt; Create a service that abstracts multiple LLM providers with fallback and streaming support.&lt;br&gt;&lt;br&gt;
&lt;strong&gt;Result:&lt;/strong&gt; Registry-driven architecture, context-building from parsed Verilog ASTs, and streaming handlers.&lt;/p&gt;

&lt;h3&gt;
  
  
  📊 Graph Builder for Signal Flow
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Prompt:&lt;/strong&gt; Parse Verilog ASTs to build a module graph tracking signal connections.&lt;br&gt;&lt;br&gt;
&lt;strong&gt;Result:&lt;/strong&gt; Recursive walkers, path tracing, and JSON output for D3.js visualization.&lt;/p&gt;

&lt;h3&gt;
  
  
  🧠 VS Code Extension Enhancements
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Prompt:&lt;/strong&gt; Improve IntelliSense, go-to-definition, and find-references using symbol index and graph data.&lt;br&gt;&lt;br&gt;
&lt;strong&gt;Result:&lt;/strong&gt; Hover info, status bar notifications, and error handling.&lt;/p&gt;

&lt;h3&gt;
  
  
  ⚙ Performance Monitoring &amp;amp; Error Handling
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Prompt:&lt;/strong&gt; Add metrics tracking and centralized error reporting.&lt;br&gt;&lt;br&gt;
&lt;strong&gt;Result:&lt;/strong&gt; Prometheus-style monitoring, error hooks, and health checks.&lt;/p&gt;




&lt;h2&gt;
  
  
  📂 The Spec That Guided Everything
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight markdown"&gt;&lt;code&gt;&lt;span class="gh"&gt;# VeriGraph – Verilog Codebase Intelligence System&lt;/span&gt;

&lt;span class="gu"&gt;## Features&lt;/span&gt;
&lt;span class="p"&gt;1.&lt;/span&gt; Multi-level caching (memory + disk) for fast symbol lookups
&lt;span class="p"&gt;2.&lt;/span&gt; WebSocket server for real-time file change notifications
&lt;span class="p"&gt;3.&lt;/span&gt; AI service manager supporting multiple LLM backends with streaming
&lt;span class="p"&gt;4.&lt;/span&gt; Graph builder for module hierarchy + signal flow visualization
&lt;span class="p"&gt;5.&lt;/span&gt; VS Code extension with IntelliSense, go-to-definition, and find-references
&lt;span class="p"&gt;6.&lt;/span&gt; Performance monitoring + error handling
&lt;span class="p"&gt;7.&lt;/span&gt; Search engine with fuzzy matching and pagination
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  ❌ Where Kiro Needed My Help
&lt;/h2&gt;

&lt;p&gt;While Kiro amazed me, it wasn’t perfect. Here’s where I had to step in:&lt;/p&gt;

&lt;p&gt;✔ &lt;strong&gt;Didn’t understand &lt;code&gt;generate&lt;/code&gt; blocks →&lt;/strong&gt; I pasted examples → it learned&lt;br&gt;&lt;br&gt;
✔ &lt;strong&gt;AI context too long →&lt;/strong&gt; I asked “how to trim?” → it suggested priority-based truncation&lt;br&gt;&lt;br&gt;
✔ &lt;strong&gt;VS Code API confusion →&lt;/strong&gt; I said “use &lt;code&gt;vscode.workspace&lt;/code&gt;, not &lt;code&gt;fs&lt;/code&gt;” → it corrected itself&lt;/p&gt;

&lt;p&gt;💡 &lt;strong&gt;Lesson:&lt;/strong&gt; Kiro is a thinking partner, not a magic box. Feed it context, examples, and feedback — and it grows with you.&lt;/p&gt;




&lt;p&gt;But the agent would keep waiting, then say:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;“Command may have failed. Retrying (1/3)...”&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;And rerun the command multiple times — even though everything worked fine.&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.amazonaws.com%2Fuploads%2Farticles%2F5vvfghjh0evs7pr4cefz.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.amazonaws.com%2Fuploads%2Farticles%2F5vvfghjh0evs7pr4cefz.png" alt="Agent Retry Issue" width="800" height="418"&gt;&lt;/a&gt;&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.amazonaws.com%2Fuploads%2Farticles%2F9xn42zgx1sfqi3mpliyf.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.amazonaws.com%2Fuploads%2Farticles%2F9xn42zgx1sfqi3mpliyf.png" alt="Agent Confusion" width="800" height="190"&gt;&lt;/a&gt;&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.amazonaws.com%2Fuploads%2Farticles%2F9ebisx7kg92oikfqijbr.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.amazonaws.com%2Fuploads%2Farticles%2F9ebisx7kg92oikfqijbr.png" alt="Terminal Logs" width="800" height="352"&gt;&lt;/a&gt;&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.amazonaws.com%2Fuploads%2Farticles%2Fr6o1ghejetcs19ngxv4d.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.amazonaws.com%2Fuploads%2Farticles%2Fr6o1ghejetcs19ngxv4d.png" alt="Retry Attempts" width="800" height="352"&gt;&lt;/a&gt;&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.amazonaws.com%2Fuploads%2Farticles%2Fhsic5lcscykxjzy8t0gt.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.amazonaws.com%2Fuploads%2Farticles%2Fhsic5lcscykxjzy8t0gt.png" alt="Error Message" width="800" height="352"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  ⚙ Common IDE Problems I Faced
&lt;/h2&gt;

&lt;h3&gt;
  
  
  ❗ Irrelevant Autocomplete in Contextless Files
&lt;/h3&gt;

&lt;p&gt;When editing the &lt;code&gt;.env&lt;/code&gt; file, the autocomplete suggested JSON syntax — totally irrelevant.&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.amazonaws.com%2Fuploads%2Farticles%2Fnaqshtog10xvyjv4wpcv.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.amazonaws.com%2Fuploads%2Farticles%2Fnaqshtog10xvyjv4wpcv.png" alt="Irrelevant Autocomplete" width="599" height="546"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Improvement suggestion:&lt;/strong&gt; Make suggestions context-aware based on file type and syntax.&lt;/p&gt;




&lt;h3&gt;
  
  
  ❗ Poor Quality Suggestions
&lt;/h3&gt;

&lt;p&gt;Autocomplete suggestions were generic and unhelpful in many cases.&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.amazonaws.com%2Fuploads%2Farticles%2Fz68d6i81l05i8hqbe40a.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.amazonaws.com%2Fuploads%2Farticles%2Fz68d6i81l05i8hqbe40a.png" alt="Low Quality Suggestions" width="800" height="200"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Improvement suggestion:&lt;/strong&gt; Improve relevance and prioritize suggestions based on file semantics.&lt;/p&gt;




&lt;h2&gt;
  
  
  📈 Improvements Needed in the IDE
&lt;/h2&gt;

&lt;p&gt;✅ &lt;strong&gt;Show Code Differences (Diff View) for AI-generated Code&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
Whenever the AI writes or modifies code, it should highlight changes in a diff view, similar to Git workflows. This makes reviewing changes easier.&lt;/p&gt;

&lt;p&gt;✅ &lt;strong&gt;Context-aware Commit Messages in Git Integration&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
Automatically generate commit messages based on the intent and changes made during AI-assisted development.&lt;/p&gt;

&lt;p&gt;✅ &lt;strong&gt;Prevent Hallucination by Integrating Web Search&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
AI sometimes hallucinates incorrect logic. Integrating web search and documentation can provide real examples and reduce errors.&lt;/p&gt;

&lt;p&gt;✅ &lt;strong&gt;Better Context Handling Across Files&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
AI should reference definitions across files, even if they’re not open or immediately visible, ensuring suggestions are contextually aware.&lt;/p&gt;

&lt;p&gt;✅ &lt;strong&gt;Memory-based Awareness of Known Issues&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
The AI should remember past functions and patterns to warn about edge cases or performance pitfalls.&lt;/p&gt;

&lt;p&gt;✅ &lt;strong&gt;AI-powered Code Review Assistant&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
Integrate a system that flags bugs, inefficiencies, and style violations before code review, speeding up development cycles.&lt;/p&gt;

&lt;p&gt;✅ &lt;strong&gt;Context Switching Across Projects and IDEs&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
Allow seamless context switching between multiple projects or IDEs while preserving state and workflow continuity.&lt;/p&gt;

&lt;p&gt;✅ &lt;strong&gt;Customizable AI Behavior&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
Developers should be able to adjust AI verbosity, strictness, and aggressiveness based on project needs.&lt;/p&gt;

&lt;p&gt;✅ &lt;strong&gt;Error Prediction and Testing Recommendations&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
Suggest tests and highlight potential runtime errors proactively.&lt;/p&gt;

&lt;p&gt;✅ &lt;strong&gt;Security-aware Coding Suggestions&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
Flag unsafe code patterns like SQL injections or improper authentication in real-time.&lt;/p&gt;

&lt;p&gt;✅ &lt;strong&gt;Learning from Developer Feedback&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
Allow users to approve or reject suggestions, improving AI personalization and relevance over time.&lt;/p&gt;

&lt;p&gt;✅ &lt;strong&gt;Visualization Tools&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
Provide graphical views of function calls, data flow, and architecture to assist developers in understanding complex codebases better.&lt;/p&gt;




&lt;h2&gt;
  
  
  🚀 Final Thoughts
&lt;/h2&gt;

&lt;p&gt;Kiro isn’t just another coding assistant — it’s a thinking partner that helps you plan, build, and ship better software. With VeriGraph, I learned how structured thinking combined with AI assistance can turn overwhelming projects into manageable, productive workflows.&lt;/p&gt;

&lt;p&gt;This experience not only helped me build a smarter IDE but also taught me how to collaborate with AI — feeding it context, refining suggestions, and solving real-world problems together.&lt;/p&gt;

&lt;p&gt;🙏 Thank You, Kiro Team&lt;br&gt;
Kiro didn't just help me write code faster — it helped me think better. The spec-driven approach transformed chaotic ideas into structured, professional software architecture.&lt;br&gt;
To other Kiro Hackathon participants: Don't skip the spec phase. That's where the real magic happens.&lt;br&gt;
To the judges: VeriGraph represents the future of AI-assisted development — where planning, coding, and innovation happen seamlessly together.&lt;/p&gt;

&lt;p&gt;Ready to revolutionize hardware development? Star the repo, try the extension, and let's build the future of Verilog tooling together!&lt;br&gt;
&lt;strong&gt;&lt;em&gt;Let’s build smarter, not harder.&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;.&lt;/p&gt;

&lt;p&gt;💻 Try VeriGraph Yourself&lt;br&gt;
🔗 GitHub Repository: &lt;a href="https://github.com/Jackpkn/coding-engine" rel="noopener noreferrer"&gt;https://github.com/Jackpkn/coding-engine&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
   🚀
&lt;/h2&gt;

&lt;p&gt;Built with ❤️ using Kiro — The AI IDE that thinks before it codes.&lt;/p&gt;

&lt;h1&gt;
  
  
  KiroHackathon #VerilogIDE #HardwareDevelopment #AIAssistedCoding #ProductivityTools #OpenSource #VSCodeExtension #SpecDrivenDevelopment
&lt;/h1&gt;

</description>
    </item>
  </channel>
</rss>
