FC2カウンター FPGAの部屋 2008年11月
fc2ブログ

FPGAやCPLDの話題やFPGA用のツールの話題などです。 マニアックです。 日記も書きます。

FPGAの部屋

FPGAの部屋の有用と思われるコンテンツのまとめサイトを作りました。Xilinx ISEの初心者の方には、FPGAリテラシーおよびチュートリアルのページをお勧めいたします。

家具作り教室で長いす完成

前回は家具作り教室でテーブルを作ったが、昨日は1日中、家具作り教室で長いすを作った。本当は家具作り教室では、1人1作品なのだが、先生のご厚意によりもう1つ作品を作ることが出来た。
最初に板をもらって、サンドペーパーがけから、これが結構重労働、今日は筋肉痛だ。
まずは、テーブルと同様に足から組み立て。ここで、足の角材が曲がった状態で木ねじ止めしてしまった。もう一度はずしてから付け直し。材木を当てて平行を見ながら木ねじ止めしないと斜めの状態でとめてしまうので注意。
午後にはだいぶ出来てきた。天板をつけて完成、、、と思ったら、裏から木ねじでとめているのだが、その座繰りが深すぎてねじの先が天板から出てしまっていた。あ~大失敗。木ねじをとろうとしたら、インパクトドライバで閉めているため木ねじが多数、ねじ切れてしまった。
急遽、バールで板をはがす羽目に。。。
結局、先生にやってもらうことに。。。私がやるときは皿木ねじのための座繰りを入れると、入れすぎてしまうみたいです。座繰りを入れないほうが良いようだ。
一応時間内に完成。
long_chair_081130.jpg

インパクトドライバは横から木ねじを締めるのが簡単だけど、気をつけないと木ねじがインパクトの力で途中で切れてしまう。注意して締めすぎないようにしないといけない。
座繰り穴と先導穴を同時に開けられるドリル刃は使うのが難しいというか、使ったことがなかったので、やりすぎてしまった。ほんの少し、座繰り穴を開ければ良い。もしくは普通のドリルで先導穴だけを開けたほうが良い。
今日は昨日できなかったダボ打ちと磨きをやった。やはり良い木なので、サンドペーパーで磨けば磨くほど滑らかでいい感じに仕上がる。なかなか良い。サンドペーパーがけにはまりそう。
来週で家具作り教室は終了だが、テーブルを塗装しようとして、キシラデコールの白木用を買ってきた。長いすは家の中で使用するので、塗装するかどうか迷っている。塗装するとしたらオイルフィニッシュでやると思う。
  1. 2008年11月30日 17:08 |
  2. 日記
  3. | トラックバック:0
  4. | コメント:0

EDK10.1をインストール。そして、起動。。。せず。。。

EDK10.1をいじってみようと思い、60日間使える評価版をインストールしてみた。
まずは、EDK10.1をXilinxのサイトダウンロードサイトからダウンロードした。
edk_install_5_081128.png

そうするとサインインの画面が開くのでユーザーIDとパスワードを入れる。アカウントを持っていない人はアカウント作成から登録する。
edk_install_6_081128.png

いろいろ表示されるが、間は飛ばす。うまくいくとISE Design Suite をダウンロードするページに行く。
edk_install_4_081128.png

Web install ではなくて、ファイルを取っておくためにEDK 10.1 Eval のダウンロードを選んだ。そこをクリックすると、ウインドウが開いてダウンロードを始める。(1.12GB の容量があるのでインターネット回線が細いとつらいですね。うちはADSLですが、gooの速度計測で実効スピードが25MB/s 位出ているので、割と早いです。)
edk_SFD.tar がダウンロードできるので、それを展開する。edk フォルダが出来るので、その中のsetup.exe を実行するとインストールが始まった。
いろいろな設定値をデフォルトで設定のまま、OKボタンを押していくとインストールが始まった。(ちょっと手抜き気味です。この辺はわかりやすいですね)
edk_install_1_081128.png

次にWeb Update だ。これもだいぶ量がある。(ISEの方もパッチされたが。。。)
edk_install_2_081128.png

さてこれでインストール終了。
edk_install_3_081128.png

スタート -> Xilinx ISE Design Suite 10.1 -> EDK -> Xilinx Platform Studio を選択してXilinx Platform Studio を起動させた。
edk_install_15_081128.png

そうしたらコマンド画面が一瞬開いてすぐに閉じてしまった。その後いくらまってもXPS (Xilinx Platform Studio) が起動しない。なんだろうと思って、スタートメニューのXilinx Platform Studio のプロパティを見てみると、"H:\HDL\Xilinx\10.1\EDK\bin\nt\xps.exe" が実体のようだった。そこで、コマンド プロンプトからxps.exe を実行してみることにした。結果は下のようになった。
edk_install_7_081128.png
そうすると、何かメッセージが出てきた。読んでみると、あらかじめインストール済みのCygwin関連でだめなようだ。そのトラブルシュートの仕方も載っていた。トラブルシュートを以下に示す。

1.レジストリエディタでCygwinのmount v2 というレジストリを消去する。
2.EDKのbash をインストール済みのCygwinにコピーする。
3.XILINX_EDK_DISABLE_CYGWIN_CHECK=1 という環境変数をセットする。


これを順にやっていくことにした。
まずは1.をやってみるためにregedit を起動した。ファイル名を指定して実行でregedit と入力してregedit を起動する。
edk_install_8_081128.png

レジストリエディタでCygwinのmount v2 というレジストリを消去する。
edk_install_9_081128.png

削除できました。
edk_install_10_081128.png

次に、元からあったCygwinのcygwin/bin/bash.exe をbash_back.exe に改名して、EDKインストールフォルダのcygwin/bin/bash.exe を元からあったCygwinのcygwin/binにコピー。
edk_install_11_081128.png

システムのプロパティを開いて、詳細設定タブの環境変数ダイアログを開き、新規ボタンをクリックして新しいシステム変数をセットする。
edk_install_12_081128.png

XILINX_EDK_DISABLE_CYGWIN_CHECK=1 という環境変数をセットする。
edk_install_13_081128.png

これで、もう一度、スタート -> Xilinx ISE Design Suite 10.1 -> EDK -> Xilinx Platform Studio を選択してXilinx Platform Studio を起動させたところ、無事に起動しました。
edk_install_14_081128.png

起動してよかった。。。Cygwinをインストールしている方はご注意ください。
  1. 2008年11月30日 08:47 |
  2. EDK
  3. | トラックバック:0
  4. | コメント:2

DDR2 SDRAMコントローラにODT機能を追加

ET2008のDDR SDRAMのセミナに行って、ODT(On-Die Termination) はWrite時にだけONすると良いと言うことを聞いてきた。それも、FPGA側にDCI (Digitally Controlled Impedance) を使用するとベストだそうだ。(しかし、DCIを使用すると電力を消費しFPGAが熱くなる)ここでFPGAとDDR2 SDRAM間の配線にはダンピング抵抗のみ実装を想定しているそうだ。
SUZAKU-Vの配線がどうなっているのかいまいちわからないのだが、ODTをWriteのときにだけONしてみることにした。ifdefを使って実装して、いらないときにはすぐにはずせるようにした。
まずはODTのタイミングは下のようになる。Micron社のDDR2 SDRAM MT47H64M4 のデータシート(256MbDDR2_3.fm Rev.J 11/05 EN) の76ページの図を転載させていただきます。
ddr2_odt_2_081127.png

