ソラマメ
QRコード
QRCODE
アクセスカウンタ
読者登録
メールアドレスを入力して登録する事で、このブログの新着エントリーをメールでお届けいたします。解除は→こちら
現在の読者数 0人
オーナーへメッセージ

2010年06月19日

Altera版問題

【気の重い話】

 アルテラ版に関しては、PCI用の増設パラレルボード経由ではうまくいかない
というお話をしてから、10日ほどが経ってしまいました。
もうちょっと色々と調べてみようと思って、経営が苦しいというのに、
金と時間を湯水のようにドブに捨てながら調べた事を、お話します。

 実はアルテラでうまく行かないというのは、本当に気が重い話でした。
なぜかというと、アルテラのQuartusⅡにはIn-system Memory Content Editorという
非常にいいツールがあるのを発見し、「これで行こう!」と張り切っていた矢先だったからです。

 で、一体、どんなことになるのかというお話をしながら、
どうすれば良いのかということを考えて行こうと思います。



【ベースボードからのFPGAプログラミング】

 まず、私は去る5月24日に、
マルツパーツ館さんのFPGAトレーニング用学習ベースボードの動作チェックで
先を急ぐあまり、FPGAトレーニング用学習ベースボードを使う趣旨を無視して
アルテラ用USBプログラミングケーブル(USB-Blaster)を使ってしまいました。
 これが、その時の模様です。
---------------------------------------------------------------------------------
Altera版問題
---------------------------------------------------------------------------------

 まず、重要なのはこれが出来る人は、これがベストです。
もう、「こうしてください。」と、断言します。
PCI増設パラレルボードで、プログラミングケーブルが認識できないと、
悩む必要も、意味も全くありません
 以下のかたは、今日のブログを読む必要はありませんので、
もう、ここで、次回をお楽しみにされるか、もしくは、
大中が何をアホな事をやっているのか興味本位で失笑をこらえながら
軽い気持ちで読んでやってください。


1、すでに、USB-Blasterを持っている。
2、約3万円するけど、USB-Blaster買っても良いと思っている。
3、アルテラのFPGAは使わない。
4、アルテラの高い純正USB-Blasterを買わなくても、もっと
 安くUSBプログラミング環境を準備できる情報を知っている。


 しかし、以下のかたは、一見もう満足されているかもしれませんが、
一応最後まで目を通されて、この際USBプログラミング環境に乗り換えるかどうか
今一度、ご再考されることをオススメします。

5、すでに、ByteBlasterⅡなどのパラレルプログラミング環境が、
 順調に動いていて、特に不自由していない。
6、もうすでに、FPGAトレーニング用学習ベースボードのパラレルプログラミング環境で、
 バリバリやっているから大丈夫。
7、苦労して自作したByteBlasterが手放せない。



 さて、去る5月24日に、私はこう言っています。
後で必ず、ベースボードからのFPGAプログラミングに戻しますので…
 私が、ベースボードからのFPGAパラレルプログラミングにこだわった理由は
主要三社のFPGAや、その開発環境を評価する準備を初めて行うに当たって、
誰もが最も低い投資でそれを実現できる最良の方法だと踏んだからです。

 で、「ベースボードからのFPGAプログラミングに戻します」というのは、
つまり、ラティス版で嫁さんがやっていたような、こういう接続アルテラもやりたいし、
まだやっていませんが、さらに「ザイリンクスもこれでやりたい」ということです。
 去る5月31日のこの接続です。
---------------------------------------------------------------------------------
Altera版問題
---------------------------------------------------------------------------------

 ところが上の、通称「おっちゃん」こと、玄人志向のPCI増設パラレルボード
インストールした嫁さん、および私の作業用パソコン
Dell・Inspiron 530S:WindowsXP Home Edition SP3)では、
パラレルプログラミングツールがまったく認識されないということが起こりました。
 そこで、散々色々調べて、
アルテラはPCI増設パラレルボードでは使えないのではないか…?
と、疑心暗鬼に考えるようになりました。

 これを思い出していただきたいと思います。
同じく去る5月31日のブログです。
---------------------------------------------------------------------------------
Altera版問題
---------------------------------------------------------------------------------

 「FPGA超入門」付録のラティス版ではじめようとしたときの、
パラレルポートに関するスペシャルな設定です。

 メニューを見てください。
Port Setting」か、「Custom Port」かを選択するようになっており、
おっちゃん」こと、PCI用増設パラレルボードを使用した場合には、
「Custom Port」を選んで、I/Oアドレスがどこに行っているか
設定してやらなければなりませんでした。

 実は、アルテラのQuartusⅡにはこの種の設定が無いんです。
そこで私は、ふと、
アルテラって、昔ながらの0x0378とかのIOアドレスにしか対応してないんちゃう…?
と、大きな声では言えないような疑念を持ちました。
 もしそうだとすると、どうなるか。

パラレルポートが元から付いてる、昔ながらの古いパソコンが必要。
あるいは、
きょうびの最新パソコンだけど、古い機器を面倒見るために
 昔ながらのパラレルポートをわざわざ付けてくれている高級パソコンが必要。

ということになります。


