ふんがのブログ

Verilog演習環境の構築

2025-08-25 20:07:48
2025-09-04 10:14:58
目次

Windows用

最近、windows環境でwslが簡単に使えるようになったため、個人のPC上でVerilog HDLを実習する環境がとても良くなりました。wsl自体は、Windows PowerShellを開いてwsl --installと打ち込めば良いです。インストールが行われ、アカウントとパスワードを聞いてくるので適当に打ち込んでください(ここではhunga)。 2度目以降はwsl.exe -d Ubuntuで起動できます。以下でicarus verilogとgtkwaveをインストールします。

sudo apt-get install iverilog

sudo apt-get install gtkwave

でiverilogとgtkwaveのインストールができます。ここで、テスト用のディレクトリを取ってきましょう。

aisemi.tar

このファイルをダウンロードすると、そのファイルは/mnt/c/Users/hunga/Downloadsの下に入ります。演習用のディレクトリvtestを作ってこのファイルをコピーし、解凍しましょう。

mkdir vtest

cd vtest

cp /mnt/c/Users/hunga/Downloads/aisemi.tar .

tar xvf aisemi.tar

cd aisemi

このtarファイルの中には、Verilog HDLの基本的な演習問題が入っています。詳細な解説はAIと半導体講座の第7回の資料中にあります。お試しください。

Mac用

Mac用では、まずHomebrewをインストールしてからicarus verilogをインストールします。

/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"

brew install icarus-verilog

gtkwave は Homebrew の標準パッケージが macOS 14 以降(特に 15)では互換性がなく、そのままでは正しく動きませんでした。解決方法として、以下の手順で回避できます。既にインストールしている gtkwave があれば削除する

brew uninstall gtkwave

brew untap randomplum/gtkwave

Apple Silicon の場合は Rosetta を利用して再インストールする

arch -x86_64 brew install --HEAD randomplum/gtkwave/gtkwave

Intel Mac の場合は arch -x86_64 は不要です。

brew install --HEAD randomplum/gtkwave/gtkwave

補足として、初回起動時に Gatekeeper にブロックされる場合は「システム設定 → プライバシーとセキュリティ」から「このアプリを開く」を選ぶか、ターミナルで xattr -d com.apple.quarantine “$(which gtkwave)” を実行すれば起動できます。

また、XQuartz が必要なので入っていなければ brew install --cask xquartz を先に実行してください。(公式サイトでアプリを直接にダウンロードすることも可能です。)

参考サイト:https://github.com/gtkwave/gtkwave/issues/250

RISC-VをVerilogで記述してシミュレーションするための設定

以下は、第7回の最後の部分のデモを手元で再現するための設定です。これは、やってみたいという意欲のある方のためのものです。今、wslの環境しか用意してないので、Macユーザの方は申し訳ないのですが、ご自分でなんとかしていただけると嬉しいです。要するにmake、ruby、python3を実行できればいいのです。

まずmakeができないとまずいので、これがない方は、以下でインストールします。

sudo apt install make

次にrubyをインストールします。ここで使っているrubyは古い版でも問題ないので、

sudo snap install ruby --classic

sudo snap refresh

で入ります。これでRISC-Vの簡単なアセンブラが動きます。このアセンブラは、旧慶應天野研の卒業生の斎藤君(社長)が作ったshapaをコアとしてpython3でラップしたものです。もちろんgccを使えばいいのですが、結構面倒なんでこの環境を使っています。ここまでできれば、例えばmultr.asm(aisemi.tarに入れておきます)をアセンブルする場合、

make multr

make

./test

でシミュレーションが走ります。これも第7回の授業資料中に使い方を書いておきます。

この記事を書いた人

ふんが