これによるとODT turn-on delay は2tckなので、WriteのDQやDQSが出力される2クロック前にODTを1にする必要がある。次にODT turn-off delay は2.5tckなのでDQやDQSが出力されなくなる2.5クロック前にODTを0にする必要がある。ということでODTを制御するステートマシンを組んでみた。Verilogコードを下に示す。

    // DDR2_ODT
`ifdef DDR2_ODT_ENABLE
    always @(posedge clkx) begin
        if (reset)
            cs_odt <= IDLE_ODT;
        else
            cs_odt <= ns_odt;
    end
    
    always @ * begin
        case (cs_odt)
            IDLE_ODT : begin
                odt_node <= 1'b0;
                if (write_timing)
                    ns_odt <= WRITE_ACTIVE;
                else
                    ns_odt <= IDLE_ODT;
            end
            WRITE_ACTIVE : begin
                odt_node <= 1'b1;
                ns_odt <= WRITE_TEST; // write_timingがまだ1のままかをテスト
            end
            WRITE_TEST : begin
                odt_node <= 1'b1;
                if (write_timing)
                    ns_odt <= WRITE_ACTIVE;
                else
                    ns_odt <= WRITE_HOLDOFF1;
            end
            WRITE_HOLDOFF1: begin
                odt_node <= 1'b1;
                ns_odt <= IDLE_ODT;
            end
        endcase
    end
    
    always @(posedge clkx) begin
        if (reset)
            odt_node_1d <= 1'b0;
        else
            odt_node_1d <= odt_node;
    end
    assign ddr2_odt = odt_node_1d;
`else
    assign ddr2_odt = 1'b0;