【パラレル増設ボード実験】
 この、不気味な仮説がどうなのか、確かめてみるために、
昔現役バリバリだったけど今はもうあまり使っていない1台のパソコン、
もとからパラレルポートが付いていて、IOアドレスが0x0378になっているような、
レガシィなパソコンの埃を払うことになりました。
こいつです。
Altera版問題

 CPUはAthlon64 3200+で、OSはWindowsXP Professional Edition SP3が入っています。

 こいつを使って、実際、FPGAトレーニング用学習ベースボード
アルテラ版付録基板をつないで、どうなればいいのか、
そして、このパソコンのPCIスロットに、いろいろなPCI増設パラレルボードを増設してみて、
どうなるのかということを見てみたいと思いました。
 このために私は、経営が苦しいというのに、PCI増設パラレルボードをさらに3種類
アマゾンからリボ払いで(正確には”あとからリボ”で)追加購入して準備しました。
残念ながら、最もこの実験に使いたかった「おっちゃん」が、
諸事情により離れた場所に居て、実験からうまく逃げたために参加できませんでした。
おっちゃんは、後日機会を見て実験台になってもらうことにします。

 ではまず、このように、例のケーブルアルテラ版付録基板を装着したベースボードに接続します。
Altera版問題

 そのケーブルの反対側は、パソコンのマザーボードに元から付いているパラレルポート
つなぎます。
Altera版問題

 さて、これで、PTSGが「HelpMe!」と叫んでいる例のsofファイルをプログラミングしてみます。
Altera版問題

 この通り、無事書き込めます。
ちなみに、FPGAトレーニング用学習ベースボード内蔵のプログラミング回路は、
ByteBlasterMV」として、認識されています。

 そして、この通り、jicファイルを作成すると、コンフィグレーションROMにもちゃんと書き込めます
Altera版問題


 では、早速、新たに購入したPCI増設パラレルボードを紹介しながら、
それを使ってみてどうなるかを見て行きましょう。
まず、これです。
Altera版問題

 これは、アマゾンで安かったので、あまり期待をせずに買ったものです。
これを、こういう具合に、PCIに装着、インストールして、これにケーブルをつなぎなおして、やってみます。
Altera版問題

 まず、早速、DellのInspironとの違いが出ました
このように、認識はされるということです。
Altera版問題

 念のために、増設パラレルポートをLPT1に、マザーボードのパラレルポートをLPT2
アサインしなおしても、その状態は安定しています。
Altera版問題

 ということは、つまり、私の仮説であった、
アルテラのByteBlaserドライバが、0x0378等のレガシーIOにしか対応してないというのは
ちょっと違う全然違う?)かもしれないということです。
 で、これで、実際書いてみるとどうなるかと言うと…
Altera版問題

 あああ…
やっぱり、なんかエラーになってしまいます。
でも、このエラーは、はなから全然ダメというエラーではなく、
一応なんか動かしたけど駄目だった系のエラーです。
DellのInspironでは、明らかにこんな段階には至れなかったので、
余計話がややこしくなりそうになってきました。

 さて、次の選手を行ってみます。
これです。
Altera版問題

 これは、このコピー、「これで、かつての愛用機器が蘇る!」という、
この頼もしい言葉に魅かれて、思わず「1クリックで今すぐ買って」しまったボードです。
さて、行ってみましょう。
Altera版問題

 おおおおおおおおおおおおっ!
うっそぉぉぉおおおっ!!

 なんと!! イけてしまった!

jicファイルから、ROMへの書き込みもこの通り。
Altera版問題

ヒェェ~~~~!!
 なんという、番狂わせなことをしてくれるのやら。
これで、「PCI増設パラレルボードではダメ」という、単純な話ではなくなってしまいました。

 では、ちょっと、最後にこの「先生」を試してみましょう。
Altera版問題

 実はこの先生他のボードとの大きな違いは、
みんな3千円くらいなのに、これだけ7千円もしていました。
しかも見てください。
他のボードに比べて、如何にもレガシーなこの雰囲気!
 「こいつはデキそうだ…」という、それだけの根拠で、
経営が苦しいというのに7千円もリボ払いで払って雇った
用心棒の「先生」です。

 さっきのOwltechに出来たのなら、先生にデキないはずはない!
と、大した根拠もなく確信しながら、試してみますと…
Altera版問題

 あちゃぁー・・・・・・!
7千円の先生見事にズッコケてくれました…
しかも先生、これは、もしかして全然ダメ系のエラーでは…

 「見てくれの強そうな先生は必ずやられるという、時代劇の鉄則に、学ぶべきだった…

と、いまさら悔やんでも仕方ありません。
 まあ、先生は、このままここに居てもらいましょう。
高いのはなんか別の理由があるに違いありません。
また、その時に、きっと役に立ってくれるでしょう…



【Dell・Inspiron530S 再チャレンジ】

 さて、そんなことよりも、早速やってみたいのは、
この本日のMVP期待の星Owltechを、もう一度、Dell・Inspironに入れてみることです。

 Owltechをせっせと、Dell・Inspiron530Sのあるところに持っていき、
