Note
Tested on MacOS 15 Sequoia. MacOS 14 is not supported.
This repository provides a solution to run Xilinx Vivado on macOS using Docker containerization.
The typical FPGA development workflow in Vivado consists of:
- RTL Design (Verilog/VHDL)
- Synthesis
- Implementation
- Generate Bitstream
- Program to Basys3 Board
When running Vivado in a container, direct hardware programming is not possible due to USB device access restrictions. To solve this, we use
openFPGALoader
:
- Generate bitstream in containerized Vivado
- Locate bitstream in your project directory (typically at
<project_name>/<project_name>.runs/impl_1/<top_level_module>.bit
)- Use
openFPGALoader
on host to program FPGA:bash brew install openfpgaloader openFPGALoader -b basys3 /path/to/project/<project_name>.runs/impl_1/<top_level_module>.bit
-
Disk Space
- Ensure you have at least 120GB of free disk space:
- ~80GB for Vivado download and Extract (this space will be freed after installation)
- ~40GB for program data
- Ensure you have at least 120GB of free disk space:
-
Homebrew
- Install Homebrew by running:
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
- Follow any additional setup instructions provided by the installer
- Install Homebrew by running:
-
Docker Desktop
- Install Docker Desktop for macOS from docker.com
- Alternatively, install via Homebrew:
brew install --cask docker
-
XQuartz
- Install via Homebrew:
brew install --cask xquartz
- After installation, restart your computer
- Open XQuartz and enable "Allow connections from network clients" in XQuartz preferences
- Navigate to XQuartz -> Settings -> Security -> Allow connections from network clients
- Install via Homebrew:
-
OpenFPGALoader
brew install openfpgaloader
-
Vivado Installer
- Download Vivado installer for Linux from AMD/Xilinx website
-
Get the Repository
git clone https://github.com/yokeTH/vivado-mac.git # or download and extract the ZIP file
-
Run Setup Script
cd vivado-mac ./scripts/setup.sh
-
Install Vivado
- When prompted, drag and drop the downloaded
Vivado installer
(from prerequisites no.4) into the terminal - Follow the installation instructions in the Vivado installer
- Select desired Vivado components
- When prompted, drag and drop the downloaded
-
Ensure Display Setup
- Check X11 Display Issues if you encounter problems
- XQuartz must be running before starting Vivado
-
Start Xilinx Virtual Cable (XVC)
# make sure your are in the vivado-mac directory ./openFPGALoader -b basys3 --xvc
-
Launch Vivado container:
./scripts/start_container.sh
-
Vivado GUI will appear in XQuartz window
- X11 Display Issues
- Ensure XQuartz is running
- In XQuartz preferences:
- Go to Security tab
- Check "Allow connections from network clients"
- Try restarting XQuartz
- Run
xhost + localhost
before starting container
- For permission issues, ensure setup script has executable permissions (
chmod +x scripts/setup.sh
) - 100 Killed Error
If you encounter the following error while using version
2024.2
:try to increase Docker memory limit: Open Docker Dashboard > Click on settings > Resource > Advanced you will see the Memory limitation100 Killed ${X_JAVA_HOME} /bin/java ${ARGS} -cp ${X_CLASS_PATH} comxilinx.installerapi.InstallerLauncher "$@"
This project is licensed under the BSD 3-Clause License - see the LICENSE file for details.
Vivado requires a license from AMD/Xilinx. Please obtain appropriate licensing from AMD/Xilinx website.
This repository contains the built binary of OpenFPGALoader that enable XVC feature for mac
This repository only provides the environment setup to run Vivado on Apple Silicon Macs via Docker. It does not include Vivado software itself. Users must:
- Download Vivado separately from AMD/Xilinx
- Comply with AMD/Xilinx's licensing terms
- Use at their own risk