`endif


そのシミュレーション結果を下に示す。
ddr2_odt_081127.png

黒いカーソルのところでDDR2 SDRAMはODTが1だと認識して、緑のM1カーソルのところで終端抵抗をONにする。次に赤のカーソルのところでDDR2 SDRAMはODTが1だと認識して、緑のM2カーソルのところで終端抵抗をOFFにする。
Writeでスイングするddr2_dq, ddr2_dqs, ddr2_dqs_n, ddr2_dm がその範囲に入っていることが確認できると思う。
これでODTはWriteのときのみONとなったと思う。
次にDCIだがこれはFPGAのDCIのインピーダンスを決定する抵抗を実装する端子VRPとVRNに抵抗が実装されていないと使えない。これだけでもアットマークテクノに聞いてみないと使えない。。。ODTにしても、終端抵抗が実装されていると2重に終端抵抗をつけてしまうことになるので、ODTはOFFとする必要があるが、回路図を教えてもらえないのでやってみようと思っている。
  1. 2008年11月28日 05:50 |
  2. DDR SDRAMコントローラ
  3. | トラックバック:0
  4. | コメント:0

Interface2009年1月号

Interfaceは書店で定期購読している。今月のInterface2009年1月号は、”現場で役立つディジタル処理を学ぶ”という特集だ。その中で”ディジタル信号処理の初心者が直面する10の壁”というのが、マンガでディジタル信号処理を説明していて、とても読みやすかった。今までのディジタル信号処理の特集は読みたいのだが気力が出なくて読まないというのが多かったが、取っ掛かり安く詠むことが出来た。ディジタルフィルタの係数の件など楽しく勉強することが出来た。
オーバーサンプリングとスペクトル分布など懐かしく読んだ。もう約30年前、大学の先生にフーリエ変換の講義をしたのが懐かしく思い起こされる。私が本当にフーリエ変換について講義したのではなく、私がどのくらいわかっているかを先生が確かめるために講義させたのだった。当時は必死に勉強して焦りながら講義したな~。今となっては懐かしい。先生はこの前、亡くなった。
その流れで、その後の”ディジタル信号処理の気持ちがわかる! 信号数学の初歩の初歩”も楽しく読むことが出来た。Z変換も懐かしい。
ディジタルフィルタもやりたくなってきた。音声処理などもいいかも?”GUI操作で自由自在に特性を設定し音声をリアルタイムに処理 FPGA評価キットを使ったグラフィック・イコライザの設計製作”もAlteraだけどやってみたいな。。。

でも、とりあえず、ET2008でセミナを聞いてきたDDR2 SDRAMコントローラを修正して、Write時のみODTが入るようにしてみようと思って修正中だ。後はDCIを使うようにしないと。。。
その後は仕事で使うかもしれないので、EDKをやってみようと思っている。

追加:
”徹底解説 作ればわかるPCI Express(新連載,第1回)”も面白かった。なひたふさんのボードを購入できると良い?
そういえば、Interface編集長のMさんの編集後記に”いつもと違うスタイルでディジタル信号処理特集を企画してみました。いかがでしょうか。”と書いてあったが、とてもよかったと思う。こういうスタイルでどんどんいろいろな企画をしてほしい。それから(M)のどたばた編集日記を再開してほしい。今もたまに読んでいる。
  1. 2008年11月26日 20:36 |
  2. その他のFPGAの話題
  3. | トラックバック:0
  4. | コメント:2

FPGAの部屋のまとめサイトの更新2

FPGAの部屋のまとめサイトを更新しました。
SVN,TRAC、VMWare、”Spartan3E Starter Kit でマイコンを作る”カテゴリを追加しました。ほかのカテゴリも更新しました。
  1. 2008年11月24日 18:23 |
  2. その他のFPGAの話題
  3. | トラックバック:0
  4. | コメント:0

茨城県小・中学校美術展覧会

昨日は小4の娘の絵が展示されているということで、水戸まで常磐高速を飛ばして、茨城県立県民文化センターで開催された茨城県小・中学校美術展覧会を見に行った。
県民文化センターに着くと駐車場は満車、臨時駐車場に車を置いて、県民文化センターまで歩いていった。途中、千波湖が見えて景色が良かった。
mito_1_081124.jpg

県民文化センターでは、県全体から絵や習字が展示されていた。親ばかかもしれないが、娘のも思いがけなく、うまく書けていた。葉に隠れた手の長さがおかしいが、その他はいい感じ。絵が戻ってきたら額に入れて飾っておこうか?
mito_2_081124.jpg

その他の絵も本当に上手だった。感心してしまった。

その後は、せっかくなので夏に行った那珂湊のおさかな市場に行こうとしたが、目的地まで1.6kmのところで渋滞にはまり、200m進むのに1時間かかってしまった。もういやになったので、おさかな市場はあきらめて引き返し、途中の回転寿司で昼食。食べ終わるまでに3時になってしまった。
帰りは大洗から高速に乗ったが、常磐道で事故渋滞13kmの表示が。。。すかさず、常磐道を降りて下道で。しばらくは良かったが国道6号に合流する手前で渋滞。。。国道6号もやはり石岡で渋滞にはまってしまった。奥さんのご両親も連れて行ったので、申し訳なかった。
本当に渋滞尽くしの一日でした。教訓、この季節はどこに言っても渋滞!観光地に行かないほうが良い。。。
  1. 2008年11月24日 09:16 |
  2. 日記
  3. | トラックバック:0
  4. | コメント:0

マイクロマウス

昨日は娘の持久走大会を見てから、1時間くらいマイクロマウスを見てきた。
マイクロマウス会場のつくば国際会議場に行くと、今年も盛大にやっていました。少し見ていたらやまちゅうさんにお会いしました。お久しぶりでした。
さて、ロボトレースというライントレースロボットの競技をおもに見ていた。
micromouse_1_081122.jpg
この競技はレベル差が激しかった。重心の低い、いかにスムーズに走る早いマウスもあれば、かくかくと右車輪、左車輪独立にしか駆動しないようなマウスもあった。レベル差が激しい感じ。
見た中で一位は韓国のかたで8秒いくつかだった。このマウスは、最初に遅いスピードでコース状況を測定して、長い直線はスピードを上げて走行していた。加速のトルクも凄いが減速もモーター逆転?でスムーズに減速していた。物凄い。走行終了後、盛大な拍手が。。。いいものを見せてもらった。スピード感が新しい。もしかしてマウスをドリフトさせても良いかも?頭文字D状態?
とにかくレベル差が激しい感じ。。。。

従来からのマイクロマウス競技もやっていたが、見る時間がなかった。残念。
micromouse_2_081122.jpg
  1. 2008年11月23日 07:19 |
  2. 日記
  3. | トラックバック:0
  4. | コメント:2

Place & Routeラインタイムの変化

”Place & Route時間”で勘違いを書いてしまって申し訳なかった。
依然として、Place & Routeのランタイムに長い時間がかかっているのは事実だった。これを何とかしたい、何とかしないと効率が悪すぎるということで、いろいろやってみた。
FPGAチップのデータはVirtex2pro、xc2vp50-6ff1152 で回路を133MHz動作させようとしている。現在のところNumber of Slice Flip Flops は21%、Number of 4 input LUTsは31%、Number of bonded IOBsは99%だ。
現在、主に使っているのはISE9.1i SP3(サービスパック3)、ちなみにSP4は”Xilinx ISE9.2 SP4の不具合?(Synplify Pro使用)”のため使用できない。
最初にインプリメントした時のPlace & Routeにかかった時間は下の通り。

Total REAL time to PAR completion: 7 hrs 8 mins 15 secs
Total CPU time to PAR completion: 6 hrs 41 mins 16 secs

Peak Memory Usage: 822 MB


次にSmartGuide をONにしてからインプリメントして、その後、VHDLソースの一部を修正して、2度目にインプリメントした時の時間は下の通り。

Total REAL time to PAR completion: 6 hrs 38 mins 54 secs
Total CPU time to PAR completion: 6 hrs 18 mins 13 secs

Peak Memory Usage: 806 MB


余り有意な差がなかった。
次にISE10.1i SP3を使って、プロジェクトを変換してインプリメントしてみた。

Total REAL time to PAR completion: 1 hrs 31 mins 50 secs
Total CPU time to PAR completion: 1 hrs 25 mins 55 secs

Peak Memory Usage: 817 MB


なぜか?だいぶ早くなっている。
次に、クロックを倍速にしたのに、シリアルのボーレート用クロックの分周比の変更を忘れたので、それを変更してインプリメントしてみた。

Total REAL time to PAR completion: 2 hrs 24 mins 41 secs
Total CPU time to PAR completion: 2 hrs 16 mins 25 secs

Peak Memory Usage: 813 MB


今度は、以前より1時間余計にかかるようになってしまった。どうもランタイムは一定しないようだ。
でも、この回路ではISE9.1i SP3よりもISE10.1i SP3のほうがPlace & Routeのランタイムが短い。
  1. 2008年11月21日 12:30 |
  2. Xilinx ISEについて
  3. | トラックバック:0
  4. | コメント:0

ET2008

明日、ET2008に行って来ます。いろいろなものを見て刺激を受けてきます。
Yahooグループ、FPGAの部屋の方と、お昼にお話しするのも楽しみです。ブースを出している方もいらっしゃったら”うちのところはここが面白い”とコメントを書いて、教えてください。行ってきたら、また記事を書き足します。

ET2008に行って来ました。
最初にXilinxブースへSUZAKU-V用のAVボードが発売されていました。25,000円と値札が付いていました。ほしいと思いましたが、何に使えるかを考えるととりあえず使わなそうなのでやめました。NTSC入出力と音声が確か付いていたと思います。
高速演算処理評価プラットフォーム基板もあったが、これは巨大な基板だった。45cm位あるような基板だった。うちの大きな基板よりも大きい。びっくりした。
また、XEONのデュアルプロセッサのソケットの1つにVirtex5を使ったアクセラレータボードを載せるというのがあった。XEONのフロントサイドバスなので1066MHzのDDRバスにつないで、533MHzでデータが来るそうである。果たしてバックエンドを作ることが出来るのだろうか?
それがクリアできたとしたら、上に通信ボードもスタックできるし良いかも?
いろいろXilinxブースで見たり、話を聞いたりしているうちにセミナーの時間になってしまった。
Alteraの”FPGAによる組込みシステムのアドバンテージ”を聴講する。C2Hにでソフトウェアをハードウェアにオフロードできるのは便利だと思った。本当に使い物になるのだったら(評価していないのでわからない) SOPC Builder も良さそうだし、バスも複数バス構成も組めるそうだ。なんかXilinxよりもAlteraの方が良いような気がしてきた。
その後、Tomcatさんとお会いして、お食事をした。いろいろFPGAの話とかをさせていただいたり、聞いたりして、楽しいときを過ごさせたいただいた。Tomcatさん、ありがとうございます。機会がありましたら、またよろしくお願いします。
その後、プロトタイプ用のVirtex5が2つ載っているボードを見た。上にスタックしていくとどんどん規模が増やせて、分割するソフトウエアも販売されているようだった。距離が短く、増やせるのは動作周波数的にも有利かも?
その後はCQブースに行ってトラ技78Kマイコンのテスタの話を少し聞いたり、なひたふさんのところに行って、AJAXによるMITOUJTAGの制御の話やPCI Expressのサンプルボードの生板を見せていただいた。
東京工業大学 吉瀬研究室/豊橋技術科学大学 小林研究室/東京農工大学 中條研究室の”新しい計算機システム時代を切り開くMieruPCプロジェクト”を見てきた。MIPSプロセッサをVerilogで書いて、gccで生成したコードも動作しているようだった。これは公開してもらって、Spartan3E Starter Kitに載せてみたい。マルチサイクルということで、少し残念だったが、パイプラインに出来ると性能が向上するだろう。使用していたボードはSUZAKU-Sだった。面白かった。
次は、”FPGAと高速メモリインターフェイス ソリューション”セミナーを聴講した。大体、DDR2の話だった。去年も聴講したのだが、忘れていることもあったので、興味深く聞いた。勘違いしていることもあった。ODTはWriteのときだけとか、試してみたときはR/WどちらもONにしてしまった。FPGAのDCIも試してみたことがないし、もう一度、自分のDDR2 SDRAMコントローラを試してみようと思った。しかし、資料は東京エレクトロンデバイスのPLDソリューションのページで配布とアナウスがあったが、それらしい物は見つからない?どこにあるのかな?
次はAlteraのブースに行って、40nm FPGA Startix4も展示してあった。8.5Gbpsのアイパターンを見せていた。残念ながら周期時間の確認はしてこなかったが、そうなのだろう。SOPC Builderのデモも見てきた。やはり良さそう。Nios II エンベデッド評価キット Cyclone III エディションがたくさん並んでいた。思ったより小さかった。もう少し大きいと思っていた。C2Hを使ったときと使わないときの速度差のデモをしていた。マンデルブロー集合の表示の速度差だった、かなり違う。やはり良さそう。自分でやってみたくなった。
その後、基板屋さんにつかまって話を聞いた。40層程度もまでやれるとのこと。
最後に、インターフェースなどのおまけ基板を作っているブースにたまたま入って、説明してもらった。マイコンの基板やFPGAの基板もあった。FPGA基板には結構な大きさのカラーLCDが付いていて、カメラモジュールから取り込んだ内容を写していた。FPGA基板は4万円程度。カメラモジュールは1万円程度。FPGAはSpartan3?だった。
後は、アジデントに行ってきたかな?マイコン関係はほとんど行かなかった。
CQ出版のETフェスタを覗いてみたかったが、今日は奥さん夜勤でいないので、ETフェスタが始まる前に帰宅した。

追記:
DDR2 SDRAMコントローラを趣味で自分で作っていますと、TED、アジデント、Alteraと3つのDDR2のデモをやっているところで言ってみたんだけど。ふ~んという対応だった。Alteraを除いては、MIGがあるのに何で自分で作っているの?という考えだったんじゃないかと思う?
それは、どうせFPGAを使うならば、骨までしゃぶるほど、FPGAの機能を知りたいからということかな?と思う。どこかで役に立つことがあるんじゃないかと思う。
DDR、DDR2は比較的、低価格なボードにも搭載されていてやりやすいのだが、Rocket IOなどの高速シリアルIOは基板も高いし、なかなか触る機会がない。測定器もないし。。。こっちも触ってみたいのだが。。。もし、なひたふさんのPCIeボードがお手軽の値段で出れば、いろいろやってみることも出来そう???

2008/11/25 追記2:
東京エレクトロンデバイスのPLDソリューション情報ページEmbeded Technology2008 FPGAトラック 講演資料掲載(2008/11/21)が追加されています。見るためには登録が必要です。
  1. 2008年11月21日 05:26 |
  2. その他のFPGAの話題
  3. | トラックバック:0
  4. | コメント:6

soc-lm32その後12

前回の流れでLatticeMico32のdriversフォルダの下のライブラリを使ってu-bootをブートしようとしたが、フォルダの中に入っていないインクルードファイルがあって、どうもコンパイルできない。多分、システムのジェネレータなどでファイルを生成するのではないだろうか?これ以上はLatticeのツールをインストールする必要があるようだし、とりあえずペンディングにしようかと思う。
今月のDWMでも山際氏がLatticeのデモボード上でMico32を複数使ったマルチコアシステムの記事を書いているし、デモボードを買って試してみても良いかな?とも思ったが、とりあえずはハードを作るほうに戻ろうかと思う。
載せやすいフリーOSがあったら教えてください。なにか、そういうのを載せたいのだが。。。
soc-lm32に自作のDDR SDRAMコントローラを載せた物をほしい方がいるでしょうか?そういう方がいらっしゃれば、やり方及び差分を公開しようかと思います。
  1. 2008年11月18日 20:57 |
  2. Spartan3E Starter Kit でマイコンを作る
  3. | トラックバック:0
  4. | コメント:0

家具作り教室のテーブル完成

今日は、午前中はイーアスにお買い物に行った。凄い広い。でも長さで言ったら、イオン下妻のほうがあるだろうか?イオン下妻はお店があるのは2階だが、イーアスは3階まで、お店がある。お店の中も凄く通路も広くて、余裕のあるつくりだった。

午後からは、家具作り教室でテーブル作り。
足は先週できていたので、板で足をつないで、天板を木ねじ止めして行った。最後に、不ぞろいの板を切り落として完成。
table_3_081116.jpg

大きさは60cm×88cm×H71cmです。
まだ塗りが出来ていないが、あとでキシラデコールを塗る予定。屋外用のテーブルです。
次回は、1日でベンチ型の椅子も作らせていただく予定。
  1. 2008年11月16日 17:56 |
  2. 木工
  3. | トラックバック:0
  4. | コメント:0

soc-lm32のその後11(u-bootのコンフィギュレーションの書き換え3)

今日はですます調で書きます。
最初に、”soc-lm32のその後10(u-bootのコンフィギュレーションの書き換え2)”のDDR SDRAMのアドレスは間違っていました。DDR SDRAMの容量は64Mbytes なので、16進のサイズにすると0x04000000です。よって、0x0b000000~はありえず、0x08000000~0x0bffffff になります。
あと、FATAL_ERRORともなったUARTのボーレートの設定ですが、前のままではボーレートが合いませんでした。よくよく見ると、intface.v の414行目の`define old_baud_generator のコメントアウトをはずすと、整数演算になって、ボーレートも合いました。
その次は、bootloaderの修正です。
LatticeMico32 の周辺UARTとTIMERをプロジェクトに入れたので、spike_hw.h のUARTの部分を以下のように修正しました。

/*************************************************************************** * UART0 */
#define UART_LSR_THRE    0x20    // THR Empty (送信バッファempty)(Line Status Register)
#define UART_LSR_DR        0x01    // Receiver data-ready(Line Status Register)
#define UART_LSR_FE        0x08    // Freming Error(Line Status Register)
#define UART_LSR_PE        0x04    // Parity Error(Line Status Register)
#define UART_LSR_OE        0x02    // OverRun Error(Line Status Register)

#define UART_LCR_WLS1_dl5    0x0        // WLS1 = 5bit(Data Length) (Line Controll Register)
#define UART_LCR_WLS1_dl6    0x1        // WLS1 = 6bit(Data Length) (Line Controll Register)
#define UART_LCR_WLS1_dl7    0x2        // WLS1 = 7bit(Data Length) (Line Controll Register)
#define UART_LCR_WLS1_dl8    0x3        // WLS1 = 8bit(Data Length) (Line Controll Register)
#define UART_LCR_STB_1        0x0        // STop Bit is 1bit.(Line Controll Register)
#define UART_LCR_STB_2        0x4        // STop Bit is 1.5 or 2 bits.(Line Controll Register)
#define UART_LCR_PEN_DIS    0x0        // Parity Disable (Line Controll Register)
#define UART_LCR_PEN_ENA    0x8        // Parity Enable (Line Controll Register)
#define UART_LCR_EPS_ODD    0x0        // Parity ODD (Line Controll Register)
#define UART_LCR_EPS_EVEN    0x10    // Parity Even (Line Controll Register)
#define UART_LCR_SP_DIS        0x0        // Stick Parity Disable (Line Controll Register)
#define UART_LCR_SP_ENA        0x20    // Stick Parity Disable (Line Controll Register)
#define UART_LCD_SB_DIS        0x0        // Send Break Disable
#define UART_LCD_SB_AS        0x40     // Assert Break

