でばぐめ -IT技術メモ- -5ページ目

でばぐめ -IT技術メモ-

主にハードウェア/ソフトウェアのプログラミングに関するブログです。

VMWare上のUbuntu 8.04 と Windowsファイルをsambaを使用して共有する方法です。

まずはUbuntuにsambaをインストールします。


% sudo apt-get install samba

インストール完了後、Ubuntuを再起動します。
再起動後、groupsコマンドでsambashareが表示されることを確認します。

% groups

Ubuntsuの設定


場所メニューからホーム・フォルダを選択し、ファイルブラウザを起動します。
共有したいフォルダを選択し、右クリックして Sharing Options を選びます。



でばぐめ - IT技術メモ --ubuntsu_menu


ファイル・マネージャが開くので、
Share this folderとAllow other people to write in this folder にチェックを入れ、
Create Shareをクリックします。

workフォルダを共有する場合下のようになります。

でばぐめ - IT技術メモ --filemanager


次にsambaのパスワードを設定します。
*****はUbuntuのユーザ名です。

sudo smbpasswd -a *****
password for *****:
New SMB password:
Retype new SMB password:


Windowsの設定


エクスプローラを開きツールメニューから ネットワークドライブの割り当てを選びます。
フォルダ入力欄右の「参照」をクリックすると、Ubuntuで共有したフォルダが
表示されます。


でばぐめ - IT技術メモ --windows_gamen

Ubuntuで共有したフォルダを選択するとユーザ名とパスワードがきかれます。
Ubuntuのユーザ名とsambaで設定したパスワードを入力すると共有完了です。


参考サイト

下記サイトを参考にさせていただきました。
大変参考になりました。感謝です。


・SambaでWindowsとUbuntuのファイル共有@UbunTunerさん

・VMware PlayerでUbuntu Linux@NaoyukiTamuraさん


前回 Icarusで出力したvcdファイルをGtkwaveを使用して、波形表示します。


% gtkwave waves.vcd &

表示したいmoduleから信号を選択し、Appendを押すと波形が表示されます。



でばぐめ - IT技術メモ --gtkwave1


でばぐめ - IT技術メモ --gtkwave2

zip/gzipで圧縮したvcdも表示できるのはよいですね。



関連書籍

入門Verilog HDL記述―ハードウェア記述言語の速習&実践 (Design wave b.../小林 優
¥3,360
Amazon.co.jp

Verilog HDL記述を習得するには、この1冊で十分と思います。
半導体理工学研究センター(STARC)が策定した「設計スタイルガイド」に準拠して
いるので、一般的なスタイルも身につきます。



ディジタル数値演算回路の実用設計―四則演算、初等超越関数、浮動小数点演算の作りかた (Desi.../鈴木 昌治
¥3,570
Amazon.co.jp

内容は実用的で、すばらしい書籍です。
製品差異化の重要な要素となる高速化や小型化を図るため、さまざまな視点でのアプローチが
紹介されています。
論理合成ツールがかしこくなり、演算回路構成を意識せずとも、それなりの回路は作れますが、
回路構成を知っているのと知らないのとでは、面積や速度でかなり回路差がでます。
この値段でこの密度は、かなりお得です。



Icarus Verilogをインストールしたので、簡単な回路をかいて実行してみました。

外部からのイベントをカウントする回路(event_cnt.v)とテストベンチ(tbench.v)
を使用して実行してみます。


event_cnt.v

module event_cnt(clk, rstb, kick, count);

input        clk;   // クロック
input        rstb;  // リセット
input        kick;  // イベント
output [3:0] count; // カウント値

reg    [3:0] count;

always @(posedge clk or negedge rstb) begin
  if(!rstb) begin
    count <= 4'h0;
  end
  else if(kick) begin //イベントでカウントアップ
    count <= count + 1;
  end
end
endmodule

tbench.v

`timescale 1ns/1ns

module tb_event_cnt;
reg        clk;   // クロック
reg        rstb;  // 非同期リセット
reg        kick;  // イベント
wire [3:0] count; // カウント値

parameter CLK_CYC = 100;

event_cnt event_cnt (
  .clk   (clk),
  .rstb  (rstb),
  .kick  (kick),
  .count (count)
);

initial clk = 0;
always begin
  #(CLK_CYC/2) clk = ~clk;
end

initial begin
                 rstb <= 0;
                 kick <= 0;
  #150           rstb <= 1;
  repeat(3)
  @(posedge clk) ;
  @(posedge clk) kick <= 1;
  @(posedge clk) kick <= 0;
  @(posedge clk) ;
  @(posedge clk) ;
  @(posedge clk) kick <= 1;
  repeat(15)
  @(posedge clk) ;
  @(posedge clk) kick <= 0;
  repeat(3)
  @(posedge clk) ;
  $finish;
end

initial begin
  $monitor($time, " rstb=%b, kick=%b, count=%d",
           rstb,kick,count);
  $dumpfile("waves.vcd");
  $dumpvars(0,tb_event_cnt);
end
endmodule



Icarus Verilog実行

% iverilog -o event_cnt event_cnt.v tbench.v

コンパイルしてオブジェクトファイル(event_cnt)を作成します。

vvpコマンドで実行すると$monitorの結果が表示されます。

% vvp event_cnt VCD info: dumpfile waves.vcd opened for output. 0 rstb=0, kick=0, count= 0 150 rstb=1, kick=0, count= 0 450 rstb=1, kick=1, count= 0 550 rstb=1, kick=0, count= 1 850 rstb=1, kick=1, count= 1 950 rstb=1, kick=1, count= 2 1050 rstb=1, kick=1, count= 3 1150 rstb=1, kick=1, count= 4 1250 rstb=1, kick=1, count= 5 1350 rstb=1, kick=1, count= 6 1450 rstb=1, kick=1, count= 7 1550 rstb=1, kick=1, count= 8 1650 rstb=1, kick=1, count= 9 1750 rstb=1, kick=1, count=10 1850 rstb=1, kick=1, count=11 1950 rstb=1, kick=1, count=12 2050 rstb=1, kick=1, count=13 2150 rstb=1, kick=1, count=14 2250 rstb=1, kick=1, count=15 2350 rstb=1, kick=1, count= 0



関連書籍

入門Verilog HDL記述―ハードウェア記述言語の速習&実践 (Design wave b.../小林 優
¥3,360
Amazon.co.jp

Verilog HDL記述を習得するには、この1冊で十分と思います。
半導体理工学研究センター(STARC)が策定した「設計スタイルガイド」に準拠して
いるので、一般的なスタイルも身につきます。

ディジタル数値演算回路の実用設計―四則演算、初等超越関数、浮動小数点演算の作りかた (Desi.../鈴木 昌治
¥3,570
Amazon.co.jp
内容は実用的で、すばらしい書籍です。
製品差異化の重要な要素となる高速化や小型化を図るため、さまざまな視点でのアプローチが
紹介されています。
論理合成ツールがかしこくなり、演算回路構成を意識せずとも、それなりの回路は作れますが、
回路構成を知っているのと知らないのとでは、面積や速度でかなり回路差がでます。
この値段でこの密度は、かなりお得です。