再インストールし、ドライバのポートセッティングでなんとかLPT1にこれを設定して、
やってみますと…
Altera版問題

 はぁ~~・・・・
 やっぱり、これです…
「Kernel mode driver not installed」です。
実はこれこそが、ここまでのところ、Dell・Inspiron530Sで上手く認識されない
典型的症状だったんです。
 この、Port欄には、「LPT1」と出てほしいわけです。
おっちゃんも、みんな、こうなってしまうんです。
ByteBlasterのドライバは、ちゃんとインストールしてあるのに、こうなります。

 それで、この「Kernel mode driver not installed」で検索して、
アルテラサイトのFAQを読んでみるとこのように書かれています。
ちょっと、引用させていただきます。

Altera版問題

 この、後半が気になりますね。
というのは、そのようにBIOS設定をしろと書いてありますが、
実は、DellのInspiron530Sは、マザーボードにパラレルポートが付いていないのと同時に、
BIOS設定にもパラレルポートの設定が存在しないんです。



【新たな仮説と実験】
 ここで一つ、新たな仮説が出てきます。
つまり、このQuartusⅡの「Hardware Setup」は、BIOS設定をチェックしに行き、
パラレルポートがECPに設定されていないことを判定して、このような措置をとるのではないかということです。

 パラレルポートが付いている、Athlon64機のBIOS設定を変えてみて、
PCI増設パラレルポート経由のByteBlasterMVの認識がどう変わるかを見てみると、
すぐになんか判りそうです。
それで、早速やってみますと、

 EPPに設定認識されました。
 Normalに設定認識されました。

そして、パラレルポートをDisableすると…
Altera版問題

 キました!!
Inspiron530Sと、同じです!

 元から付いているパラレルポートについてのみDisableし、
かつ、PCI増設パラレルボードのドライバは正常に働いているにもかかわらず、
認識されなくなりました。

 どうやらQuartusⅡの「Hardware Setup」は、マザーボードに対するBIOS設定を判定しているように思えます。
要するに、BIOS設定でパラレルポートをイネーブルに出来ないパソコンは、
他に使えるパラレルポートがあっても、それを無視してしまうという事のようです。

多分昔は、メインのパラレルをわざわざDisableにして、増設パラレルだけでByteBlasterを
使用するという状況は想定外
だったのかもしれません。

 きょうび、マザーボードにパラレルポートが付いていないパソコンは非常に多いですから、アルテラは、現状、

「マザーボードにパラレルポートが付いていないパソコンではByteBlasterは使えない」

という旨を目立つ所に明記すべきでしょうね。
 その上で、この問題を修正してマザーボードにパラレルポートの無いパソコンの状況に対応するかは、検討する必要があるでしょうね。
なにしろ、ものすごく増設パラレルボードを選ぶようなので、単にこれだけ修正したのでは、余計混乱を招く可能性がありそうですからね。


【さらなる問題】
 そして、ここまで伏せておりましたが、別の問題によって、
ByteBlasterは、更に私に、モチベーションの低下失望感を与えてくれました。
見てください。これを…
Altera版問題

あんなに私を喜ばせた、In-system Memory Content Editorが、
ByteBlasterMVから使えません
これは、ByteBlasterⅡを出してきて、やっても同じでした。
USB-Blasterからは、このパソコン環境でもちゃんと使えました

 はっきり言って、ByteBlasterと言うのは、壊疽に罹ったツールですね。
ユーザーがこいつを鞭打っていつまでも使い続けようとするのは、
ある意味残酷なことかもしれません。
これまで頑張ってくれたことに感謝しつつ、もう、そっと休ませてあげましょうよと申し上げつつ、
本日は終わりたいと思います。

 次回は、アルテラのFPGAで入門するにあたっての、別の道を考えたいと思います。
お楽しみに。



 *******************************
 DSOh!  大中庸生
       URL: http://dsoh.jp
      e-mail: ptsg@dsoh.jp

       SecondLife:Tsuneo OHare
 *******************************




Posted by 大中庸生 at 16:14│Comments(2)
Comments
Terasic Blasterを使えばいいと思います。
http://search.digikey.com/scripts/dksearch/dksus.dll?Detail&name=P0302-ND
Posted by Terasic Blaster at 2010年06月19日 18:20
Terasic Blasterさん、
 コメント、ありがとうございます!
そうなんです。
もう、やっぱりこれですよね!
 私は、Terasic Blasterそのものは実際に使ったことは無いのですが、2週間ほど前からTerasic DE0を”むしゃぶる”様に使っています。
おそらく、DE0のUSB-Blaster回路と、Terasic Blasterは同様の回路だと思うのですが、今のところ信頼性面の不安はまったくありません。おそらく、設計時期などから邪推しても、本家よりも高性能/高信頼性なのではないかと内心思っております。
 DE0自体も、かなり躾けの行き届いた”優等生”の印象です。SDRAMのクロックなども目いっぱい上げていいと思います。
 あ、あまり書くと、次回の本文とかぶりそうなのでこの辺で・・・
Posted by 大中庸生 at 2010年06月19日 20:20
 
<ご注意>
書き込まれた内容は公開され、ブログの持ち主だけが削除できます。