#define UART_

typedef struct {
   volatile uint32_t rxtx_data;
   volatile uint32_t interrupt_ena;
   volatile uint32_t interrupt_id;
   volatile uint32_t line_ctrl;
   volatile uint32_t modem_ctrl;
   volatile uint32_t line_status;
   volatile uint32_t modem_status;
   volatile uint32_t baud_rate_div;
} uart_t;


当然、SRAM_STARTも0x08000000 に修正しました。

spike_hw.c のuart_init, uart_getchar, uart_putchar を修正しました。

void uart_init()
{
    uart0->line_ctrl = UART_LCR_WLS1_dl8 | UART_LCR_STB_1 | UART_LCR_PEN_DIS | UART_LCR_EPS_ODD | UART_LCR_SP_DIS | UART_LCD_SB_DIS;
}

char uart_getchar()
{   
    while (! (uart0->line_status & UART_LSR_DR)) ;
    return uart0->rxtx_data;
}

void uart_putchar(char c)
{
    while (!(uart0->line_status & UART_LSR_THRE)) ;
    uart0->rxtx_data = c;
}


これで例によって、cygwin でコンパイルしてから、ISEでコンパイル、インプリメントしました。
Teratermを起動して、やってみました。最初はミスっていて、ボーレートがあっていませんでしたが、(最初に書いた原因です old_baud_generator )うまくプロンプトが出るようになりました。
これでu-bootをロードすることが出来ようになったと思いました。
ですが、m コマンドでDDR SDRAMテストもv コマンドでそのデータを見ても大丈夫なのですが、u コマンドでファイルからダウンロードしたときがおかしくなっています。
どうおかしいか確かめるために、8ワードだけのデータを作ってu コマンドで8ワードだけアップロードしてみました。
そうすると、最初の2ワードだけロードできているようなのですが、ほかは書き換わっていないようです。
U-boot_build_8_081115.png

エラーでも出ているんでしょうか?ちなみにボーレートを115200bps から半分にしても同様でした。
今日は飽きてきたので、この辺で終わりにします。
今度はLatticeMico32のdriversフォルダの下のライブラリを使って、動かしてみることにします。それで動かなければ、soc-lm32 のUARTを使うことにして、u-bootのUARTドライバの方を書き換えることにします。
  1. 2008年11月15日 19:34 |
  2. Spartan3E Starter Kit でマイコンを作る
  3. | トラックバック:0
  4. | コメント:0

IBUFDSからDCMまでの配線(Virtex2, Spartan3シリーズ編)

うちのボードのクロック・ジェネレータはLVPECLレベルで出ているので、FPGA(xc2vp50-6ff1152)で受けるときには、IBUFDS(Differential Signaling Input Buffer with Selectable I/O Interface) で受けている。その信号を4つのDCMの入力に分配しようとした。
クロックの入力パッドは、チップの下の位置、DCMはチップの右上、左上、右下、左下にある。それをFPGA Editorで見てみよう。(Worldウインドウ)
IBUF_1_081114.png
クロックの入力パッド

IBUF_2_081114.png
4つのDCMの位置

クロックの入力パッドから各DCMまでの配線はこうなっている。
IBUF_3_081114.png

FPGA Editorのdelayボタンでそれぞれの配線遅延を測った。

クロックの入力パッドから左上のDCMまでの配線遅延は4.073ns
クロックの入力パッドから右上のDCMまでの配線遅延は5.541ns
クロックの入力パッドから左下のDCMまでの配線遅延は0.513ns
クロックの入力パッドから右下のDCMまでの配線遅延は0.512ns


やはり、上側のDCMまでの配線遅延が相当大きい。クロックバッファおよび配線ではないく、通常のロングラインなどの配線を使用しているからだと思う。

右上のDCMのクロックパス・ディレイのTiming Analyzer 解析結果を下に示す。長いDCM入力配線遅延のためか?(ピンクの四角で囲った部分)クロックパス・ディレイが4.843ns となっている。
IBUF_4_081114.png

右下のDCMのクロックパス・ディレイのTiming Analyzer 解析結果を下に示す。ピンクの四角で囲った部分がクロックパッドからDCM入力までの配線遅延。こちらは、-0.460ns とほぼ入力クロックの位相に近い。
IBUF_5_081114.png

ここで、右上のDCMのクロックパス・ディレイはFPGA Editor での値とTiming Analyzer での値が一致しているが、右下のDCMの値は一致しない。どういうことだろうか?これはよくわからないが大体近い値だ。

やはり、クロックパッドのFPGAチップでの位置とDCMの位置は近いほうが良いと思う。
もし、IBUFで受けたクロックをFPGAチップの広い範囲に回す時にはいったんBUFGを入れたほうが良いと思う。そうは言っても、このFPGAではもうBUFGが足りないのだが。。。その場合はいったんどこかの1倍出力のDCMで受けてそこから、回すしかない。そうするとジッタは増えるだろうが、V2proならば大丈夫だろう?たぶん。。。
こうしてみるとBUFGをたくさん使う用途にはVirtex4以上がほしいと思った。
  1. 2008年11月14日 12:33 |
  2. FPGAチップ内の配線方法
  3. | トラックバック:0
  4. | コメント:0

Place & Route時間

今日、Virtex2pro、xc2vp50-6ff1152 で回路を133MHz動作させようとしている。ISEは9.2iを使用している。
現在のところNumber of Slice Flip Flops は21%、Number of 4 input LUTsは31%、Number of bonded IOBsは99%だ。Place & Route Proberties は下の値でやっている。

Overall effort level (-ol): High
Placer effort level (-pl): High
Placer cost table entry (-t): 1
Router effort level (-rl): High
Extra effort level (-xe): Continue


この状態で、今までPlace & Route に5時間かかっていたのだが、今日、FFを間に挟んで、クリティカルパスを潰したら10分になってしまった。Extra effort level (-xe): Continue (つまりExtra Effort = Continue on Impossible) だと、タイミングの向上が見込めないところまで配置配線をするそうなので、これで長くなっていたのかもしれない。
やはり、クリティカルパスを潰すのが肝心だと実感した。
今回はツボにはまったのかもしれないが、P&Rに長い時間がかかっている方は、一度試されることをお勧めします。

2008/11/14 後日談:
10分で終了するのはとてもよかったのだが、VHDLソースを変更しても、FPGA Editorで見ると変更されていない状態になってしまった。DCMの位相シフト値を変更してもFPGA Editorで見ると変更されていなかった。
なにかISEがおかしい状態になってしまっていたようだ。VHDLファイルを修正すると、Project Navigator はオレンジ色の?を出していたのだが、やってみると変更されていない。
結局、Project メニューからCleanup Project Files を選択したら、修正が適用されるように復帰した。
何か、おかしくなっていたようだった。
しかし、また5時間程度のコンパイル時間に逆戻りでがっかり。SmartGuide もエラーになるし。。。

皆さん、ガセネタを書いてしまって申し訳ありませんでした。私のブログにはガセネタもあると思うのでお気を付けください。わかったら、すぐに訂正するつもりです。
  1. 2008年11月12日 17:20 |
  2. Xilinx ISEについて
  3. | トラックバック:0
  4. | コメント:4

