アダルト・ヴァイオリン May the force be with you..

2005年7月24日

VerilogからCへのコンバータ(Verilator)

Filed under: 組込みシステム — @ 11:26 PM


しばらくホームページを見ないうちに開発者が二人も増えて、
強烈にアクティブに開発が進んでいる。
もともと強力なツールなのであるが、バグフィックスのペースが上がり、
VCDへのダンプ機能やらシステム関数やらサポートされるものが増えて便利になってきた。

CygwinへのVerilatorインストール備忘録

VerilogPerl
SystemPerl

のパッケージを先にインストールすること。

このとき、LIB環境変数にVisualC++のものが設定されていると失敗する。
export LIB=
で環境変数をクリアしておく。

次に、私の環境ではVerilogPerlがlibstdc++.aを見つけられなかった。
ln -s /lib/gcc/i686-pc-cygwin/libstdc++.a /lib
として、シンボリックリンクを張る。

Verilatorのパッケージを展開して、
./configure –prefix=/usr/local/verilator
make;make test
で(SystemCは入れていないので)SystemC以外のテストが通ればOK。

make install

でインストールするが、この時にコピー忘れが発生していて、このままでは
動作しないので、

mkdir /usr/local/verilator/include
install -c include/* /usr/local/verilator/include
install -c bin/verilator_* /usr/local/verilator/bin
install -c verilator_* /usr/local/verilator

として、手動でコピーする。
export VERILATOR_ROOT=/usr/local/verilator
とすることで、

verilator –cc test.v

がコンパイルできるようになる。

sfl2vlが変換したVerilogファイルはほぼ問題なく変換できるので、便利である。

次のファイルをtest.sflとして用意する。

module test {
input a;
output f;
f=^a;
}

これをsfl2vlで変換した test.vを用いて、次のテストスクリプトとともに
コンパイルする。

#include <verilated.cpp>
#include “Vtest.h”

Vtest *test;

int main() {
int i;
test = new Vtest;
for(i=0;i<10;i++) { test->a = i&1;
test->eval();
printf(“a=%x, f=%xn”, test->a, test->f);
}
}

すると、その結果は
$ ./test_main
a=0, f=1
a=1, f=0
a=0, f=1
a=1, f=0
a=0, f=1
a=1, f=0
a=0, f=1
a=1, f=0
a=0, f=1
a=1, f=0

のようになる。
Verilatorを用いているから当たり前のことだが、論理回路を自由にC言語でテストできるようになる。

verilatorのオプションに–traceをつけると、VCDファイルを作成できる。
これで、GTKWAVEの波形を表示可能である。

バイオリンのレッスン

Filed under: バイオリンレッスン — @ 6:08 PM

とりあえず、今日のレッスンで、「チャルダッシュ」は終了。
最後に、先生がピアノ伴奏を弾いてくれて、伴奏つきの演奏。

実は、先生はピアノは専門ではないから、あまりうまくなかったりする(笑)
でも、伴奏つきで弾くのは大変楽しいものだった。

調子に乗って、今までやった曲の中から伴奏が簡単そうな
タイスの瞑想曲、ボッチェリーニのメヌエットの2曲も伴奏つきで弾かせてもらった。

レッスン直前練習しかしない不良生徒だけれども、楽しみのために楽器をやっていることを
理解してくれている先生には感謝♪

次回からは、クライスラーの「愛の悲しみ」である。

LiveCygwinのダウンロード

Filed under: 組込みシステム — @ 1:07 AM

興味を持った方が試せるように、WEBにダウンロード用のアーカイブを置いた。
LiveCygwin.zipをダウンロードし、
中にあるISOファイルをCD作成ツールでCDROMに焼くとLiveCygwinCDROMの出来上がりである。

「usage.txt」には日本語で説明が、
「このCDROMの使い方」には英語で説明が書かれているのはご愛嬌(笑)

MLCADとLDRAW

Filed under: 組込みシステム — @ 1:04 AM

LEGOのブロックを用いたマシンを作るのに、MLCADという3次元CADを利用している。
LiveCygwinにMLCADを収録するにはどうしたらよいかと考えていたが、思うより簡単で
インストールしたディレクトリごとCDに焼いてしまうと、そのままCDROMから
実行できたのであった。

これでほぼETロボコンの開発環境は完璧といってもいいかもしれない。
(あとは、IRタワーのUSBドライバだけだ)

ついでに、ルネサスのM16のツールも同じようにCDから直接実行できないかと
考えていたが、こちらは、バイナリのディレクトリにログと構成ファイルを
書き込む仕様になっていてROM(もしくは読み込み専用)のフォルダからは
実行できないのであった。
うまく書き換え可能な部分を他に出せればいいのだが・・・

バイオリンの練習

Filed under: バイオリンレッスン — @ 12:57 AM

明日(というか、もう今日)の朝、バイオリンのレッスンがあるので、
久々に練習をした。といっても、こんな時間(0:57)である。あまり本格的な
練習はできていない。

今回は、しばらく続けてきたチャルダッシュを終わりにしようということに
なっていて、先生がピアノで伴奏をつけてくれることになっている。

しっかり練習をしておこうと、2週間前には思っていたのだが、
結局2週間ぶりにレッスン直前のバイオリン練習ということになってしまう。

継続は難しいが、レッスンがなければ何ヶ月でも触ることなく過ごしてしまいそうだから、
月に2回だけであっても、レッスンの時間は大切である(笑)

「もうちょっと練習したほうが楽しくなるのに」と某事務局長から言われたけれど、
「レッスンを受けているだけでも楽しいのだ」ということにしてある♪

Powered by WordPress