Running Vivado on Apple Silicon mac
As of early 2025, there’s no officially supported way to run Vivado on Apple Silicon mac. We have managed to run Vivado + Alchitry lab on Debian 12 + Rosetta, running on UTM (virtual machines for mac). This document shares how you can download the prepared image and run it using UTM.
System Requirement
Apple Silicon mac with least 8 GB of RAM and 280GB of free space for both downloading and unzipping (final free space needed: 160GB).
This method is tested on M2 Max Mac Studio and 15” M2 Macbook Air.
Installation Steps
Download UTM
You need to first download UTM. You can also use brew
for this:
brew update
brew install --cask utm
Download Image and Unzip
After that, download the image from here (TBC)
- You need to be signed in to your SUTD account
- This image comes with Debian 12, Rosetta, Vivado 2023.2, Alchitry Labs 1.2.7 (legacy) and Alchitry Labs 2 pre-installed (current)
Then unzip the downloaded file, either using Finder or CLI:
unzip <source.zip> -d <destination_directory>
It is recommended that you download this to an external drive, and then unzip and store the unzipped .utm
file to your computer. This process will take about 30-50 minutes because the size of the image is huge (approx 130 GB). You might want to move it out of your Downloads folder and put it somewhere more practical. This image will contain all your virtual machine’s data.
Start the VM
Once done, open UTM and import the image.
Check that there are TWO drives: sized approx 64 GB and 80 GB respectively in your
.utm
file. Right click on your.utm
file and click Show package contents. You should see the following underData/
:
Share Directories with Host Machine
You can share directories with your mac (host machine) by setting the desired shared directory in your host machine here. In this example we use Documents/alchitry-utm
in our host machine as shared directory:
Then in Debian (your VM), you can access this directory via the path /media/share/DIRECTORY_NAME
, in this case it will be /media/share/alchitry-utm
.
Login as debian
Start the VM and login with the password debian
. The sudo
password is also debian
.
Ensure that your desktop looks like this. If it doesn’t it means that what you have downloaded might be corrupted. Ensure you have enough space (280GB in total)!
Launching Alchitry Labs 2
You can start alchitry labs by opening terminal from the bottom menu of the desktop (press windows / command image if the dock isn’t visible) and type a2
command (an alias that launches the Alchitry Labs V2 binary).
Key in debian
as password when prompted.
debian@debian:~$ a2
[sudo] password for debian: [debian]
It will prompt you to create/open new project (first time) or open your last opened project (subsequently).
The VM also comes with legacy Alchitry Labs 1.2.7 (using Lucid V1). You can use command alchitry
to spawn it. See ~/.bashrc
for details.
Loading .bin from your mac to Alchitry Au FPGA
After building your code, you will need to load the binary to your FPGA. There’s no USB passthrough with the VM (it’s not the usual QEMU), so you will need to migrate PROJECT_PATH/build/alchitry_au.bin
to your host machine and flash it to your FPGA using Alchitry Loader part of the Alchitry Labs IDE for Apple Silicon.
If you have set up the shared directory above, simply navigate to this location.
Install Alchitry Labs V2 in your mac
From this link, install the Alchitry Labs V2 IDE. Follow the installation guide properly and open the app. Here’s the important steps: This application does not prove its origin with a developer signature. To open it:
- Click the download button.
- Note: Do not use the Launchpad to perform the following steps as it will not allow you to access the shortcut menu.
- Open the Finder and locate the application in your Downloads folder.
- Control-click the app icon, then choose Open from the shortcut menu.
- You will see a security warning stating the identity of the app author is unknown. Click Open.
Alchitry Loader
Then switch to Alchitry Loader first:
Find the synthesized binary and load it to your Alchitry Au FPGA: