トップ «前の日記(2007-10-10 (Wed)) 最新 次の日記(2007-10-19 (Fri))» 編集

uDiary

海野秀之(うんのひでゆき)の外部記憶

Twitter (twilog) / RSS / アンテナ / ぶくま

2006|07|08|09|10|11|12|
2007|01|02|03|04|05|06|07|08|09|10|11|12|
2008|01|02|03|04|05|06|07|08|09|10|11|12|
2009|01|02|03|04|05|06|08|
2010|01|02|03|05|06|07|10|11|
2011|03|08|
2012|02|04|07|08|10|
2013|01|02|03|05|06|08|11|12|
2014|01|02|05|06|07|08|09|12|
2015|01|02|03|04|

2007-10-18 (Thu)

[Verilog] フリーの Verilog 処理系をさわってみる

なんとなくですが、フリーの Verilog 処理系を物色中。 なんか、いろいろ癖とか、ノウハウとかありそうなので、ここにメモしていこう。

それぞれどんなものなのかの調査もそこそこに、ともかくインストールしてさわってみることにする。

Icarus の方は verilog-0.8.5.tar.gz をとってきて、

% gtar xzf verilog-0.8.5.tar.gz
% cd verilog-0.8.5
% ./configure
% gmake
% gmake install

でいけた。

Cver の方は gplcver-2.12a.src.tar.bz2 をもってきたら、

% gtar xjf gplcver-2.12a.src.tar.bz2
% cd gplcver-2.12a.src/src
% gmake -f makefile.amd64

って感じ。適切な makefile.hoge を自分でえらぶ。 できあがった bin/cver は勝手に自分で適当な(パスの通った)とこにおいてつかえ、と。

じゃ、動かしてみましょう。

次のような verilog ソースファイルを作ります。名前は hello.v とします。 この例は Getting Started with Icarus Verilog から。

module main;
   initial
     begin
        $display("Hello World!");
        $finish;
     end
endmodule // main

Icarus Verilog では、まず iverilog でコンパイルし、できたやつを vvp で実行します:

% iverilog -o hello.vvp hello.v
% vvp hello.vvp
Hello World!

Cver では、こう:

% cver hello.v
GPLCVER_2.12a of 05/16/07 (Linux-elf).
Copyright (c) 1991-2007 Pragmatic C Software Corp.
  All Rights reserved.  Licensed under the GNU General Public License (GPL).
  See the 'COPYING' file for details.  NO WARRANTY provided.
Today is Thu Oct 18 09:21:29 2007.
Compiling source file "hello.v"
Highest level modules:
main

Hello World!
Halted at location **hello.v(5) time 0 from call to $finish.

最初の単純な例では、両者とも何の問題も無いようです。 しかし、Cver は饒舌ですな。「今日は 10 月 18 日もくよーび、9時……」うるせーよ。

まだ両処理系の能力とか知らないんですが、Verilog の言語仕様を満たし、かつ、 どちらの処理系でも実行可能な書き方をしておけば、可搬性の上で問題なしといえそうなので、 この線を模索してみます。

業務で用いるような商用の処理系の場合は、言語仕様さえ守っておけば まず大丈夫なのですが、やはりフリーの処理系では若干非準拠なところがある……のかも(未確認)。

手元にあるリソースのコピーを置いておきます。Icarus, GPL Cver ともに再頒布可能なものなので、 コピーをおいておくのは問題ないでしょう(そんなことするのは、リソースの無駄っちゅう話はある)。

最後の Verilog ドラフトは、どこから拾ってきたか忘れちゃった。 最終版は有料なんですが、ドラフトだから……いいのか?

そろそろ観念して正式版を購入した方がいいのかしら。 (とかいいだすと、C の仕様も欲しいとか……収集癖のようなものが。)

おまけ

いま、「俺言語」処理系をつくるべく(つくれるようになるべく)、 TigerBook のお勉強中なのですが、 ふつーの言語じゃなくて Verilog の処理系とかをターゲットにすると難しくて面白かろーなと思う。

ま、いまの僕の能力からすると高望みすぎるので、まずは Scheme 処理系がつくりたいんだけど。 Ruby は parser でしねそうなのでいやだ。いまは、そこらへん (scanner, parser) に興味はない。

amsfonts をインストール

Blackboard Bold を使いたくなったので、amsfonts をインストールした。 持ってきてコピーするだけ。

amsfonts-all-but-pk-files.zipどこから ともなく持ってきて、展開。

 sudo cp -r source /usr/local/teTeX/share/texmf/
 sudo cp -r fonts/* /usr/local/teTeX/share/texmf/fonts
 sudo cp -r tex/* /usr/local/teTeX/share/texmf/tex/

って感じ。

確率論のおべんきょノートを作ろうとすると、eufrak パッケージが欲しくなる予感。…って、ああ、amsfonts のなかに eufrak も入っているのか。


2006|07|08|09|10|11|12|
2007|01|02|03|04|05|06|07|08|09|10|11|12|
2008|01|02|03|04|05|06|07|08|09|10|11|12|
2009|01|02|03|04|05|06|08|
2010|01|02|03|05|06|07|10|11|
2011|03|08|
2012|02|04|07|08|10|
2013|01|02|03|05|06|08|11|12|
2014|01|02|05|06|07|08|09|12|
2015|01|02|03|04|
Categories 3imp | Card | Cutter | Dalvik | Euler | Football | GAE/J | Hand | Haskell | Re:View | Ruby | Scheme | TQD | Tiger | TigerBook読 | UikiTeXi | Verilog | Violin | Web | parconc | tDiary | お勉強 | エントロピー | ツン読 | | 将棋 | 政治について | | 模写してみよう | 確率論 | 設定など | 雑文 | 音声