IceStick FPGA Development Extension
A comprehensive VS Code extension for FPGA development using the IceStick board with Docker-based toolchain integration.
Features
🚀 Project Management
- Create New FPGA Project: Automatically generates project structure with VHDL/Verilog templates
- Integrated Build System: One-click building with Docker-based toolchain
- FPGA Programming: Direct programming support with
iceprog
🐳 Docker Integration
- Automatic Docker Setup: Pull and configure the FPGA toolchain Docker image
- Status Monitoring: Real-time Docker status in the status bar
- Seamless Tool Integration: Yosys, nextpnr, and IceStorm tools via Docker
📝 Code Templates & Snippets
- VHDL Snippets: Entity, architecture, process, and PLL templates
- Verilog Snippets: Module, always block, and PLL templates
- Smart Templates: Pre-configured for IceStick board specifications
🔧 Build & Programming
- Make Integration: Build, clean, and program commands
- Progress Tracking: Real-time build progress notifications
- Error Handling: Clear error messages and debugging support
Commands
Access these commands via the Command Palette (Ctrl+Shift+P / Cmd+Shift+P ):
IceStick: Create New FPGA Project - Create a new FPGA project with templates
IceStick: Build Project - Build the current project
IceStick: Program FPGA - Program the FPGA with the built bitstream
IceStick: Clean Build - Clean build artifacts
IceStick: Setup Docker Environment - Download and setup Docker toolchain
IceStick: Check Docker Status - Verify Docker environment status
Requirements
- Docker: Required for the FPGA toolchain
- VS Code: Version 1.74.0 or higher
- IceStick FPGA Board: Lattice iCE40 HX1K development board
Installation
- Install the extension from the VS Code marketplace
- Open VS Code in your workspace folder
- Run
IceStick: Setup Docker Environment to download the toolchain
- Create your first project with
IceStick: Create New FPGA Project
Project Structure
The extension creates projects with the following structure:
project_name/
├── bin/ # Build outputs
├── docs/ # Documentation
├── sim/ # Simulation files
│ ├── testbenches/
│ └── waveforms/
├── src/ # Source files
│ ├── const/ # Constraint files (.pcf)
│ ├── verilog/ # Verilog sources
│ └── vhdl/ # VHDL sources
└── Makefile # Build configuration
Configuration
Configure the extension in VS Code settings:
icestick.dockerImage : Docker image name (default: alpha-nerds-icestick-env )
icestick.dockerHubImage : Docker Hub image name (default: kaanergun/alpha-nerds-icestick-env )
icestick.defaultDevice : FPGA device package (default: hx1k-stick )
icestick.useHostTools : Use host tools instead of Docker when available
The extension uses a Docker container with:
- IceStorm: Open source toolchain for Lattice iCE40 FPGAs
- Yosys: Synthesis tool
- nextpnr: Place and route tool
- GHDL: VHDL simulator and analyzer
Usage
- Create a Project: Use the command palette to create a new FPGA project
- Edit Your Design: Modify the generated VHDL/Verilog files
- Configure Pins: Edit the
.pcf file to define pin mappings
- Build: Use
IceStick: Build Project to synthesize your design
- Program: Use
IceStick: Program FPGA to upload to your board
Troubleshooting
Docker Issues
- Ensure Docker is installed and running
- Run
IceStick: Setup Docker Environment to download the toolchain
- Check Docker status in the status bar
Build Errors
- Verify your VHDL/Verilog syntax
- Check pin constraints in the
.pcf file
- Review build output in the VS Code terminal
Programming Issues
- Ensure the IceStick board is connected via USB
- Check USB permissions (Linux/macOS may require
sudo )
- Verify the board is detected with
lsusb (Linux) or System Information (macOS)
Contributing
This extension is part of the IceStick FPGA development ecosystem. Contributions are welcome!
License
MIT License - see LICENSE file for details.
Support
For issues and questions:
- Check the troubleshooting section above
- Review the Docker toolchain documentation
- Submit issues on the project repository
| |