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

  

Posted by at

2012年01月22日

PTSGでLチカ ~JAPAN SUSHIへの道~ その1

【準備】

 いきなりですが、DE0をお持ちの方は
この.sofファイルをQuartusⅡプログラマから書き込んでみてください。

      ダウンロードファイル

 そうしまして、次にQuartusⅡの「Tools」メニューから

In-System Memory Content Editor
を起動します。

 「Hardware:」がUSB-Blaster[USB-?](?は普通は0)となっていることを
確認し、そうでなければ「Setup」ボタンを押してUSB-Blasterが使えるようにしてください。




【In-System Memory Content Editorスタンバイ】
In-System Memory Content Editorの準備が出来ますと
3つのメモリブロックがそれぞれ、
「SG7L」「SG7H」「GLED」というID名で認識されていることと思います。

「SG7L」というメモリは7SEG-LEDの下位2桁を、
「SG7H」というメモリは7SEG-LEDの上位2桁を、
「GLED」というメモリは10個のGreanLEDを、

それぞれコントロールするPTSGメモリです。


 In-System Memory Content Editorエディットウィンドウをクリックして
カーソルを置き、そこでF5キーを押すと、そのメモリ内容が読み込まれ、
表示されます。

「SG7L」「SG7H」「GLED」3つとも読み込んでみてください。
最初は全部、ゼロクリアされている状態だと思います。


 *******************************
 DSOh!  大中庸生
       Shop: http://www.dsoh.org/shop/
      e-mail: ptsg@dsoh.jp

       SecondLife:Tsuneo OHare
         Twitter:@DSOhnaka 
*******************************

  


Posted by 大中庸生 at 15:13Comments(0)

2012年01月19日

あけましておめでとうございます。

【新年のご挨拶、そして言い訳】
 みなさん、あけましておめでとうございます!そして、福は内!
 とまあ、お正月のご挨拶が遅れましたので、節分のご挨拶を先取りして
埋め合わせさせていただきました。

 と、申しましても、去年のように暑くなってから
新年のご挨拶になることも無く、なんとか1月中に出来てよかったと思います。

 とは申しましても、気がつけばここも半年以上放置していたわけですね!

「頻度を上げて更新させていただこうと思います。」

というのが、前の前あたりにチラッと今見えたような気がしたのですが、
見なかったことにして先に進めたいと思います。



【第0回 関西FPGA・DE0勉強会】

 早速ですが、先日、1月14日に大阪梅田で催されました
第0回 関西FPGA・DE0勉強会に参加させていただきました。

 その模様は、下記サイトにまとめられております。

週末のAndroid×FPGA勉強会にソフトウェア系の人々が集う

 実は、私もここで発表をさせていただきました。
私の題は、「嫁にも出来る画像処理スタートアップ」で、
まさしく、こちらで今までやってきた内容+その後の成果を
発表しようとしたわけですが・・・・(以下、後の項目の反省会【自己吊るし上げ大会】にて)
 それで、このブログも、なんとまあこのところ
半年放置していたにもかかわらず、過去最高的にPVが急増しておりまして、
それで、ビビって、あわてて出てきたという次第であります。

 読んでくださっている皆さん、本当にありがとうございます!
コメントとか、トラックバックとか、なんでもご遠慮なくお気軽に
して下さって結構ですので、よろしくお願いいたします。




【第0回 自己吊るし上げ大会】
 私は、発表のために40分と言う長い時間をいただきまして、

まあ、40分もあれば、あれもしゃべる、これもしゃべれる

とすっかり油断をしていて、ちゃんと計画的な準備をせずに、
リハーサルもせずに、PP資料も用意せずに、モノだけ持って行ってしまったわけです。
 私にとりましては、こういうプレゼンは3年ぶりくらいのことになるので、
ちょっと一抹の心配はあったのですが、
その3年位前には結構頻繁にやる機会があったりして、
PPを使用しない発表でも、わりと慣れているつもりで、
内心タカをくくっておりました。

 それで、発表をさせていただいてみて、そのちょっと心配だった
3年のブランクの影響はどうであったかと言いますと、ハッキリ言って、

「ここまで衰えたか!?」

ということに、自分でも愕然としたわけです。


 それで、結果的に、
嫁にも出来る画像処理スタートアップ
の話は、「嫁にもできる・Lチカ(+7SEG遊び)」ぐらいのところまでで
不覚にも時間切れとなってしまいました!!

 私の中ではすごく肝心な話であった画像処理スタートアップ」が
丸ごと飛んでしまったわけでして、画像処理スタートアップという
如何にも美味しそうなところにご期待くださっていた方には
ほんとに申し訳ありませんでした。
 これってもう、食堂で
新発売!美味しい特製きつねうどん定食
と書いてあるのを見て注文すると、先にご飯と漬物が出てきて、
きつねうどんが出てこないまま
はい、閉店です!
と言われたのと同じですよね!?


 しかしまあ、何でこの話に40分もかかるのか・・・・・。
私にはいまだよく解らないのですが、嫁さんに聞いてみると、

 
「このブログ読んでる人やったら、
何となくわかるんちゃう?」


と言われてしまったのですが、

そ・・、それって、どういう意味なんですかね??



【この後の予定】
 この後、明日くらいから、下記のようなお話を予定いたしております。


 1、とりあえず、PTSGを公開する。
 2、その後どうなったかと言う話をする。
 3、音楽系同人イベント「M3」に出店する話。


 とまあ、今日はちょっとだけ書くつもりだったのに、
またこんなことになっているわけですが、
とりあえず、嫁さんからはこんな風にも言われてしまいました。

 
「あんたが学校の先生やったら、
朝礼でたおれる子続出や!」




 *******************************
 DSOh!  大中庸生
      Shop: http://www.dsoh.org/shop/
      e-mail: ptsg@dsoh.jp

   SecondLife:Tsuneo OHare
     Twitter:https://twitter.com/#!/DSOhnaka
 *******************************
  