XSTでのFATAL_ERROR:Xst:Portability/export/Port_Main.h:143:1.17

新しくしたsoc-lm32を論理合成したら、”FATAL_ERROR:Xst:Portability/export/Port_Main.h:143:1.17”が出て論理合成できないという問題が発生してしまった。
どこのモジュールがだめなのかを特定する必要性を感じたので、system.v以下のモジュールを順番に"set as top module" して、トップモジュールにして論理合成してみた。やり方は以下の図のように右クリックメニューから"Set as Top Module"を選択する。
FATAL_ERROR_1_081112.png

やってみたところuart_core.v でFATAL_ERRORが出ていた。
FATAL_ERROR_2_081112.png

検索してみたところ、Xilinxフォーラムがヒットした。それによるとXSTは定数としてはreal をサポートされているようだ(VHDLの場合、Verilogは不明)が、その辺がくさそう。
そういえば前にパラメータがundefined になって修正したところにくさいところがあったのを思い出した。それはuart_core.v の下のintface.v の中にあった。
FATAL_ERROR_3_081112.png

ピンクの下線が引いてあるところが、小数点がある。これを消してみることにした。
FATAL_ERROR_4_081112.png

そうすると、問題なく論理合成することが出来た。良かった。

  1. 2008年11月12日 05:58 |
  2. Xilinx ISEについて
  3. | トラックバック:0
  4. | コメント:0

soc-lm32のその後10(u-bootのコンフィギュレーションの書き換え2)

”soc-lm32のその後10(u-bootのコンフィギュレーションの書き換え1)”で、soc-lm32 でのu-boot 起動の可能性を探った。今度はhwsetup_pregenerated.h のアドレスマップと思われるものを書き換えて、soc-lm32 で動作するかどうかを調べてみようとした。主なところを下のように書き換えた。
U-boot_build_5_081111.png

ここで、”soc-lm32のその後10(u-bootのコンフィギュレーションの書き換え1)”でMSBconponents.cfg にはタイマーは3つ入っているが、とりあえず1つに減らした。この理由は、soc-lm32のtimer が1つしかなかったためだ。でも、書き直してからよく検証してみるとsoc-lm32のtimerは1つのモジュールに2つ入っていたのだった。失敗したが、とりあえず1つとした。
これでmake u_boot すると、どうも、.text は0x0bfdc000 に割り当てられるようだ。これをどこで変えるかが良くわからないので修正できない。リンカ・スクリプトファイルで指定するのはわかっているが、どこかが動的に作るようで、まだ良くわからない。
U-boot_build_6_081111.png

上のhwsetup_pregenerated.h でDDR SDRAMを0x0b000000 からにマップして、とりあえず出来たu-boot.bin をbootloader からロードしてgo してみようという計画だ。

次に、soc-lm32 のプロジェクトをLatticeMico32 の周辺モジュール、timer と uart_core を使用するように変更した。トップのsystem.v を修正して、timer と uart_core をラップして接続した。DDR SDRAMのアドレスを0x0b000000~に変更した。
これで論理合成したら、”FATAL_ERROR:Xst:Portability/export/Port_Main.h:143:1.17”で止まってしまった。
U-boot_build_7_081111.png

これは”XSTでのFATAL_ERROR:Xst:Portability/export/Port_Main.h:143:1.17”で詳しく解説する。ともかくuart_core.v の下のintface.v を修正したら論理合成が出来るようになった。これでうまくインプリメントすることが出来たので、bootloader 経由でu-boot.bin を転送して起動してみようと思う。
  1. 2008年11月12日 05:51 |
  2. Spartan3E Starter Kit でマイコンを作る
  3. | トラックバック:0
  4. | コメント:0

VMware Server 2.0 でゲストOSをSuspend、そしてResume

私は、長い時間連続してやることが難しいので、Windowsは休止状態を使いながら使っている。VMware Server 2.0 を使うようになって困っていた。ゲストOS上でハイバネーションしても、復帰後はネットワークが使えなくなっていた。結局再起動することになって、前の状態が保持できなくなっていた。
そんな時、ブラウザのVMware のSummayタブのCommands エリアに Suspend を見つけた。これをすればもしかしたら、ゲストOSをサスペンドして、Windows を休止状態にしても、Windowsが復帰した後、ゲストOSの状態を復帰できるかも?早速やってみました。
ブラウザのVMware のSummayタブのCommands エリアの Suspend をクリックすると、VMware Remote Console が閉じた。
VMware_suspend_resume_1_081109.png

これでWindows を休止状態にする。
次にやるときにWindows の休止状態を解除して、起動する。
ブラウザのVMware はエラーになっているので、ボタンをクリックしてダイアログを解除する。VMware にID、パスワードを入れてログイン。
右のInventory ペインのVirtual Machine #2 に一時停止のマークが付いている。
ブラウザのVMware のSummayタブのCommands エリアの Resume をクリックする。
VMware_suspend_resume_2_081109.png

そうするとPowerONするので、ConsoleタブのOpen the console in a new window. をクリックするとSuspend する前のゲストOSの状態に戻った。
こうするとネットワークも問題なくつながっているし、これでだいぶ便利になった。
  1. 2008年11月09日 20:22 |
  2. VMware
  3. | トラックバック:0
  4. | コメント:0

自分流こだわり家具作り2

自分流こだわり家具作りの2回目がありました。(前回の記事)
今回は先生に木を製材していただいたので、それをサンドペーパーがけするところから始まりました。
table_1_081109.jpg

材料が結構あるので、サンドペーパーがけも大変です。サンドペーパーがけは終わりませんでしたが、先生が足を組み立てようとのことだったので、手伝ってもらって足を組み上げました。
板の上に足になる板を2枚立てるのですが、そのままやると垂直の足を押さえるのが難しいので、横にしてやりました。どのようにやったかというと、そのまま横にすると、正常な置き方では縦になる足板が浮いてしまいますが、浮く分の厚さのあて板をして横からコーススレッドで止めました。初めて、インパクト電動ドライバを使いましたが、横向きでもやり易かったです。今日はこれで終了。サンドペーパーがけが疲れました。
table_2_081109.jpg

これもMakeのうちですね。。。
  1. 2008年11月09日 17:21 |
  2. 木工
  3. | トラックバック:0
  4. | コメント:0

Make: Tokyo Meeting 02

Make: Tokyo Meeting 02に行ってきます。
八王子から10:30分のバスに乗る予定です。皆さん、よろしくお願いします。
戻ってきたら、追加で記事を書きます。

Make: Tokyo Meeting 02に行ってきました。
八王子から10:30分のバスに乗って多摩美大に着きました。
Makeの会場まで歩いていきました。今日は誰に会えるかな?
make2_1_081108.jpg

会場に入ると、大盛況でした。午前中なのに人がいっぱい。
make2_8_081108.jpg

早速、見て歩くと、ロボットの足に音の出るカバーをつけて歩かせるというデモをやっていました。いろいろな足があったので、いろいろ変更するといろんな音になるのでしょう?
make2_2_081108.jpg
make2_3_081108.jpg

