ダウンロードするだけで、Emacs+Cygwin(+vim)が使えるすぐれもの
gnupackを導入しました。
http://gnupack.sourceforge.jp/docs/current/UsersGuide.html
フェイスのせってもしてあって、IMEも設定してくれているから、
何もしなくても格好よいEmacsで日本語がサクサク使えます。
ところで、Emacsというと、M+x shellでbashとかコマンドプロンプトが
Emacs上で使えて便利なんですが、
このgnupackはそのままではEmacs上でCygwinが使えません。
ついでに、CygwinでIcarusも使えるようにすると、
Verilogのお勉強が便利だな~と思ったのでやってみました(・ω・)/
まずはCygwinでIcarusを使えるようにしてみます。
当たり前ですが、初期状態で iverilog とか打ち込んでも、
そんなコマンドねーよと怒られます。
考えてみると、cdとかmkdirとかのコマンドも実際にはプログラムを呼び出している訳で、
C:\gnupack_basic-4.08a\app\cygwin\cygwin\bin
の中には、cd.exeとかwhich.exeとかが入ってます。
Icarusの方も、
C:\iverilog\binの中に、iverilog.exeとかgtkwave.exeが入ってる・・・
という事は、Cygwinのbinフォルダに、Icarusの実行ファイルを入れてしまえば使えるのでは・・・
と正しいのか良く分からない事が浮かんだので実行してみました。
まず
C:\iverilog\bin
の中身を
C:\gnupack_basic-4.08a\app\cygwin\cygwin\bin
に全部コピーします。
次に
C:\iverilog\lib
の中身を
C:\gnupack_basic-4.08a\app\cygwin\cygwin\libへコピーしました。
で再度立ち上げなおして、 iverilog と打ってみると、
ソースファイルよこせやと怒られました。
ソースを用意してVCDファイルをはかせてみましたが、
これで上手く動いているみたいです。
PATHを渡してあげるとか、スマートな方法が有りそうな気もしますが、
動いたので良しとします。
なんでもやって見るもんですね
CygwinでIcarusを動かせたので、
今度はEmacs上でCygwinを使うための設定です。
まず下のリンクから、cygwin_mount.elを落としてきます。
http://www.emacswiki.org/cgi-bin/wiki/cygwin-mount.el
落としたLispファイルは下のフォルダにおきました。
C:\gnupack_basic-4.08a\app\emacs\site-lisp
C:\gnupack_basic-4.08a\home\.emacs.d
のinit.elに下の行を追加します。
(setenv "PATH" (concat "C:/gnupack_basic-4.08a/app/cygwin/cygwin/bin/" (getenv "PATH")))
(setq exec-path (cons "C:/gnupack_basic-4.08a/app/cygwin/cygwin/bin/" exec-path))
(require 'cygwin-mount)
(cygwin-mount-activate)
”C:/gnupack_basic-4.08a/app/cygwin/cygwin/bin/”の部分はインストールした場所によって変わってきます。
これでEmacsを立ち上げなおして、
M-x shell
と打つと、Emacs上でCygwinが使えるようになりました。
これで、下みたいにEmacsの中だけでverilog書いてコンパイルして、シミュレーション結果を出力した後、
GTKwaveにVCDファイルを渡して波形表示させることが出来るようになりました。