Posted by 大中庸生 at 21:48Comments(0)

2011年07月07日

ビデオ入出力基板 DSOh-NTSC(その1)

【GPIO-0に装着する】

 さてさて、アレは一体なんだったのか、
「なんだ?なんだ?」と、思っていただけましたでしょうか?

 実はアレは、DE0にNTSCビデオ入/出力機能を付加する、アドオンボードでして、
名付けて「DSOh-NTSC」と言います。
なんかえらく、ベタな名前で、ゲーが無くてすみません。

 それでは、順を追って説明させていただきます。
まずは、これをご覧ください。


 これはお馴染みDE0から、私が勝手にいまだに「ガラスの棺」と呼んでいるところの
アクリルカバーを外したところです。

 右手の方に二つの40Pコネクタ(BOXヘッダー)が並んで付いています。


 このように、内側が「GPIO 0」外側が「GPIO 1」という名称になっているコネクタで、
FPGA CycloneⅢのIOピンに直接繋がっている汎用ポートです。


 DSOh-NTSCは、GPIO-0用と、GPIO-1用があり、
今日はGPIO-0用を装着したところをご覧ください。

真上から見るとこんな感じです。


写真上のほうにある黄色いピンジャックが、
VOut0」と書かれている方がNTSCビデオ出力
VIn0」と書かれている方がNTSCビデオ入力です。




 ちょっとグネッ!と、変な形をした基板です。


 ご覧ください。
この、DSOh-NTSC-GPIO-0用は、
それを装着してもGPIO-1コネクタをを出来るだけ邪魔せず使えるようになっています。
単に、コネクタを隠さないだけでなく、ちょっとした回路であれば、
極力同一平面に併設できる基板を形成出来る様に、形を工夫してみました。

 それが、ヘンな形のそのワケなのでした。

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

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



  


Posted by 大中庸生 at 17:19Comments(2)

2011年07月05日

新年のご挨拶

【お披露目】
 みなさん、
 あけましておめでとうございます!
 という、新年のご挨拶もしないまま、
アレから半年が過ぎてしまいました。

 この半年の間には、本当にいろいろな事がありましたね・・・
うちの会社もまあ、いろいろと・・・・

 と、まあ、そこの部分を語っていると、またそれだけで
いつ果てることも無いオジさんの愚痴、自慢話、ウンチク、過去の栄光、シモネタの世界へと突入し、今年最初のブログ更新で早々と貴重な女子読者(妄想)を失う事にもなりかねません。
特に、「原発」とか、「JIN」とかといった、地雷ワードには努めて触れないように
注意して進めて行きたいと思います。

 ということで、今日はまず、この謎の半年間の成果をお披露目します。

これです! 


 さて、今年からは、あまり一度にたくさん書かず、
東電・保安員方式で、ちょっとづつ情報を小出しにして、
頻度を上げて更新させていただこうと思います。 (おっと。早速地雷にニアミスです・・・)
 ということで、本日はこれにして失礼いたします。


 


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

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


Posted by 大中庸生 at 13:54Comments(2)

2010年12月28日

MPIB超入門(その4)

【環境のチェック】

 私はほんとにもう、なんかちょっと説明しようとすると、
ついつい話が、あらぬ方に脱線して、ヘンなことばかり言っていて、
肝心の話が、全然前に進んでいきません…。 今日はちょっと、一気に行きますよ。

 年末・クリスマス合同特別企画です!     と言うほどのものでもありませんが…

 それで、いきなりですが、QuartusⅡはインストールされていますよね?

 もし、まだでしたら、DE0の付属DVDにも入っていますので、
是非インストールしておいてください。


 あ・・・、DE0は、お持ちですよね?

 実は、これからここでやる事は、DE0専用です。
もし、まだお持ちでない方は是非、
この円高のうちにDE0をご購入されることをオススメします。



【コンパイルチェック】

 では、早速、サンプルプロジェクトを起動して、
まずこれが、ちゃんとコンパイルできるかどうかをチェックし、
コンパイルから、実機にインプリメントして動作させるまでの手順を
確立させましょう。

 【手順1】
 下のようにプロジェクトフォルダの中にあります、
DE0_Default.qpf」という、”プロジェクトファイル”をダブルクリックします。




 【手順2】
 すると、このようにQuartusⅡが起動します。
ただ起動するだけでなく、既にこのプロジェクト用に起動しています。




 【手順3】
 なので、上の図で印を入れたボタンを押すと、下のようにコンパイルが始まります。




 これが成功すると、下のようになります。
失敗すると、何かがおかしいので、何がおかしいのか再チェックして
もう一度【手順1】からです。




 【手順4】
 手順3が成功すると、sofファイルが生成されていますので、
これをFPGAにダウンロードするためにプログラマを起動します。
DE0とPCをUSBケーブルで接続しておいてください。
そして、下のボタンを押してプログラマを起動します。




 【手順5】
 プログラマが起動したら、下図のようにUSB-Blasterが認識されていて、JTAGモードになっていることを確認して、「Program/Configure」にチェックを入れます。




 【手順6】
 そして、下図のように「Start」ボタンを押しますと
「Progress」バーが伸びて100%になり、特にエラーなどが出なければ、
DE0のFPGAに回路がインプリメントされ、動作を開始します。




 この時点で、DE0が購入時と同じ動きをしていれば、プロジェクトフォルダと、
その中のプロジェクト問題無く機能しているという事で、準備完了です。
あとは、何か新しいことをやるたびに、この【手順1】から【手順6】を繰り返すばかりです。




【遅くなったクリスマスプレゼント】

 さて、12月になって、「MPIBのインスタンシエーションをやります。」と言ってから2週間余りが過ぎ、いよいよ年の瀬も押し迫ってきまして、
