2009 年 7 月 のアーカイブ

本格的に始動

2009 年 7 月 8 日 水曜日

さーて夏休みの予定

宿題→コピペまともにやる

レスキューロボの半田付けー一日?

レスキューロボの設計ー一日?

レスキューロボのパーツ切りだしーCNCが数時間でやってくれる

CNCのCADデータ製作ー一時間?

レスキューロボ組み立てー一日?

FPGAのコア製作ー数週間

1:PSP LCD Controller

2:その他ハードの設計

3:GPU

要はレスキューロボ製作に3~4日ですか。夏休みは6週間。内、2週は外せない用事(合宿とか休みになってた分の授業とか)。大体、三週間FPGAに明け暮れると。いいですね。最高の青春ww

アルテラマスターPさん。コメントありがとうございます。コミケに行く予定なので、FPGA技術を参考にさせていただきたいと思います。

執筆活動

2009 年 7 月 6 日 月曜日

ここまでできた。→book2

ちょっとカリキュラム変更してマイコン入門、FPGA入門以外は全て書きました。

もういっそのことこっち本業にしようかww

それはそうと、デジタル回路とかパワー回路にまでなってくると数式だけで表すのには無理がある。texに絵を入れるコマンドはあるのだがそれはそれでかなりめんどい。

もうそろそろ絵なしのごまかしも効きそうにないし、何しろ自分が疲れるww

ってことで付属図録も作っていきます。

さーて、マイコン入門とFPGA入門書いて、図録作ったら応用編が山のようにあるぞーww

必殺小ネタ集ー素朴な疑問

2009 年 7 月 4 日 土曜日

NAND Flashって何度フラッシュできるの?

素朴な疑問ww

ちなみに、不揮発ROMのことをフラッシュと言いますが、それは、ブロック単位でデータを消したりするのがフラッシュみたいだからだそうですww

今日、保護者会があったそーな

で、みんなが楽器に手を出し始めて、親が、そういうのやって脱ヲタしろよと言ってきたわけですよ。

それって最近のアニメに流された人丸出しじゃないですかww

そこで、言い訳

自作楽器ならまだましかな

自作楽器のネタなんていくらでもありますよ。FPGAでシンセとかNE555だけで作る音源集とか。もちろんアノ楽器もww

ちなみに音符読めないけどそこは自作のシーケンサに任せてww

ここでも素朴な疑問。

シーケンサで演奏したら、それはシーケンサを作った人が演奏したことになるのですか?

ま、そうやってアナログ回路と戯れるのもいいんじゃないですか

FPGAについて基本的なこと 其の二

2009 年 7 月 4 日 土曜日

で、まあ、前回みたいな感じでハードは終わり。

中身ですね。中身はブロックダイアグラムかHDLでかきます。

ブロックダイアグラムというのは、その名の通り、ブロックのダイアグラムです。回路図を書くようりょうでFPGAの内部を作っていきます。

一方、HDL(ハードウェア記述言語)は一種の言語です。そのうち、VHDLとVerilogHDLがあります。どちらも言語には変わりないのですが、文法は全然違います。どちらがいい?っと言われると、、、人によるのでは?

で、そこら辺のことはAlteraのQuartusがやってくれます。ダウンロードまで。

と、ここまでいろいろ語ってきましたが要はFPGAは何がいいかというと

中身が自由

ピン配置も自由

ってことです。ピン配置自由なのでかなり基板がきれいに出来ます。

FPGAについて基本的なこと(Altera布教中)

2009 年 7 月 3 日 金曜日

ここまでいろいろ語ってきましたがそもそもFPGAって何って方がおられると思うので、いろいろ語ります。

FPGAとは何でも出来る夢が詰まったICです

なぜなら、FPGAというICは内部構造を好きに書き換えられます。ってことは、自分オリジナルのICが作れるってことです。ってことは、自分がやりたい処理専用のICが出来るってことです。ほら何でも出来るでしょ♪(もちろんFPGAの性能で制約はあります)

で、これと同じようなやつでCPLDって奴がいます。

どちらもPLDと言うグループの中にあります。その中で分類すると

