はじめに
本記事はVivadoとQuartuzをARM版Macで動かすための方法をまとめます。残念ながらVivadoもQuartusもMacにもARMにも対応していないため、異なるOSと異なるアーキテクチャを動かす必要があります。幸いにもMacではVMを使ってLinuxを起動することができ、Rosetta2を使うことでx86のバイナリを実行できます。この記事では、リンク集として残したいと思います。
Vivado
M1 MacでVivadoが動いた!
拙著の記事では、LimaというMac上でVMを簡単に管理と接続できるWSLのようなツールを使って、出来るだけ簡単にVivadoを動かすことを主眼としています。Limaを用いたarm64のVMの上にx86のコンテナを実行しています。セットアップは非常に簡単ですが、Lima上のVZが少し不安定な挙動を示します。速度は非常に快適で、合成速度もCore i9のサーバーと比較してM2のMacBook Airは60%ほどの速度が出ています。
vivado-on-silicon-mac
この方法は、ARM版MacでVivadoを動かす方法として最もメジャーな方法だと思います。DockerというLinux向けのコンテナ技術を活用し、Rosetta for Linuxも使ってVivadoを実行しています。arm64のVMの上にx86のコンテナを実行することで実現しています。インストールスクリプトも用意されているので、簡単に動かすことができるようです。USB接続も対応しているようです。
Running Vivado on ARM64 Mac using Rosetta 2
この方法では、UTLというデスクトップ型のVMを管理するツールを使っています。Rosettaを使っていますが、コンテナ技術は使っておらず、arm64のLinuxのVMで直接動作しています。コンテナでx86のLinuxを起動していないため、他の方法よりわずかに軽量である可能性があります。ただしx86の依存関係のライブラリ周りが少し面倒なようです。
Quartus
記事にしておいて今更すみませんが、完全な形でQuartusを動かす記事を見つけられませんでした。以下には試行錯誤をしたユーザーの記事を掲載します。方法が見つかったらこの記事をアップデートします。
M1 mac で Quartus が動いた
この記事では、QEMU版のDockerを通じてx86版のLinux上にQuartusを動かしているようです。QEMUはx86の完全なエミュレーションなので動作が非常に遅いです。
Can Quartus run on an M1 Macbook?
海外の掲示板でもこの話題について盛んにディスカッションが行われています。Rosettaを使って試したユーザーがいるようですが、起動には成功していないようです。
Dockerを使ってIntel公式イメージを実行する
公式のDockerイメージが配布されたので早速試してみました。以下のようなエラーが出てしまいます。特定のCPUでないと起動できないようになっているようです。
The Quartus Prime software is optimized for the Intel Nehalem processor
and newer processors.
...
The Quartus Prime software will not function properly on this processor model.
おわりに
いかがでしたか?各種CADソフトは、Dockerに公式対応してくれ!