もうすでに年末年始のお休みに入られている方もいらっしゃるかと思いますが、
実は、ここまでの話は前準備で、「インスタンシエーション」と言えるような作業は
ここからなんです。

 
ヒエェェ~~~~~~~ッ!
すみません!

 いつもなら、この辺りで、「それでは続きはまた次回を・・」と言ってしまうところですが、
今日はやります!
残業です!!


 で、残業してソースの変更を行うに先立ちまして、追加で要るものをまとめましたので、
まず、それをダウンロードしておいてください。
 私からの賞味期限切れクリスマスプレゼントです。どうぞ!



 どうすればいいかは、後で説明しますので、まずは持っておいてください。


【ソースの変更】

 それでは、いよいよ「DE0_Default」に大手術を施して、
ロゴ表示画面の間に、MPIBを挿入しましょう!
まあ、何でもそうですが、これから挿入!という時には、老若男女を問わずワクワクするものですよね。

 で、まず、DE0_Defaultのソースコードを見てみましょう。



この「DE0_Default.v」をテキストエディタで起動します。



 私の愛用テキストエディタ「秀丸」でして、しかも、こんな風な色環境になっています。
なんでも、こうやって文字を色分けしないと気が済まないのは私のビョーキのようなものなので、どうか、気にしないでください。
 もちろん、QuartusⅡのテキストエディタでかまわないのですが、
あの色分けは私には地味過ぎてしまって…。
私はもう、この色分けでないと、ほとんど回路が理解できないというところまで
病状が進行していますので、どうかこれでご辛抱してやってください。


 【ヘッダ部の変更】
 さて、まずは早速、このヘッダ部をまじめに記入しておきましょう。



元がこうなっているところを、このように変更しました。







 【SDRAMクロックピンの双方向化】
 続きましては、SDRAMクロックピン出力ピンとして定義されているのを、
双方向ピンに変更します。
これは、SDRAMに対してFPGAからクロックを与えるに当たって、FPGAとSDRAMを同一のクロックで動作させ、SDRAMに対して出力する書き込みデータや、制御信号との
タイミング関係を安定にするためです。
あ・・、ちょっと、ややこしい事を言いましたね…。
まあ、要するに、このほうが安心という事です。

 元がこうなっているところを…、



 このように変更します。







 【MPIB経由VGAデータ、追加信号の定義】
 これは、DE0_Defaultでは、ロゴマークの画像生成回路から、
DE0VGA用簡易DACに直接出力されていたRGB各4bitのデータを、
一旦MPIBに入れて、それを経由してから、改めてMPIBから取り出すように、
そのための新しい信号を追加定義します。

 元がこうなっているところを…、



 このように新しい記述を追加、変更します。







 【SDRAMクロックの追加生成】
 DE0_Defaultでは、SDRAMクロックや、SDRAM制御信号は、ピン定義はされていますが、
実際には使われておりません。
SDRAM制御信号MPIBがサポートしますが、SDRAMクロック作ってやる必要があります
クロック生成回路が基板上に別途存在していて、それがFPGAとSDRAMをそれぞれ駆動しているのが一番良いのですが、DE0ではFPGAの中でSDRAMクロックを作ってやるという考え方になっています。
まあ、コスト重視の設計ですね。
 で、今回はSDRAMを100MHzで動かしてやることにします。
無理の無いスピードで、かつ、しばらく使える周波数です。
SDRAMクロック周波数は、必要とされる単位時間当たりのデータ転送量(転送バンド幅)から、求められていくべきですが、
すみません。今回は、エイ・ヤぁ!の100MHzです。

 それで、そのクロックは、50MHzの基本クロックからVGA用の25MHzを生成しているPLLに、もう一本出力を追加して、100MHzを出してもらいます。

 それは、元がこうなっているところを、




このように変更します。




 このVGA_CLKというモジュールも変更の必要がありますが、
その件はのちほどフォローします。





 【ブランク制御信号の取り出し】
 DE0_DEfaultVGA_Ctrlという、VGA表示タイミング制御用のモジュールには、
oVGA_BLANKというブランキング期間を示す信号出力ポートがありますが、使われていませんでした。
折角ですので、MPIBにおける読み書きのイネーブル信号や、有効データ期間を示す信号として使わせていただくことにしました。

 元がこうのところ…、




 このように変更します。



 このためのワイヤーは、先に追加定義していた
VGA_Blankというワイヤーです。
また、次にも述べますが、このVGA_Ctrlモジュールは、
MPIBから出力されるSDRAM初期化終了信号のインアクティブによってもリセットされるようにしておきました。




 【VGA制御回路をSDRAM準備中リセット】
 上の項でVGA_Ctrlモジュールに行ったのと同様に、VGA_OSD_RAMという、
TerasicとALTERAのロゴを生成しているモジュールにも、SDRAM初期化終了でリセットが解除されるようにしておきました。

 元がこうのところ…、




 このように変更します。







 【MPIBインスタンシエーション】
 やっとです!
やっとここに到達しましたよ!
”インスタンシエーション”です。

 もう、色々言わず、さっさとインスタンシエーションしましょう!

 この、DE0_Defaultの一番後ろ、エンドモジュールの手前に挿入しましょうか。




 上の位置に、このように追加してください。




 ドッヒェェ~~~~~~~~~~ッ!!
 
しばいたろか!?

という、下品な関西弁が、ソコココに沸き起こったような幻聴が・・・


 いや、待ってください!ちょっとお待ちを!

私は、きっとこれでは、エビ蔵の二の舞な予感を
事前に察知しておりましたので、
例の、この、クリスマスプレゼント
ご用意させていただいてたのです!
ダウンロードしていただいた、こちらを、開いてみてください。




 その中に「MPIB_Append_Block.v」というファイルがありますので、こちらを開いてみてください。



 如何でしょうか!?