FPGA:大規模だがコンフィグROM必要。

CPLD:小規模だがコンフィグROMいらず。

コンフィグROMってのはPLDの内部データをいれとくROMのことです。マイコンで言うプログラムROMみたいなもんです。

僕はAltera信者なんでAlteraで説明すると

FPGA:

Cyclone/CycloneII/CycloneIIIがある。コンフィグROMはEPCSってのを使います。

CPLD:

MAX/MAXIIです。これ単体で動作

で、問題は書き込み。内部データをパソコンからダウンロードする場合に、もちろんダウンロードケーブルを使います。で、そのダウンローダはByte BlasterMV/Byte BlasterII/USB Blasterってのがあります。USB Blaster以外はパラレルポートで接続ww

パラレルポートついてるパソコンなんてそうそうお目にかかれませんよww

ちなみにUSB Blasterは40000円ぐらい。互角品が10000円ぐらいです。ま、これ一台でNiosのデバックも出来るなら安いもんですけど、学生の身分ではもちろん高い買い物ww

で、解決策

Byte Blasterは両方とも自作可能。で、USB BlasterはMAXを使ってます。要するに、Byte BlasterでMAXにUSB Blasterのデータを書き込む、っと言うわけです。だれかにパラレルポート借りてくださいww

もしくは

マイコンなんかでエミュレート。しかし、こちらはソフトで実現してるので遅いようです。

もしくは

PCカードーパラレル変換ってのが10000円ぐらいで売ってるっぽい。でもこれ買うならUSB Blasterでしょ。

って名感じで何とかするしかありません。

GPUについて一通りまとめ

2009 年 7 月 3 日 金曜日

はいGPUについてです。へぼいマイコンでもPSPのLCDを動かせるようにできるだけアクセラレータ使います。

まずは、機能の整理

:通常コマンド

・文字生成&サイズ指定&その場所&文字の色

・図形生成&座標指定&色指定

・レイヤー操作

:特殊コマンド

・ウィンドウ生成

・拡張動画命令

はい。かっこよさそーな名前がズラリww

必要なハードは

SRAM4Mbits

SRAM or SDRAM(容量は未定。どの程度の演算をさせるかによる)

FPGA(Cyclone)

はい説明していきます。一番上の二つは特になし。三つ目のレイヤー操作、というのは、文字や図形を重ねたときに、どちらを上に持って行くのか、とか色は加算or乗算orオーバーレイ、とか、レイヤーを消すとか、レイヤーを動かすとか、を決めるコマンドです。よって、文字や図形にはすべてレイヤー番号を指定していくわけです。ウィンドウ生成は、GPUに内蔵さしたウィンドウの画面を描写さすだけです。もちろんサイズ指定で。動画拡張命令はマイコンから動画情報orSDからの動画再生の場合の支援機能です。一応書いときます、が、使うかどうか不明。

もちろん、英字、数字、記号は全てASCIIコード内蔵です。さすがに漢字はちょっと、、、

で、描画時のコマンドは

:文字

\レイヤー番号:A 座標(x,y) 文字サイズ(z) 文字色(RGB) 文字内容(……)

:図形

\レイヤー番号:A 番号座標(x1,y1) (x2,y2) (x3,y3),,, 色(RGB)

:レイヤー操作

\コマンド名(削除、移動、合成) 対象レイヤー(:A) 各種コマンド(移動なら移動座標x,y , 重ねるならどういう方法で重ねるか)

:ウィンドウ生成

\ウィンドウ名(:W) ウィンドウサイズ(x,y) ウィンドウ配置場所(x,y)

:動画支援

\再生動画(…)

夢が大きくていいですww

出来るかどうかわかりませんががんばります。ってかもうロボでやることこれしかないしww

GPUとI2Cについての雑記

2009 年 7 月 2 日 木曜日

アイデアふくらましてます。

今日はGPUについて。

具体的にどうするか。画面データ(ビットマップ形式)を送らず、数値情報(主にベクトル)を解析して画面に出力させます。

まずそのために必要なメモリ。

画面用SRAM4Mbit