反対側では、心臓が走っていました。心臓の走るおもちゃだそうです。グロいです。
make2_4_081108.jpg

脳もパソコンの中で動いていました。CPUの負荷によって大きさが変わるそうです。これもちょっとグロい。
make2_5_081108.jpg

今回、見たかったパラメトリック・スピーカーがありました。でも、周りがうるさくて音が聞こえません。買おうかどうしようか悩みましたが、やめました。秋月のパラメトリック・スピーカーは超音波がずーと出ているので、頭が痛くなる人がいるそうですが、これはSSB?DSBだったかな?変調なので音が出ないと超音波が出ないそうです。
make2_6_081108.jpg

紙のコーンにダンボールのエンクロージャーのスピーカーもありました。結構いい音ですね。
make2_7_081108.jpg

ニコニコ技術部もたくさん来ていました。
make2_12_081108.jpg

大きさ別のねぎ振りミク。小さいのは顕微鏡で見ないと見えないようでした。
make2_9_081108.jpg

撮影できますPさんともブログの名刺交換をさせていただきました。基板はすごく小さく、細かかったです。あれを手早くハンダ付けできるんですから、すごいです。
make2_10_081108.jpg

はねちゅミク専用レーザー焼印機がありました。レーザーで板を焦がしてはねちゅミクを書いていきます。凄い。。。レーザーの出力を聞いたら1W程度とのこと。そのくらいで木が焦げるんですね? PICで制御しているとのことでした。詳しい説明書をいただきました。
make2_11_081108.jpg

感心したので、1枚出来上がったものを頂いてきました。ありがとうございます。レーザーで焦げた所は少し彫れています。良いものをいただきました。
make2_13_081108.jpg

場所は家から3時間近くかかって遠かったですが、面白かったです。またあったら行きたいです。自分も何か出してみようかな?そのためには作らないといけないですね。。。
  1. 2008年11月08日 06:09 |
  2. 日記
  3. | トラックバック:0
  4. | コメント:2

soc-lm32のその後10(u-bootのコンフィギュレーションの書き換え1)

さてさて、今回ビルドしたu-boot をそのまま動かそうとすると、LatticeからダウンロードしたMico32のUARTやTimerをsoc-lm32 のUARTやTimerコンポーネントと入れ替える必要がある。(ちなみに、LatticeからダウンロードしたMico32の中のUARTやTimerなどのコンポーネントはsoc-lm32 で使っているUARTやTimerなどと違っている)
ディフォルトのメモリマップは、、”Linux Port to LatticeMico32 System Reference Guide”の20ページを見ると以下のようになっているようだ。(Linux Port to LatticeMico32 System Reference Guideの20ページから転載)

U-Boot 1.2.0 (Oct 15 2007 - 12:00:00) [Theobroma Systems]
LatticeMico32 board configuration:
Device     | Base Address | Additional information
-----------+--------------+---------------------------------
CPU 0      |              | Frequency: 75000000 Hz
Flash 0    | 0x04000000   | Size: 33554432 (32 MB)
DDR SDRAM 0 | 0x08000000  | Size: 67108864 (64 MB)
Timer 0    | 0x80002000   |
Timer 1    | 0x80010000   |
Timer 2    | 0x80012000   |
UART 0     | 0x80000000   | Baud Rate: 115200
LEDs 0     | 0x80004000   |
7Segment 0 | 0x80006000   |
TriSpeedMAC 0 | 0x80008000 |
LM32 configuration options:
Hardware multiplier: enabled
Hardware divider: enabled
Hardware barrel-shifer: enabled
Sign-extension instructions: disabled
Cycle counter CSR: disabled
Instruction cache: enabled
Data cache: enabled
lm32mac version 0x10000 @
0x80008000lm32MAC#0
In: serial
Out: serial
Err: serial
Hit any key to stop autoboot: 0
lm32#


これにしたがって、自分のsoc-lm32 のアドレスマップを変更する必要がある。
system.v の115行目あたりで下のようにアドレスマップをしているので、これを変更する。