私の誠意が、ご理解いただけましたでしょうか!
これを、ばさっとコピペしていただければいいのです!


 さらに・・・


 この二つのモジュールを、下のように「v」フォルダの中に上書きコピーして下さい。




 VGA_CLKモジュールは、100MHzクロック出力を追加対応したPLLです。 
 CONSTモジュールは、In-SystemMemoryContentEditorから変更可能な「定数モジュール」で、MPIB設定を変更して表示位置などをコントロールするために使用するモジュールです。

 さて、ここまでできましたら、全て準備完了です。
【コンパイルチェック】の章の、【手順1】~【手順6】を改めて行ってみてください。

 エラー無く、【手順6】まで行きましたら、
VGAに繋いだモニタに、terasicのロゴ画面が表示されて、
LEDが左右するように、DE0がいつもと同じ初期動作をしているかどうかチェックしてみてください。
さらにまた、In-SystemMemoryContentEditorを起動してみてください。
以下の状態になっていますでしょうか?



 これが出れば、新しいMPIBforDE0_01のインプリメント上手くいっています。

 では、さっそく、7月27日のブログの内容をおさらいしてみてください。



 うまく行っておりますでしょうか?

 さて、これで来年は早々から、ちょっとMPIBで色々遊んでみることにいたしましょう。 

 では、皆さん、次回をお楽しみに。

よいお年を!

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

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





  


Posted by 大中庸生 at 23:54Comments(4)

2010年12月20日

MPIB超入門(その3)

【プロジェクト発足】

 プロジェクト

 などと言いますと、昔はものすごく大層なものを指して言っていたような気がします。
例えば、
「ロケットを打ち上げる」
であるとか、
巨大な建造物を作る
とか、
何億人と言う国民を欺く一大謀略計画を実行する
とか…、
なんかそういう、とんでもない事をしでかすことに巻き込まれることが
プロジェクト
であり、そのイチミのことを
プロジェクトチーム
と言うのだと、イメージしていたころがありました。

 そのような謎の組織”プロジェクトチーム”に所属することは、
中学生だった私にはあこがれの的でした。
私にとっての人生最初のプロジェクトは、そのころに4~5人の有志を募って結成した
とある秘密プロジェクトチームでした。
そのチームは、世の公序良俗を維持するという、至高のタテマエのもと、
道端側溝、あるいは山中ヘメグリ歩き
無造作に捨てられているエロ本を回収して
”秘密基地”に集約し、もう、泥水に濡れてベチャベチャになっているそれらを
必死で乾かし、ページを1枚1枚固唾を飲みながら
破れないようにひっぺがし
印刷を損ねることなくページ間の癒着を分離し、
いかに元通りに再現して、中の隠された情報を引き出すか…。
その情報に接触するためには、手に蛭が吸いつこうとも
組成の判らないヘドロ状物質に汚染されようが
あくなき真実の追求の手を緩めることは許されない、大変厳しいプロジェクトでした。

 それから35年の時を経て
今まさしく私は、またひとつのプロジェクトを発足させようとしています。
中学生のころに思い描いていたような、地下の巨大な謎の施設がその拠点ではなく、
自分のパソコンのハードディスクの中に、その拠点をチョイチョイと作るのです。

 すなわち、われらの秘密基地”プロジェクトフォルダ”です。


【プロジェクトフォルダの準備】

 プロジェクトフォルダ、つまり秘密基地は、一から建造すると
なかなか手間がかかりますが、「サンプルプロジェクト」という便利なものがあれば、
大変手間が省けて助かります。

 サンプルプロジェクト!?

 そんなお手軽っぽい言葉は、私が中学生のころには全く思いもよらなかった概念です。
おおよそプロジェクトなどというものは、どこか命懸けなものであり、
それが遂行されていく過程では、プロジェクトチームの何名かは不幸にして
命を落としたり、重軽傷を負ったりするのが常道のハズでした。
 それがどうでしょう!?
まるで地雷原につけられた先人の足跡のように、
サンプルプロジェクトなるものが
きょうびのこの世界には存在するのです。
そんな便利なものが折角あるのに、使わない手はありません。

 そう!FPGA入門付録基板時代にも、大変お世話になった
”サンプルプロジェクト”が、DE0にもちゃんと付属してくれているのです。


 まず、DE0付属のCDをハードディスクのお好きな場所にコピーしますと、
この様になっております。



DE0 Board”というフォルダがそうです。
さらにその下はこうなっており、



Demonstrations”というフォルダに、サンプルプロジェクト(デモプロジェクト)の
フォルダ群
があります。




このうち、”DE0_Default”というフォルダが、
DE0に電源を入れたときに動作しているFPGA回路のプロジェクトフォルダです。
今回はこれをサンプルプロジェクトとし、「地雷原の足跡」として使わせてもらうことにします。

ただ、元の足跡を自分の足跡に付け替えてしまうのは気持ちが悪いので、
これを、この様にコピーして使わせてもらうことにします。




名前も変えておきましょう。




そしてこの様に、自分の秘密基地化してしまいます。




でも、まだ中はこの通り、Trasicが作ってくれた秘密基地そのものです。
非常に整然としていて、どこに何があるかが非常にわかりやすい状態です。
昔の私のエロ本基地とはえらい違いです。




この「V」というフォルダを見てみますと、この様に、
色々なモジュールのソースコードが整理されて収められています。



折角、整理整頓されたプロジェクトフォルダなので、
これを散らかさないように、行儀よく、
ダウンロードして解凍したMPIBのフォルダ
ここにコピーして入れましょう。




さて、これで一応、プロジェクト推進の秘密基地が形になりました。
では、見ている人が居ないかどうか、周りをよく確かめてエロ本・・・・
じゃなく、ソースコードを弄くっていくのをはじめましょう!


では、次回をお楽しみに…

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

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


  


Posted by 大中庸生 at 23:38Comments(2)

