3803562 ランダム
 HOME | DIARY | PROFILE 【フォローする】 【ログイン】

CPUを作ろう ~計算機教材とマイコンと電子工作~

Icarus verilogについて

無償で使えるVerilogシミュレータはいくつかあります.私が試したもののうち操作が簡単で動作が軽かったIcarus verilogを説明を行います.
以下の手順でIcarus verilogをインストールしてください.
①Icarus Verilogのサイトにアクセス
http://bleyer.org/icarus/
②この中の最新版をダウンロードしてインストール.
http://bleyer.org/icarus/iverilog-v11-20190809-x64_setup.exe
途中で出てくるチェックは2つとも入れるます.
この時波形表示ツールのGTKWaveも同時にインストールされ,パスの設定も必要です.
C:\iverilog
にインストールされるように.

③windowsの検索からcmdと入力してコマンドプロンプトを表示.
④ コマンドプロンプトから
iverilog 
と入力すると正しくインストールされてパスが通っていれば※注以下のようなメッセージが表示される.ソースファイルを入れればコンパイルできる.
⑤次に,コマンドプロンプトから
gtkwave
と入力すると波形表示のウィンドウが開く.
これでツールのインストールは完了.
GKTWwaveのウィンドウは右上の×印で閉じておく.

※注: pathが通ってない時は,以下2つのpathを通す.
C:\iverilog\bin
C:\iverilog\gtkwave\bin
スタートメニューから W→「Windowsシステムツール」→「コントロールパネル」を選ぶ→ 「ユーザーアカウント」アイコンを開く
→左の列の一番下「環境変数の変更」を開く →ユーザー環境変数のPathを選び編集→ 新規を押してPathを入力してOK
(いろいろ方法はあるので「windows10 pathを通す」検索でしてみてください)

続いて,簡単なディジタル回路をテキストエディタで記述して,コンパイル,波形の表示までを行ってみる.

① 作業用フォルダを作成して移動する.
コマンドプロンプトから,
mkdir c:\iverilogwork
と入力.ここで iverilogwork は作業用のフォルダ名.
続いて以下の入力をして作業用フォルダに移動する.
cd c:\iverilogwork

② メモ帳などで右記の通り入力してテキストファイルを作成する.これは2入力(aとb)1出力(c)のAND回路である.ファイル名は
gand.v
としてCドライブ直下のiverilogworkのフォルダ内に保存する.
拡張子は.vでなければならない.拡張子を表示する設定にして後ろに.txtがつかないように確認すること.
(コマンドラインから直接ファイルを作成しても構いません)

ファイル名: gand.v
-----------ここから-----------
module gand(a,b,c);
input a,b;
output c;
assign c=a&b;
endmodule
-----------ここまで-----------

③次の通り入力してテキストファイルを作成する.ファイル名は
gand_tp.v
とする.同様に,iverilogworkのフォルダ内に保存する.

※補足説明
gand.vにかかれた回路をテストするための回路です.
AND回路を呼び出して,a,bにSTEPに定義された時間経過毎に0や1の値を与えて,時間,a,b,cの状態を出力するように記述されています.

ファイル名: gand_tp.v
-----------ここから-----------
`timescale 1ns/1ns

module gand_tp;
reg a,b;
wire c;
parameter STEP = 100;
gand gand(a,b,c);

initial begin
$dumpfile("gand_tp.vcd");
$dumpvars(0,gand_tp);
a=1'b0; b=1'b0;
#STEP a=1'b0; b=1'b1;
#STEP a=1'b1; b=1'b0;
#STEP a=1'b1; b=1'b1;
#STEP a=1'b0; b=1'b0;
#STEP $finish;
end
initial $monitor($stime, "a=%b b=%b c=%b", a,b,c);
endmodule
-----------ここまで-----------

④コマンドプロンプトから
iverilog -o gand_tp.o gand.v gand_tp.v
と入力してコンパイル.エラーが無ければコマンドプロンプトに戻る.エラーがあったらテキストファイルを修正する.

⑤ コマンドプロンプトから
vvp gand_tp.o
と入力するとシミュレーションを実行.結果がコマンドラインに出力されると同時に,拡張子.vcdのファイルに出力される.

※補足説明
gand_tp.vの中の$monitor(…)にかかれたフォーマットで結果が出力される.
$dumpfile,$dumpvars の記述で.vcdファイルが作られる.
波形のみ表示で良ければ,$dumpfile,$dumpvarsの記述だけで,$monitorの記述は省略してよい.
結果表示だけでよければ,$dumpfile,$dumpvarsの記述は不要.



⑥コマンドプロンプトから
gtkwave gand_tp.vcd
と入力するとGTKWaveが開く.左側のgand_tpの横の+を押すと下の欄に信号名が表示される.

⑦信号名を選んでAppendボタンを押す.ひとつづつ選んでもよいしShiftキーを押しながらまとめて選んでAppendしてもよい.

⑧虫眼鏡ボタン(-)を何度か押すと下図のように信号の変化が表示される.AとbのANDがcに出力されているのが確認できる.


© Rakuten Group, Inc.