演算、データ蓄積用SDRAM

ここで、後者をSDRAMにしたのはただ単に安いからです。IPはいくらでもありますし、そこまで速度が必要というわけでもないので。

で、まずは、SDRAMからのデータを引っ張りまくる→アクセラレータで演算して、その結果をSDRAMに保存→ある程度貯まったらSRAMに放出。で、画面更新完了。この更新速度なんかは全てコマンドで操作できるようにする。つもりです。

描画コマンドは、文字生成&サイズ指定&その場所、ウィンドウ生成、図形データを直入力、レイヤー合成、、、ぐらいを考え中。

いやー、大変そうですけどおもしろそうですよね。僕はただ単にFPGAとVerilogで遊びたいだけです(遊びの範囲を超えてるような、、、)。

で、もちろんSOPC Builderで使えるようAvalon-Busに対応させます。

ほら、マイコン+FPGAになるはずだった物がFPGA一つに♪。しかも小型化&バスの速度というボトルネック解消ww

それと、オリジナルのI2C I/Fについて。

ピンは、CK,IN-DATA[0..6],Adress[0..6],OUT-DATA[0..6]にしようと思います。で、ACK取得は無視or自動化。CKは常にいれます。Adressに値をいれてるときにそのアドレスのデバイスと通信。IN-DATAでレジスタ値入力→OUT-DATAからスレーブからのデータがざくざく出てくる。

っとうまくいくように作ります。(正直、I2CなどシリアルインターフェースはFPGAの苦手中の苦手分野なんですけどね。低速だし、使う物なんで一応作ります)

いやー口で言うのってホントに簡単ですねww

はいはいこれからのことですね

2009 年 7 月 1 日 水曜日

さーてと、とりあえず、レスキューロボはホントに数時間あればできそうだ。基本は今までの回路に若干の変更を加えるだけ。

で、肝心のFPGAの方。とりあえず必要なIPコア列挙

NiosII ーあり

SRAM I/F ーあり

SDRAM I/F ーあり

NAND Flash I/F ーあり

I2C I/F ーあり

USART I/F ーあり

Timer ーあり

CMOS Camera I/F ーあるわけ無い。けどある可能性も若干。ITU565ならOK

PSP LCD Controller ーあるわけ無いww

PSP LCD GPU ーあったら作った人と一夜しゃべり通せそうww

ってことで、基板を作った後もお仕事は残ってるって訳です。しかもこれを冬休みまでに、、、

で、もちろん使うのはCycloneIII。前はCycloneIIにする予定だったんですが、ロジック数的にCycloneIIIの方がいいですね。Exposed Padであることは除いてww

ほんとにこんなことして僕って暇人ですねww

もちろん夏休みはFPGAに捧げます。

周りは東大行くとか京大行くとか阪大行くとか、、、そのために夏期講習どうしようとか、、、

俺も焦るべき?(今現在高一、高三になっても塾行く気はナシ)

担任の一言

「君の人生の目標が物作りなら高三でもロボ作れ」

もちろん☆やりますとも。しかも命令形ですかww

で、大学どこいこーか

1:マサチューセッツ工科大学 ーどうやっていくんですか?

2:チューリッヒ工科大学 ーどうやっていくんですか?

3:東京大学 ー今から本気で勉強すれば、、、でもそんなのむりっすww

4:東京工業大学 ーたぶんぎりぎりライン。

5:筑波大学 ー現実的ライン。ってか電気系の研究室多いし良いです

6:東京農工大学 ーここも同じく電気系の研究室多し

え?なんで京都と大阪がないかって(ちなみに私大阪在住)。ここ大切↓

名前で大学決めてんじゃねーよ。何を研究したいかで決めろよ!!

周りの奴らに一番言いたい言葉ww

大阪とか京都で僕がやりたい研究してるとこってあんまり無いです。はい。

たぶん筑波の工学システムぐらいかな。今の学力ならww

っと、高校生になるといろいろ考えないとだめで疲れるんですよ。そういえば、昔、いつも疲れた疲れた言ってた先輩がいたけどその先輩の気持ちが今ヒジョーに良くわかりますww