GPLCverインストール

  • 2007/06/30(土) 19:09:33

まず、コンパイルするときに必要なgccをインストールします。

$sudo aptitude install gcc

次に、ユーザディレクトリの下にEDAフォルダを作成し、この下にGplCverフォルダを作成します。

/home /takuo /EDA /GplCver
/Arc

サイトよりバイナリファイル(gplcver-2.12a.linux.bin.tar.bz2)をダウンロードします。
ダウンロードする際ダウンロード先フォルダをArcフォルダにするために、ウェブブラウザIceweaselの編集メニューより設定を選択してその設定を行います。

Arcフォルダにダウンロードされているのが確認できたら、EDAフォルダの下に作成したGplCverフォルダに移動し

$tar xvfj ../../Arc/gplcver-2.12a.linux.bin.tar.bz2

gplcver-2.12a.linux.binフォルダが作成されるので、このフォルダに移動し、更にこの中にあるsrcフォルダに移動して、

$make -f makefile.lnx all

gplcver-2.12a.linux.binフォルダ作成されたbinフォルダにあるcverにPASSを通します。
このbinフォルダに移動して、

$cp cver /user/local/bin/

では、動作確認をします。
ユーザディレクトリの下にCverディレクトリを作り、この下にUpCntディレクトリを作ります。
Icarus Verilogの動作確認に使用したupcnt.vとupcnt_test.vをこのUpCntディレクトリにおきます。

/home /takuo /EDA
/Cver /UpCnt
   upcnt.v
   upcnt_test.v

UpCntディレクトリに移動して

$cver upcnt.v upcnt_test.v

vcdファイル upcnt.vcd ができているのが確認できたら、

$gtkwave upcnt.vcd

GTKWaveが開きます。
ツールメニューのSeachをクリックしプルダウンメニューからSignal Search Treeを選択。
観測したい信号を選択してAppendをクリックすると波形が表示されます。


Icarus Verilog インストール

  • 2007/06/28(木) 20:16:44

Icarus Verilogはパッケージ化されているので、aptitudeコマンドを使って、

$sudo aptitude install verilog

でインストールできます。

次に、波形表示ツールGTKWaveをインストールします。
これもパッケージ化されているので

$sudo aptitude install gtkwave

では、動作確認をします。
テストに使うモジュールは、アップカウンタ(upcnt.v)です。
カウンタのビット幅はパラメータで設定できます。今回はパラメータを4にして4ビットカウンタとします。
テストベンチ(upcnt_test)では、カウンタをリセットしてからキャリーが出るまでカウントするようにしています。
カウント数は、task文を使って、カウンタ出力がAll1になるまでループするようにしています。
テストベンチのinitial begin の下にある

$dumpfile("upcnt.vcd");
$dumpvars(0,upcnt_test);


では、vcdファイル名(upcnt.vcd)と観測する信号のモジュール名(upcnt_test)を指定しています。

upcnt.v
/*-----------------------------------------------
up counter with enable & reset
------------------------------------------------*/

module upcnt ( en,
clk,
reset,
carry,
dout);
parameter DW = 8;
input en,clk,reset;
output [(DW-1):0] dout;
output carry;

reg [(DW-1):0] dout;

