Inspiration

DinosaurEDA was born out of a common frustration: learning Hardware Description Languages (HDLs) like Verilog is hard, and setting up the tools to do it is even harder. Students often spend more time fighting with complex, proprietary toolchains than they do learning digital logic. We wanted to create a zero-friction, web-based environment where anyone could write Verilog, see it synthesized instantly, and get intelligent, AI-powered feedback—all without installing a single thing.

What it does

DinosaurEDA is a full-featured, web-based Integrated Development Environment (IDE) for Verilog.

Instant Synthesis: Users can write Verilog in a modern code editor (Monaco) and compile it instantly using the open-source Yosys synthesizer running in a secure, sandboxed backend.

AI-Powered Feedback: When a compilation fails (or succeeds!), Google's Gemini AI analyzes the logs and the user's code to provide a simple, beginner-friendly explanation of what went wrong and how to fix it.

Generative AI Coding: Users can describe a circuit in plain English, and Gemini will generate the corresponding Verilog code, ready to be synthesized.

Schematic Visualization: With one click, users can generate a professional-grade, interactive circuit diagram of their design, powered by Yosys and netlistsvg.

Full Terminal Access: A real-time, interactive terminal shows the raw output from the compiler, giving advanced users full visibility into the synthesis process.

How we built it

We built DinosaurEDA using a modern, distributed architecture:

Frontend: A clean, responsive web interface built with standard HTML/CSS/JavaScript. It leverages powerful libraries like Monaco Editor for code editing and Xterm.js for the integrated terminal.

Backend: A robust Node.js server that manages WebSocket connections for real-time communication.

Synthesis Engine: The core compiler, Yosys, runs inside secure, ephemeral Docker containers. This ensures that every compilation is clean, isolated, and safe from malicious code.

AI Integration: We integrated Google Cloud Vertex AI to give our application intelligence, allowing it to understand Verilog code and compiler error logs.

Infrastructure: The entire platform is hosted on a Google Compute Engine VM, with secure, encrypted access provided by a Cloudflare Tunnel, eliminating the need for open ports or complex firewall rules.

Challenges we ran into

Building a secure, real-time compiler on the web was full of tricky engineering challenges:

Docker-in-Docker Permissions: Getting our Node.js server (running as a standard user) to securely spawn and manage Docker containers required careful configuration of Linux user groups and permissions.

Real-time Streaming: Piping the raw stdout and stderr from a process inside a Docker container, through Node.js, over a WebSocket, and into a web-based terminal required a robust event-driven architecture to prevent hanging processes or lost data.

AI Hallucinations: Early tests showed Gemini generating Verilog with subtle syntax errors (like missing backticks on compiler directives). We had to refine our prompts and provide it with both the code and the error logs to make its advice accurate.

Cloud API Authentication: Moving from simple API keys to the more secure, automated Google Cloud Vertex AI authentication (using VM service accounts) was a major hurdle that required debugging obscure IAM permission errors.

Accomplishments that we're proud of

True End-to-End Security: We successfully implemented a sandboxed execution environment where users can run arbitrary code without any risk to our server.

Seamless AI Integration: The AI doesn't just generate code; it acts as a tutor, explaining complex compiler errors in plain English, which is a huge win for educational tools.

Professional Visualization: Generating real, accurate schematic diagrams from Verilog code—not just AI approximations—is a feature usually reserved for expensive, proprietary tools.

Zero-Config Deployment: By using Cloudflare Tunnels, we created a production-ready deployment that is secure by default and requires no public IP address.

What we learned

We learned that the "simple" part of a project—like a web frontend—is often the easiest to build, but the hardest to perfect. We spent hours debugging race conditions in JavaScript, fighting browser caches, and tweaking CSS flexbox layouts. We also gained deep experience with modern cloud infrastructure, learning the hard way that proper IAM roles and service accounts are far superior to hardcoded API keys. Most importantly, we learned that combining traditional, deterministic tools (like Yosys) with modern, probabilistic AI (like Gemini) creates a user experience that is far greater than the sum of its parts.

What's next for DinosaurEDA

VHDL Support: Adding support for VHDL is a logical next step to make the tool useful to a wider range of students and engineers.

Simulation & Waveforms: We want to add a "Run Simulation" feature using Icarus Verilog, allowing users to see waveform outputs right in the browser.

User Accounts & Saving: Currently, everything is ephemeral. Adding a database to let users save and share their projects would turn DinosaurEDA into a true community platform.

Built With

Share this project:

Updates