2010年12月12日

MPIB超入門(その2)

【やっと再登場】

 もう、突然、4ヶ月以上も更新をせずに姿をくらましてしまい、すみませんでした。
このブログを表示させると、いつ見ても

「11月まで経営がもつのか…」
 「う~ん・・・・」


と言うのが表示されてる状態で、はや4ヶ月半…

    仮にも企業経営者が実名でやっているブログが、これでいいのか・・・

と、言うことはさておき、

その問題の11月が過ぎて、12月になって
こうやってノコノコ再登場したと言うことは、
お蔭様にて、なんとか年は越せそうになりましたと言うことです。
つきましては、まず、この8月、9月、10月、11月にお仕事を下さり、お納めさせて下さったお客様には、この場をお借りしまして、二つのお礼を申し上げます。

 〇、この不景気にお仕事を下さり、本当にありがとうございました

 〇、このブログ用に作りましたところの、わが”PTSG”を、
  お納めする製品の中に実際に組み込ませていただいたり、
  ボードテストに使わせていただいたりなど、「実戦投入」させていただいた中で、
  これを、実用に耐えうるところまで鍛え上げることが出来ました。
  
  お客様の製品の中で、現在PTSGは、縁の下の力持ちとして機能しております。
  例えば・・・
  
   ・、SDRAM-フラッシュROM間のデータ転送制御
   ・、多種類の特殊表示機の表示タイミング制御
   ・、シリアル通信で64chの画像を出力同期を乱さずに切り替える制御
   ・、シリアル通信の速度変換
   ・、スイッチ、数値表示とシリアル通信制御
   ・、開発、試作させていただいた画像I/Fボードの機能テスト
  

  上記におぼえのあるお客様、本当にありがとうございました



【MPIBのインスタンシエーション】

 さて、そのようにして、しばらく失踪していた間に発展を遂げたPTSGなのですが、
4ヶ月半前から放置されている話の続きを、まずしなければなりません。

  MPIBを如何にDE0に組み込んで、前回のようなことを行わせるか、

つまり、MPIBのインスタンシエーションについてのお話です。

 このごろよく、「インスタンシエーション」と言いますが、
昔は使っていなかった、今風な言い方なので、実は私もその場の雰囲気で使っているだけで
正確な意味がわかりません。
エキサイト翻訳で「instantiation」を訳してみますと、「具体化」と出ます。

 具体化・・・・・?
う~ん・・・、何となく、ちょっとしっくり来ないですね。

 つまり、MPIBというものは、元は一つですが、設定等によって、色んな仕事をします。
その仕事を実際に出来るように準備してやる事で、要するに”具体化”です。
う~ん・・・、余計わかりにくいかも・・・


 MPIBは、相変わらず、下記サイトからダウンロードできます。
   ↓
 http://www.dsoh.jp/FreeMPIB/
   ↑
 MPIBというものは、今、ここに一つだけあります。
しかし、ここにあるMPIBは、あくまでここにあるだけであって、
これが何か仕事をしているわけではありません。
 MPIBに仕事をさせたいかたは、まず、これをダウンロードして入手することが必要です。
そして、この入手したMPIBを使えるようにしていきます。
その時に、どんな動き方をさせるかをユーザーの皆さんが、色々と設定をして
決めていきます。
その設定や、使い方次第で、MPIB色々なところで、色々な働きが出来る
ようになります。この、多数のユーザーの皆さんが、
それぞれのところで使えるように準備すること。
これが、インスタンシエーションです。

   ※間違っていたら、突っ込んでください。


【ダウンロード】

 まあ、何はともあれ、まずはそのためにはダウンロードからはじめないといけません。
まずは、ここにレッツゴー!です。

 http://www.dsoh.jp/FreeMPIB/


 で、さて、このダウンロードページに行って見ますと、
のっけからイヤなるような、ややこしいことが書いてあったります。


 

 しかし、書いた本人が言うのもアレですが、まあ、あまり気にしない事です。
要するに、
 1、無料
 2、商利用OK
 3、ソースはヘッダ以外改変OK
 4、再配布OK

と言うことです。

ただし、
 1、著作者は大中、MPIBの商標権者はDSOh
 2、何があっても使った人の自己責任 
ですよ。

と言うことが、ことさらにクドクドと、

ほんとにいいんですね?

と、しつこく念を押すように書いてあるだけです。
で、それでよければ、「I Agree」ボタンを押して、ダウンロードページに進んでください。




 そして、この「MPIB-IPソースコード群(lzh 0.44MB)」を、クリックしてください。




 保存ボタンを押し、ご希望のフォルダに保存してください。




 まあ、とりあえず、一旦デスクトップに置きましょうか。




 ファイルはLZH圧縮されていますので、
「Microsoft 圧縮 (LZH 形式) フォルダ」等で解凍してください。




 解凍して、この様なフォルダにしてください。




 フォルダの中には、この様にMPIB-IPのソースコード群が存在します。

 



 復帰初日、まず本日は一旦ここまでで・・
続きはまた次回をお楽しみに。(今度は近日です。)


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

       SecondLife:Tsuneo OHare
 *******************************
  
タグ :MPIBPTSGDE0FPGA


Posted by 大中庸生 at 13:40Comments(0)

2010年07月27日

MPIB超入門(その1)

 【「MPIB」とはなんぞや?】

 という話は、語りだすとそれだけで「(その18)」位まで一気に行ってしまい、
今のペースですと、その話が終わるのは11月頃になってしまう計算になります。
しかも、「(その12)」くらいまでは、自慢話と、宗教的ウンチクと、下ネタ
エンエンと続くだろうと言うのは想像に難くありません。
こうなりますともう、10月ごろには1日のPVが、「3」とかになっていて、
顕著な読者離れ状態に陥ってしまうのは火を見るよりも明らかです。

 しかし、それよりも何よりも問題は、11月まで経営がもつのか…
