🔮 Chipz AI - VS Code Extension
AI-powered Verilog RTL code generation for hardware designers. Generate synthesizable Verilog code from natural language specifications using state-of-the-art LLMs.
✨ Features
- 🤖 AI-Powered Generation: Generate Verilog code from natural language descriptions
- 🎯 Multiple Backends: Support for AWS Bedrock (Claude), Google Gemini, and local models
- 🚀 Fast & Easy: Simple interface integrated directly into VS Code
- 📝 Smart Insertion: Insert generated code directly at cursor or replace selection
- 🎨 Beautiful UI: Dark purple themed interface with syntax highlighting
- 🔌 Flexible Deployment: Works with local server or cloud API
📦 Installation
Method 1: Install from VSIX (Manual)
- Download the latest
chipz-ai-X.X.X.vsix file
- Open VS Code
- Open Command Palette (
Cmd+Shift+P on Mac, Ctrl+Shift+P on Windows/Linux)
- Type "Install from VSIX" and select
Extensions: Install from VSIX...
- Select the downloaded VSIX file
Or via command line:
code --install-extension chipz-ai-0.1.0.vsix
Method 2: Install from VS Code Marketplace
(Coming soon)
🚀 Quick Start
1. Start the Backend Server
Option A: Local Server (for development)
# From the RTL project root
cd vscode-extension/backend
python start_server.py
The server will start at http://localhost:8000
Option B: Cloud Server (for production)
Use the AWS-deployed endpoint (see backend deployment docs)
- Open VS Code Settings (
Cmd+, or Ctrl+,)
- Search for "Chipz AI"
- Set
Chipz-ai: Api Endpoint to your server URL:
- Local:
http://localhost:8000 (default)
- Cloud:
https://your-api-gateway-url.amazonaws.com/production
- (Optional) Set
Chipz-ai: Api Key if using cloud with authentication
3. Generate Your First Module
- Open or create a Verilog file (
.v or .sv)
- Open Command Palette (
Cmd+Shift+P / Ctrl+Shift+P)
- Type "Chipz AI: Generate Verilog from Specification"
- Enter your specification in the panel
- Click "🚀 Generate Verilog"
- Insert the generated code into your file!
📚 Usage Examples
Example 1: Simple Multiplexer
Specification:
Create a 2-to-1 multiplexer with inputs a, b, sel and output out.
When sel is 0, output a. When sel is 1, output b.
Generated Code:
module mux2to1 (
input wire a,
input wire b,
input wire sel,
output wire out
);
assign out = (sel) ? b : a;
endmodule
Example 2: 4-bit Counter
Specification:
Create a 4-bit up counter with:
- Clock input: clk
- Reset input: reset (active high, synchronous)
- Enable input: enable
- Output: count[3:0]
The counter increments on rising clock edge when enabled.
Generated Code:
module counter_4bit (
input wire clk,
input wire reset,
input wire enable,
output reg [3:0] count
);
always @(posedge clk) begin
if (reset) begin
count <= 4'b0000;
end else if (enable) begin
count <= count + 1'b1;
end
end
endmodule
⚙️ Configuration
Extension Settings
| Setting |
Default |
Description |
chipz-ai.apiEndpoint |
http://localhost:8000 |
Server endpoint URL |
chipz-ai.apiKey |
"" |
API key for authentication |
chipz-ai.timeout |
120000 |
Request timeout (ms) |
chipz-ai.preferredBackend |
bedrock |
Default backend config |
chipz-ai.autoInsert |
false |
Auto-insert generated code |
chipz-ai.showNotifications |
true |
Show notification messages |
Backend Configurations
The server supports multiple AI backends:
- AWS Bedrock (Claude 3.5 Sonnet) - High quality, production-ready
- Google Gemini - Fast and cost-effective
Configure backends in the server's config files (see backend README).
🎨 Commands
Access via Command Palette (Cmd+Shift+P / Ctrl+Shift+P):
- Chipz AI: Generate Verilog from Specification - Open generation panel
- Chipz AI: Test Server Connection - Verify server connectivity
- Chipz AI: Open Settings - Quick access to extension settings
🔧 Troubleshooting
Server Not Connected
Problem: Status bar shows "❌ Not connected"
Solutions:
Check if server is running:
curl http://localhost:8000/health
Start the server:
cd vscode-extension/backend
python start_server.py
Verify endpoint in settings matches your server URL
Test connection: Use Command Palette → "Chipz AI: Test Server Connection"
Generation Takes Too Long
Problem: Request times out after 2 minutes
Solutions:
- Increase timeout in settings (
chipz-ai.timeout)
- Check AWS credentials (for Bedrock backend):
aws sts get-caller-identity --profile chipz
- Try a different backend (Gemini is typically faster)
AWS Authentication Errors
Problem: "Backend not available" with Bedrock
Solutions:
Refresh AWS SSO credentials:
aws sso login --profile chipz
Verify Bedrock access:
aws bedrock list-foundation-models --region us-east-1
Check IAM permissions include bedrock:InvokeModel
Generated Code Has Errors
Problem: Code doesn't compile or has syntax errors
Solutions:
- Make specification more detailed - Include all ports, behaviors, edge cases
- Specify module name and interface explicitly
- Try regenerating - AI models can produce different results
- Use a different backend - Some models may produce better results
📖 Documentation
🤝 Contributing
This is an MVP/internal tool. For bugs or feature requests, contact the Chipz AI team.
📝 License
MIT License - See LICENSE file for details
🔗 Links
💡 Tips
- Be specific - More detailed specifications produce better code
- Include edge cases - Mention reset behavior, clock edges, etc.
- Name things - Specify module names and signal names
- Test locally first - Use local server for development
- Save history - Generated code is shown in panel until closed
🎯 Roadmap
- [ ] Testbench generation
- [ ] Code validation with iverilog
- [ ] Multi-file project generation
- [ ] Code refactoring suggestions
- [ ] Integration with synthesis tools
Made with 🔮 by Chipz AI