//---------------------------------------------------------------------------
// Wishbone Interconnect
//---------------------------------------------------------------------------
wb_conbus_top #(
    .s0_addr_w ( 3 ),
    .s0_addr   ( 3'h4 ),        // ddr0
    .s1_addr_w ( 3 ),
    .s1_addr   ( 3'h5 ),        // flash0
    .s27_addr_w( 15 ),
    .s2_addr   ( 15'h0000 ),    // bram0 
    .s3_addr   ( 15'h7000 ),    // uart0
    .s4_addr   ( 15'h7001 ),    // timer0
    .s5_addr   ( 15'h7002 ),    // gpio0
    .s6_addr   ( 15'h7003 ),
    .s7_addr   ( 15'h7004 )


wb_conbus_top.v がWishBone の MasterデバイスとSlaveデバイスを接続するデバイスのようだ。このwb_conbus_top.v は一番上の31ビット目は無視するようだ。
でも、ここで問題が出てきた。前述したすでにビルドされたu-boot のアドレスマップを見ると、UART0が0x80000000 番地にアドレスマップされているが、これの最上位ビットを無視すると、0x00000000 番地にミラーが出てしまう。よって、BRAMと重なってしまうので、このままではだめだ。u-boot のアドレスマップを変える必要がありそうだ。
”soc-lm32のその後9(u-boot)”で検証したように、/lm32linux-20080206/u-boot/board/lattice/ecp250full の中を見ると、7つのファイルがある。
U-boot_build_2_081107.png

このうちのMSBconponents.cfg に搭載するデバイスの構成が書いてるんだと推測している。
U-boot_build_1_081107.png

TRIMODEMACは、MACはボード上にはあるがTRIMODEではないし、後でMACは後でドライバを書く必要があるだろうから、とりあえずコメントアウトする。7SEG-LEDもボード上にないのでこれもコメントアウト。GPIOを追加する。
U-boot_build_3_081107.png

問題はFLASHがLatticeMico32のドライバで使えるかどうかだけども、スパルタン3E スタータキットのパラレルFLASHはTE28F128J3D-75で、LatticeのボードのパラレルFLASHは MX29LV128MBTI-90Q違いは追々検証していくことにして、このままにしておくことにする。とりあえずFLASHは使わない事とする。

次に、アドレスマップが書いてあるのはhwsetup_pregenerated.h のようだ。
U-boot_build_4_081107.png

このアドレスマップを書き換えることにする。

(注)今やっていることは、当て推量に基づいて、いい加減にやっています。まったくこうなるという保障はありません。そうなりそうだけど、やってみようという思いでやっていますので、間違っている可能性が大いにあります。間違っていそうだったら、ご指摘いただけると本当にありがたいです。
  1. 2008年11月08日 05:59 |
  2. Spartan3E Starter Kit でマイコンを作る
  3. | トラックバック:0
  4. | コメント:0

VMware Server 2.0 でUSB接続HDDのマウント

VMware Server 2.0 でUSB接続HDDのマウントが出来た。マニュアルを見てやっていないので、どうもUSBデバイスのマウントの仕方がわからなかったのだが、ようやくできた。
やり方はブラウザ上のVMWare Infrastructure Web AccesssのSummaryタブの Commands からPower ON するとVMware Remote Consoleを立ち上げる。つまりUbuntuを立ち上げてログインするわけだ。
Power ON すると上のほうのアイコンが出ている部分にUSBのマークが出てくるので、そこをクリックするとメニューが出てくる。そこで、マウントしたいUSBのHDDにチェックをつける。ここではメルコのUSB接続HDDが付いているので、そのブリッジにチェックを入れる。
VMware_tips_1_081107.png

そうすると、Ubuntu上にメルコのUSB接続HDDがマウントされた。この状態では、Windowsからはマウントは外されて見えなくなった。
VMware_tips_2_081107.png

マウントし、USB接続HDDの内容を表示するのにだいぶ時間がかかったが、内容を表示することが出来た。
VMware_tips_3_081107.png

これに、u-bootのビルド結果をコピー&ペーストすると、出来ました。
VMware_tips_4_081107.png

これで、アンマウントし、ブラウザ上のVMWare Infrastructure Web Accesss のUSBマークのメニューからUSB接続HDDのチェックを外すとWindows から再び見えるようになった。これで内容を見てみるとUbuntu でコピーしたファイルも正常に読み出すことが出来た。

これで、Windows と linux 間でファイルのやり取りを簡単に出来るようになった。しかし、USB接続HDDのマウントには時間がかかるので、後でやってみたUSBメモリの方が圧倒的にマウントに時間がかからずに良い感じ。(容量が少ないせいかもしれないが。。。)こっちでデータをやり取りしよう。。。
  1. 2008年11月07日 05:39 |
  2. VMware
  3. | トラックバック:0
  4. | コメント:0

soc-lm32のその後9(u-boot)

uClinuxは、今のままのモニタプログラムでシリアル経由でダウンロードして、実行しようと思っていたのですが、やはりu-bootを移植したほうが何かと便利なようです。やっと全体が見え始めてきました。
このところUbuntu や Fedora 9 と格闘していまして、どちらも一長一短です。(Ubuntuの方が良いようです)
例えばUbuntu は日本語もスムーズに使えてとてもよいのですが、uClinuxをビルドできませんでした。アップデートも自然にかかるし、とても良いディストリビューションだと思いました。ですが、uClinuxをビルドできないのでは仕方がありません。
Fedora 9 は最初日本語も使えませんでした。”Fedora 9で日本語を入力するには”を見て、やっと日本語が入力できるようになりました。あとは、依存関係が解決できなくてアップデートできません。いろいろ、本当に何日もつぶしてやってみましたが、だめでした。おかげで VMware tools もインストールできません。ですが、とりあえず、唯一、uClinux がビルドできているのでこれを使うことにしました。

Ubuntu や Fedora 9 をいじりながら、買った本を読んでいる。”はじめる組込みLinux H8マイコン×uClinuxで学べるマイコン開発の面白さ”は本当に良い本で、H8の解説から書いてある。マイコンでlinuxを動かしたいという方には最高の1冊といえると思う。これが終わったらH8のボードを買ってuClinux 動かしてみても良いかな?と思った。
”組み込みLINUXシステム構築”は組み込みLINUXの基本的なことが書いてある解説書で特にu-boot の項を参考にした。
いろいろ本を読んだり、ネットで調べたりしながらu-bootのことを学んで、Fedora 9 でビルドできたlm32linux-20080206/u-boot ディレクトリを見ていると、その下のcpu ディレクトリにlm32 ディレクトリがあって、その下にserial.c やleds.c などがあった。まだMakefileを解析していないが、ハードを書き換えないとしたら、この辺を書き換えれば良いのかも?
u-boot_1_081103.png

ボードの構成はu-boot/board/lattice の下に、ecp250, ecp250full, ecp250mini, ecp250nolinux ディレクトリがある。
u-boot_2_081104.png

これは、”Linux Port to LatticeMico32 System Reference Guide”の11ページのBuild System Make Targets のTable 1 のTargetに対応しているのでは?と思った。
u-boot_3_081104.png

とりあえずは、このTarget を修正して適当なTarget のMSBcomponents.cfg ファイルを作り、soc-lm32 のIOをLattice Mic32 のIOに変更してu-bootが動くかどうかを試してみようと思う。


2008/11/05 追加: KEIさんのご指摘によりUbuntuでもう一度、uClinuxをビルドしてみたらビルドすることができました。やはり、これからはUbuntuでやろうと思います。
Ubuntu_uClinux_build_1_081105.png

KEIさん、ご指摘ありがとうございました。また何かありましたら、ぜひ教えてください。よろしくお願いします。
  1. 2008年11月04日 05:09 |
  2. Spartan3E Starter Kit でマイコンを作る
  3. | トラックバック:0
  4. | コメント:3

つくば物語2008

今日は、つくば物語2008を見てきました。
hirasawa_2_081101.jpg

つくば市の遺跡、平沢官衙で地域の物産展や、紙ふうせんオカリナ奏者、宗次郎のコンサートが行われました。
13:30から紙ふうせんのコンサートでした。”冬が来る前に”や”翼をください”が好きだったので、楽しめました。尼崎市から来たとのこと、遠いところご苦労様でした。
hirasawa_1_081101.jpg

15:30からは、宗次郎のコンサートでした。オカリナということで1人なのかと思っていたのですが、シンセ、ヴァイオリン、チェロ、パーカッションのバックバンドが付いて来ました。オカリナはどこか悲しげに聞こえましたが、とても風情があってよかったです。”コンドルは飛んでいく”がとてもよかったです。
hirasawa_3_081101.jpg

途中で寒くなりましたが、快晴の天気の中、オカリナを聞いていると、暮れていく夕日がとても神秘的に見えました。来年もぜひ行きたいです。ちなみにコンサートは無料でした。

来週の土曜日は、多摩美大のMake Tokyo Meeting 02に行こうと思っています。私がブログを拝見している方もかなり行かれるようなので、現地でお会いするでしょうから、よろしくお願いします。
  1. 2008年11月01日 20:12 |
  2. 日記
  3. | トラックバック:0
  4. | コメント:0

VMware Server 2.0 でUbuntu8.04 をインストール

Fedora 9でVMware tools をインストールできなくて困っていましたが、Ubuntu8.04にしたらインストールできました。
Ubuntu_vmware_tools_install_1_081030.png
しかし、Ubuntu 8.10 にアップデートしたら、Virtual Machine までおかしくなってしまった。インストールしないほうが良かった。
また、Ubuntu8.04でインストールからやり直しました。
ゲストOSからホストOSへのファイルの移動ですが、考えてみればネットワークストレージを使えば問題ないですね。そうするようにします。

次はどうしようかな?
1.VGAコントローラやキーボード・コントローラを付加して、ハードウェアを充実していく。
2.このままuClinuxの実装を頑張る - 結構時間がかかりそう。
3.”はじめる組込みLinux H8マイコン×uClinuxで学べるマイコン開発の面白さ”がかなり読みやすい良い本なので、本のとおりにH8のuClinux からやってみる。
どれが良いか考えている。
とりあえず、2.でLatticeのボードのハードウェアと似せて、動かすことが可能かどうかを検討しようと思う。
  1. 2008年11月01日 12:19 |
  2. VMware
  3. | トラックバック:0
  4. | コメント:2