GHDLとgtkwaveを用いたVHDL開発環境をM1 Macで構築してみた
この記事では、VHDL開発で重宝するらしい
- 波形描画ツール gtkwave
- VHDLコンパイラ GHDL
をM1 Macにインストールしてかんたんな波形を観察するところまでをやっていこうと思います。
(とは言ってもbrewでインストールしてコンパイルするだけですが...)
参考記事
以下の記事を参考にしました。
記事ではファイルをダウンロードしてきていましたが、今回はHomebrew
を使ってインストールしていきます。
brewコマンドが使えるか確認
ターミナルを開き
brew --version
と打ち込んで
Homebrew 3.2.17
とバージョンが表示されていればOKです。(ご利用のMacによってバージョンは異なります。)
もしNotFound
的なメッセージが出たら以下の記事などを参考にHomebrewをインストールし、再度brew --version
でインストールされているか確認してみてください。
GHDLとgtkwaveのインストール
ではパッケージのインストールです。
ターミナルに
brew install ghdl
と打ち込んでghdl was successfully installed!
と表示されればOKです。
gtkwaveについても同様に
brew install gtkwave
とコマンドを打ち込み、インストールしてください。
GHDLの動作確認チェック
今回はシンプルに「矩形波を作る」処理を実装してみます。
まずはお好みのエディタ(VScodeでもAtomでもさくらエディタでもなんでもOK)sample.vhdl
というファイルを作成して以下のコードを記述します。
library IEEE;
use IEEE.std_logic_1164.all;
entity sample is end sample;
architecture rtl of sample is signal a :std_logic;
begin
process begin
a<='1';
wait for 3 ns;
a<='0';
wait for 3 ns;
a<='1';
wait for 3 ns;
a<='0';
wait for 3 ns;
wait;
end process;
end rtl;
記述が終わったらファイルを保存します。
保存が完了したら、実際に先ほどインストールしたghdlコマンドを実行してみます。
ターミナルでsample.vhdl
の階層まで移動し、
ghdl -a --ieee=synopsys sample.vhdl
ghdl -r --ieee=synopsys sample --vcd=sample.vcd
の4つのコマンドを実行してみます。
各コマンドの意味を理解しているわけではないのですが、参考記事によると
基本的なghdlのコンパイル方法を整理すると,
- a は,ファイル名を指定してコンパイルを実行する.
- e は,テストベンチのエンティティである adder_tb を指定する.
- r も同様にテストベンチのエンティティを指定する.オプションで --vcd とすると,>gtkwave でみられる波形データを出力してくる.
となる.
のようなオプションがあるようです。
gtkwaveで波形を見てみる
finderでsample.vhdl
を作成した場所を見てみると自分で作成したファイル以外にも以下のように様々なファイルが出来上がっていると思います。
この中からファイル名がsample.vcd
をダブルクリックするとgtkwaveが起動します。
gtkwaveではおそらく下のような画面になると思うので、
- 画面左側の「sample」(作成したテストベンチ)を右クリック
Recurse import
-
insert
と進んでいくと、右側の黒い画面に波形っぽいものが出てくると思います。
作成した波形がフィットしていない場合には画面上部の虫眼鏡のボタンをクリックしてちょうどいい大きさまで拡大or縮小します。
以下のような「Zoom fit」という虫眼鏡マークのボタンがあるので、これを使うと便利そうです。(いい感じの拡大or縮小をgtkwave側が行ってくれます)
すると
こんな感じにsample.vhdlで作成した波形(矩形波)が表示できました!
(ありがたいことにM1チップゆえのエラーみたいなのも出ませんでした)
今回は矩形波を作るだけというシンプルな感じでしたが、ここを書き換えてあげることで様々な実装ができそうです。
VHDLに関してはまだ何も分かっていないので、少しずつ試しながら勉強していきます!
最後までお読みいただきありがとうございました!
Discussion