always @(posedge clk) begin
if(reset) begin
dout <= {DW{1'b0}};
end else if(en) begin
dout <= dout + 1;
end else begin
dout <= dout;
end
end

assign carry = (dout == {DW{1'b1}}) ? 1 : 0;

endmodule

upcnt_test.v(テストベンチ)
/*------------------------------------------------
up counter test bench
-------------------------------------------------*/

`timescale 1ns/1ns

module upcnt_test;

parameter DW = 4;

reg en,clk,reset;

wire [(DW-1):0] dout;
wire carry;

upcnt #(DW) upcnt(
.en (en),
.clk (clk),
.reset (reset),
.carry (carry),
.dout (dout)
);
/*simulation start*/

parameter step = 30;
integer count;

always #(step/2) clk = ~clk;

initial begin
$dumpfile("upcnt.vcd");
$dumpvars(0,upcnt_test);

en = 0;
clk = 0;
reset = 0;
#step reset = 1;
#step reset = 0;
#step roop;
#step en = 0;
$finish;
end

task roop;
for (count = 0; count <= {DW{1'b1}}; count = count + 1) begin
#step en = 1;
end
endtask

endmodule

ユーザディレクトリの下にIcarusディレクトリを作り、この下にUpCntディレクトリを作ります。
上のupcnt.vとupcnt_test.vの二つのファイルをこのUpCntディレクトリにおきます。

/home /takuo /EDA
/Icarus /UpCnt
   upcnt.v
   upcnt_test.v

UpCntディレクトリに移動して

$iverilog -o upcnt -s upcnt_test upcnt.v upcnt_test.v

-o upcnt で、出力ファイルupcntを指定します。
この指定を行わなかった場合、出力ファイルはaoutとなります。
-s upcnt_test でテストベンチのモジュール名upcnt_test を指定します。
この指定は行わなくても動作するようです。
出力ファイル upcnt ができているのが確認できたら、

$vvp upcnt

で、vcdファイルが作成されます。
vcdファイル upcnt.vcd ができているのが確認できたら、

$gtkwave upcnt.vcd

GTKWaveが開きます。
ツールメニューのSeachをクリックしプルダウンメニューからSignal Search Treeを選択。
観測したい信号を選択してAppendをクリックすると波形が表示されます。

インストールするツール

  • 2007/06/28(木) 16:39:21

インストールするツールは、主にVerilogとSystemC関連のものです。

Verilog シミュレータ
Icarus Verilog(0.8.4)
GPL Cver(2.12a)
IVI(1.0.2)

SystemC シミュレータ
SystemC(2.2)

Veriliog to SystemCトランスレータ
Verilator(3.651)

SystemC to Verilogトランスレータ
sc2v(0.5 )
sister(0.00.01a)

Xilinxデザインツール
ISE(WebPack8.2i.3i)

波形表示ツール
GTKWave(1.3.81)

ディレクトリ構成

/home /takuo /EDA /GplCver
/SystemC /systemc-2.2.0
/verilator-3.651
/Verilog-Perl-3.001
/SystemPerl-1.280
/Sister
/Sc2V
/Xilinx
/Arc
/Work

Icarus Verilog 及びGTKWaveは、パッケージ化されているので、aptitude コマンドでインストールします。
IVIは、eclipseのプラグインとして開発されているので、これを追加する手順でインストールします。

/Arcは、各ツールのアーカイブファイルをダウンロードするフォルダです。
/Workは、WindowsXP(Pro)との、共有フォルダとして使います。


下準備

  • 2007/06/20(水) 13:39:22

サラリーマン時代にASICやFPGAなどの設計を行う会社を設立。組み込み系をターゲットにして、Verilog,SystemCあたりで仕事ができるようになればいいかなと思い開業準備に入りました。

組み込みといえばリナックスは欠かせません。経験といえば会社を辞める直前まで、UNIX環境でASICの設計をやっていた程度。
そこで、まず自社サーバーをVine Linuxで作ってみました。レンタルサーバーを使っているのでまだお飾り程度ですが、メールもWeb公開もできます。

次に、リナックスで使える無償のVerilogやSystemCシミュレータがあり、SystemCの勉強もかねて使ってみることにしました。

実際に研究室などで使っている学生さんや、実務でも高価なシミュレータのライセンスがいっぱいのときに使っている方など多くいると思います。

しかし、インストールが面倒だったり、なにか問題があっても自己責任でやらないとけないというデメリットもあります。
そこで、実際に使っている方たちの情報交換などできればよいかなと思い、備忘録も兼て記録していくことにしました。

使用するOSはDebian etch,PCはPentiumIII800MhzのThinkipadです(写真1)。
一世代前のCPUですが、とりあえずお試しということで。


写真1 ThinkPad A22m
CPU : PentiumIII 800Mhz
MEM : 512MB
HD  : 40GB

実は最初Debian sarge でやっていたのですが、ある日(etch がリリースされたころ)アップグレードを行うと、X Windowが立ち上がらなくなり、いろいろいじっているうちのに収集不能に、
そこで etch にインストールし直して再挑戦したものです。

下準備

・sudo 設定

EDAインストール作業には、しばしばルート権限が必要なコマンドがあるので、一般ユーザのままでそのコマンドを実行できる sudo を設定します。まず、

$su

でルートに入り、

#visudo

を実行すると、/etc ディレクトリにある sudoers が開きます。
この20行目あたりにある

root ALL=(ALL) ALL

の下に、次の行を追加。

takuo ALL=(ALL) ALL

takuo はユーザ名です。

・テキストエディタ vi インストール

テキストエディタは人それぞれ好みがあるようですが、私は vi エディタを使うのでこれをインストールします。
インストールするときに使うaptitude コマンドはルート権限が必要なので、さっそく先ほど設定した sudo を使ってみます。

$sudo aptitude install vim

パスワードを聞いてくるので、ルートではなくユーザパスワードを入力。
インストールが開始されます。

・ファイルサーバ(samba)の導入

EDAツルの動作確認をするためにVerilogファイルを送ったり、EDAツールのスクリーンショットを取ってきたりするために、ファイルサーバを導入します。

$sudo aptitude install samba

ワークグループ名を聞いてくるので、Windows XP(Pro)でネットワークの設定を行ったときに設定したワークグループ名を入力→Enter


DHCPらWINS設定を使うようsmb.conf を変更するか聞いてくるので、<いいえ> を選択して→Enter

samba のインストールが終わったら、/etc/samba/smb.conf を編集。ユーザ権限では書き換えができないので sudo を使って、

$sudo vi /etc/samba/smb.conf

home ディレクトリを共有にし書き込み可能とするたに。220行目あたりにある writable を yes に変更。

[homes]
(略)
writable = yes ←yesに書換え

変更が終わったら、smb.confを再書き込み。

$sudo /etc/init.d/samba reload

次に、samba にアクセスするユーザを作成します。

$sudo smbpasswd -a takuo

takuo は、ユーザ名です。SMBパスワードを聞いてくるのでこれを入力して終了。

Windows XP(Pro)に戻ってマイネットワークを開き、”ワークグループのコンピュータを表示する”をクリック。
Debianをインストールしたときに指定したホスト名のserver が表示されるので、これをダブルクリック。
ユーザ名とパスワードを聞いてくるので、先ほど指定したユーザ名とSMBパスワードを入力。

DebianをインストールしたPCのホームディレクトリが開きます。