と言うことですが、そう問われると、私としては今のところ

「う~ん・・・・」

としか言いようが無いというのが現実で、これはもう、一刻も早く本題に突入するに限ると、
判断せざるを得ません。

 従いまして、「MPIB」とはなんぞや?と言うことについては
ここでは、3つだけ羅列するに留めたいと思います。

1、MPIBとは、マルチ・ポート・イメージ・バッファの略号です。
2、MPIBとは、画像用フレームバッファシステムを構築するためのIPです。
3、MPIBは、内蔵デュアルポートメモリ付きのFPGAと、SDRAMと、クロックがあれば構成できます。




 【MPIBを埋め込んだDE0】

 ED0をお持ちのかたは、以下のSOFファイルMPIBforDE0_Default01.sof)をダウンロードして、コンフィグレーションしてみてください。

 http://dsoh.jp/PTSG/MPIBforDE0_Default01.sof



 【MPIB機能その1・ウィンドウ操作】

 上のSOFファイルをUSBからDE0に書き込むと、どうなりましたでしょうか?
おや?と、思われたかもしれません。



「いっこも、なんにも変われヘんやん!?」

と…

 その通り、見かけは何も変わりません
変わらないはずです・・・
もし、変わったかたがおられたら、なんか問題が起こっているので、
そのまま我慢して、もう少し待ってください。

 でも、内部は大きく変わっています。
どこが変わったかと言いますと、Terasicのデモ画面は、以前はTerasicのサンプル回路
VGAに対して直接出して
いました。しかし、このSOFでは、Terasicのサンプル回路と、VGA出力の間にMPIBが挟まっています。
つまり、この度のTerasicのデモ画面はMPIBによって一度SDRAMの中に書き込まれてから、再度、MPIBによってSDRAMから読み出されて表示されています。

 さて、必要も無いのに、この様なまどろっこしい経路を経て表示させて、
一体何の得があるのかと言われますと、これが、実に様々、数々の得があるわけです。
今日はその一つ目、ウィンドウ操作のお話です。


 まず、MPIBforDE0_Default01.sofDE0に書き込まれたら、このブログではすっかり御馴染みの、In-System Memory Content Editor
起動してみてください。

 

 下のようなのが現れたと思います。
 

 もし、現れなかったら、上の赤で囲った部分がUSB-Blasterになっているかどうか、確認してみてください。

 まずは、8種類あるパラメータを、一つ一つその上でF5キーを押して読み込んで見ましょう。

 

 この様な数値になっていますでしょうか?
もし、なっていなければ、デモ画面の表示が変なことになっていると思いますが、そのときはとりあえず、ここの数字を図の通りに入力しなおすと回復します。
 入力はそこにカーソルを持っていき、数値を打ち込んで、F8キーです。


 さて、ここでまず、Terasicのデモ画面は、今一体どういうところに書かれ、そして読まれているのかということを説明します。

 まず、SDRAMの中に、「フレーム」と呼ぶ、一つの画面を表す入れ物が用意されています。今回のSOFでは、フレームは1024ピクセルx1024ピクセルの正方形の画面です。

 

 Terasicのデモ画面は640×480ピクセルの画像なので、これが1024ピクセルx1024ピクセルの画面の中のどこかにスポッと収まっているわけです。
で、どのように収まっているのかというと、今は下のように収まっています。

 

 この、書き込む位置を決めているのが、以下の4つのパラメータです。

wAHP → 水平ポジション (今の値:0)
wAVP → 垂直ポジション (今の値:0))
wAHL → 水平ピクセル数 (今の値:280h → 640)
wAVL → 垂直ピクセル数 (今の値:1E0h → 480)

 ※In-System Memory Content Editorでは数値は16進数で表現されます。


 ここでまず、試しに書き込む位置を変えてみましょう。
水平ポジション(wAHP)に、16進数の140h(つまり10進数の320)を入れてみます。
140と書いて、F8キーです。

 

すると…
ほらっ!



このように、書き込む位置右の方に320ピクセル移動します。
左側に残っているのはさっきまでその位置に描かれていていた画像です。

 これは、SDRAMの中の1024×1024ピクセルのフレームの中では何が起こっているかと言うと、多分、こんなことになっているハズなわけです。


しかし、今はまだ、表示できるのは、1024×1024ピクセル中の、640×480ピクセルの領域で、フレームの一部分だけです。
それで、どの部分が表示されているかと言うと、左上のピクセルが(0,0)の位置から始まる640×480ピクセルの範囲なので写真のような表示となっているわけです。


 ちなみに、書き込み位置を垂直方向にもずらしてみましょう。
垂直ポジション(wAVP)に、16進数のF0h(つまり10進数の240)を入れてみます。
F0と書いて、F8キーです。



さて…、どうなるでしょう?



おおおっ!
こんなことに、なってしまいました…

これは、今どうなったかと言うと、水平方向に加えて、さらに垂直方向にも書き込み位置がずれたために、フレームの中では、多分、こんなことになっているのでしょうね。



 なんかこう、ALTERAは、「ALTE」などと、中途半端な状態で3つも表示され、肝心のTerasicのロゴは、欄外に押し出されてしまいましたね…
こんなままだとあまりに申し訳ないので、何とかして差し上げなければなりません。

幸い、私の予想が正しければ、画像の見えない部分もフレームバッファに残っているはずなので、表示位置を移動させればいいということです。

 この、表示位置を決めているのが、以下の4つのパラメータです。

rAHP → 水平ポジション (今の値:0)
rAVP → 垂直ポジション (今の値:0)
rAHL → 水平ピクセル数 (今の値:280h → 640)
rAVL → 垂直ピクセル数 (今の値:1E0h → 480)

 では、早速移動させて見ましょう。
まず、表示位置の水平ポジション(rAHP)に、16進数の140h(つまり10進数の320)を入れてみます。
140と書いて、F8キーです。



すると…



おおおお!
アルテラロゴの復活です!

さて、次はTerasicのロゴ救出のために、
さらに表示位置を垂直方向に動かします。
垂直ポジション(rAVP)に、16進数のF0h(つまり10進数の240)を入れてみます。
F0と書いて、F8キーです。



さあ、無事復帰しますでしょうか!



 来ました!
これで、また元通りです。

 おっと!
見かけは元通りですが、実は、大きな違いが一つあります。
今見ているこのデモ画面は、つまり、こういうところからの表示になっているのです。




 8つのパラメータには、どんな数値を入れていただいても構いません。
多分、やってみると画面がぐちゃぐちゃになったりしますが、壊れることはありませんので、泥んこ遊びのつもりで、ぐちゃぐちゃを楽しんでみてください。
 でも、数値と動作の間には、必ず意味と、理由があります。
その数値で、なぜそのような動作になるのか悩んでみていただけると楽しいかと思います。




 では、また次回をお楽しみに!



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

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

  


Posted by 大中庸生 at 18:53Comments(2)

2010年07月21日

諸事その後(その2)

【アルテラ・プログラミングツールその後】

 いやはや、ほんと色んなことを、そのまま置き去りにしておりました。
しかし、このプログラミングツール問題は、正直、気分的にはもうどうでも良くなって来ました…

 おっと!そんなことを言ったらいけませんね!

 でも、なぜそう思えるかというと、
一つには、これからしばらくDE0をベースにした話で、
当分やっていくことになるだろうという気がするからです。
DE0はUSB-Blaster内蔵ですので、プログラミングツールのことは気にしなくていいのは、
前にも申し上げたとおりです。

もう一つには、よくよく調べると、すでに大勢の人が、USBプログラミング環境をどうするかと言うことを手がけておられると言うことが判ってきたためです。

それをいくつか、ここでは紹介させていただこうと思います。


◎、Terasic Blaster

http://www.terasic.com.tw/cgi-bin/page/archive.pl?Language=English&CategoryNo=&No=46

 これは、DE0の製造元であるTerasic社が販売している、
USB-Blaster互換製品です。
というか、もう、ほぼUSB-Blasterそのものですね。
これは、去る6月19日に「Terasic Blaster」さんが、コメントでお教えくださったものです。
価格が、現在デジキーで購入すると7500円となっています。
Terasic社の通販では50ドルとなっていますので、今なら5000円を切っているのでしょうか?

 もし私が今からもう一台USB-Blasterが必要になったとすれば、純正USB-Blasterではなく、
これにします



◎、USB Blaster自作

 実は、パラレルポート接続のByteBlasterというのは、アルテラから回路図が公開されており、
買えば高いのですが(15000円くらい)、簡単な回路なので、大抵の人は自作しておりました。
また、トランジスタ技術に昔、付録として基板が付いていたりしたこともあったので、純正ではないByteBlasterというのは、普通に見かけるものでした。
 アルテラに限らず、ザイリンクス、ラティスにおいても、パラレル接続のプログラミングツールは回路図が公開されております。

 USB-Blasterは回路図は公開されていないのですが、一部のかたが、
色々と工夫をして互換品の自作を試みておられるのを、何軒か見つけました。
これは、面白いと思いますので、チャレンジ精神旺盛なかたは、
以下のキーワードでネット検索してみてください。

  ・、USB Blasterの自作方法

  ・、USB Blasterの自作例のご紹介

  ・、USB-Blasterもどき



◎、J-Writer (ジェイ・ライター)

http://www.tokudenkairo.co.jp/jwriter.html

 こちらは、特殊電子回路株式会社さんの製品です。
これは、XILINX、ALTERA、LatticeのFPGA/CPLDに対するプログラミングが可能な
JTAGプログラマです。
約10000円で、主要3社のFPGAに対するUSBプログラミング環境が得られます。
 ただし、メーカー標準のツールソフトではなく、独自ソフトを使用するようです。
 特殊電子回路株式会社さんは、JTAGを得意とされているベンチャーメーカーさんのようで、
HPを見ていると、非常に研究熱心に努力を継続されているようで、他にも面白いものがたくさんありました。
 「嫁さんにFPGA設計を!」という私と、こちらの「なひたふ」社長さんの目指すところには、共通なものが多々あるような気がし、HPに書かれている様々のご意見には、共感するところが多くありました。



 以上、色々ある中から、特徴的な方向性のあるものを紹介させていただきました。
 はっきり言って、メーカーがプログラミングツールという首根っこを締め付けて、
高いものを売っているから、このようにユーザーがもがいているのだと言うことです。
FPGAメーカーが、自分ところは顧客志向の商売をしていると言うのなら、
この現実を今一度よく考えて作り直せぃっ!! 新展開してくださることを切に望みます。




【MPIBフリー化その後】

 さて、神様から言われましたところの、MPIBフリー化ですが、
今日までのところで、一応、DE0に入れて色々いじれるようになっております。
初期化に関するあたりが、かなり使い難いものだというのが判ったので、
その点も修正を加えました。
 あとは、使い方を説明するものが、非常に不十分な状態です。
なので、「SDRAMについて、やります!」と、コメントでも約束しましたので、
次回から、このブログで、PTSGに絡めながらMPIBもやっていきます。

 次回はMPIBの「入門」をやります。
どうぞ、お楽しみに…



【PTSGその後】

 おっと!
これを、飛ばして、終わってしまうところでした。
月日の経つのは、あっ!という間で、このブログの主人公であるPTSG
最初に出てきてから、もう2カ月近くになろうとしているんですね…。

 こっちは今、嫁さんが、触っているところです。
DE0のLEDの点灯パターンと、7セグメントLEDの表示シーケンスを、
PTSGを使って模写するという練習をしています。

 これが出来ますと、DE0のデフォルトサンプル回路が、一見同じ動きのままで、
うちのPTSGとMPIBを使用した回路に置き換わります。
そうしますと、私としましては、何の気兼ねもなく、
プロジェクトフォルダを丸ごと公開して、
ここをご愛読くださっている数少ない皆さんのうち、更にその中のDE0ユーザーのかたに
心行くまで触っていただけるようになります。

 ああ・・、早くここまで持って行きたい・・



【セカンドライフ・「日暮里支店」その後】

 いま思い出したのですが、これはもう、
まったく、ほったらかしになってしまっています!
そう言えば、もうすぐ、次の土地代の支払い日が迫ってきていますね…。

 こっちはどんなことになっているか、ちょっと覗いてみますと
せっかくこのような立派な看板も作っていただいているというのに、



土地の方は、まだ、こんな原っぱのままです。
原っぱに、庭を作ろうとして並べてある門が・・・・



これこそまさしく、
Field Programing Gate Array!
 ナンチャッテ…



 ああ・・、何とかしないと、オヤジギャグにもなりませんな…


 では、次回をお楽しみに!



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

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


Posted by 大中庸生 at 20:10Comments(2)

2010年07月15日

諸事その後(その1)

 さて、「この話はその後どうなったのか?」と言う、
今日はそういう積み残してきたものの話です。



【嫁さん、その後】
 このブログの影の番長あ、主人公、「嫁さん」のことが、ここ何週間もの間、
すっかり置き去りになってしまっているという、えらい事に気づきましたので、
まずはそのお話から!


 まず、嫁さんは半田付けがそれなりに出来るようになってくると、
半田付けモチベーションが高まってきまして、
半田付けを必要とする組み立てキットをそこらじゅうから経費で買いあさりまして
しばらくの間、いろんなものを作っておりました。

まず、これを皮切りに…


これとか、

これとか、

これとかです。


 驚いたことに、緑のロボットビスやナットを撒き散らしながら
歩き回ったことを除いては、基板部はほぼノートラブルで動作しておりました。


 それから、この計画の進捗は、その後どうなったか…
---------------------------------------------------------------------------------

---------------------------------------------------------------------------------

 いろんな紆余曲折を経ましたが、まずまず、終了できました。


 一つ変更したのは、「嫁4」が、「第8章 応用回路設計のための第一歩」を読みながら
となっていましたが、いざそれをやろうとした嫁さんのほうから、
「この章何したらええかわからへん!」
とのご指摘がありました。CQ出版社さん「FPGA入門」を確認すると、
確かに基板回路の説明の章だったので、急遽、第5章と、第6章
やってもらうことにしました。

第5章:「ハードウェア記述言語によるFPGA開発チュートリアル」
第6章:「回路図によるFPGA開発チュートリアル」

です。

 ここははじめ、HDL記述の説明や、回路図によるFPGA設計の章と思っていたのですが、
記述や設計と言うよりは、ラティスツールのチュートリアルの章になっていました。
 しかし、「チュートリアル」と油断をしておりますと、これが、実は大変な苦労の始まりとなりました。

 何度やっても何かしらうまく行かないという、その原因を根気強く探って行って、
一つ愕然としたことは、嫁さんの
ファイル」、「フォルダ」、「ドライブ
と言うものについての概念が、極めて希薄であると言うことが判りました。
嫁さんは、もう何年もパソコンを使っているのに、まさか、今さら、こんなことが理解できていなかったとは、夢にも思っていませんでした。 
 しかし、そう考えると思い当たる節はあります。
きょうびのソフトと言うものは、だいたい、何がしかのファイルの在り処について、
ユーザーが意識して管理しなくても良いように出来ています。

 チェック1
 超入門者は、「ファイルの所在」という問題について、概念すら持っていない可能性がある。

 これが、私の発見です。
そこで、下記3点を重点的に意識して進めてもらうようにすると、これでまず状況はだいぶ良くなっていきました。
1、プロジェクトフォルダはどこなのか、メモして常に意識しておく。
2、マイコンピュータで、ファイルのタイムスタンプを常に確認する。
3、ファイル選択ダイアログが出たら必ず「▼」ボタンを押して、
  どこのフォルダなのかを確認する。



 あと、第5章においては、コンパイルが終了して、FPGAにダウンロードまで行うも、LEDが点滅しないと言うことがしょっちゅう起こりました。
この原因は、大体これでした。


 FPGAデバイス選択がでたらめのまま次に行ってしまうというのが、クセになっているようでした。

 これはもう、必ずこれを出して全項目をチェックすると言うのを忘れないように、
そのクセを矯正してもらうほかありませんでした。



 さて、第6章は、回路図入力の練習になっていて、これもなかなか楽しめました。


まあ、はじめはこのように、CAD入力がヘンなのもさることながら、左にちょっと覗いているファイル管理は、何やら恐ろしいことになってそうだったものが、



徐々に回路図も何とかちょっとづつ形になるようになってきて…



大体、このようにまともに入力できるようになるころには、自然とファイル管理や、
デバイスセッティングもきちんと出来るようになり…



そうすると、このように、コンパイル~ダウンロードもスムーズに行ける様になり、



LEDも、ちゃんと点滅するようになって、



マルツパーツ館さんのサンプル回路のリコンパイルや、ダウンロードもこの通り、スムーズに出来るようになったころには…



FPGA入門も、もうすっかり、よれよれで…



CQ出版社さんに見てもらったら、きっと編集のし甲斐を感じていただけるのではないかと…



 結局、ここに至るまでに、第5章と第6章を、少なくとも30回は繰り返し反芻しておりましたので、これが嫁さんにとっての、「素振り2000回」になったのではないかと思います。


 それでは、次回をお楽しみに!


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

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


Posted by 大中庸生 at 12:14Comments(2)