‘PLD’ カテゴリーのアーカイブ

ってかそもそもNiosIIについて雑記

2010 年 5 月 3 日 月曜日

すんません。早とちりしすぎました。

FPGAってICがあるんですよ。今巷で噂ですね。主にニコ技内で、、、

いやいや、日常生活面でも結構増えてきてますよ。

ってことは置いといて、

FPGAってのは、内部を書き換えられるICなのです。簡単に言うと、「デジタル回路講座」とかでやったようなANDとかORとかNANDとか、それがたくさん入ってて(ここまでは普通のマイコンと同じ)、それらを自在にユーザーが操れます。

ココまでの話ならば、「まあ、モータードライバのデコード程度にちょっと使おうか」とか「7セグデコーダ程度に使おうか」とかその程度しか用途が思い浮かばないと思います。

ふふふ、、、あまいあまい

マイコンなんかもFPGA内に作ることができる!!

これ聞いたらFPGAのこと無視できないでしょ。

しかも、自分で好きな機能を好きなだけ付加することができる!!

どういうことか、

前述の通り、内部を自由に書き換えれるので、CPUのコア入れて、そのCPUにはキャッシュを8k入れて、ついでに自分で作ったカスタム命令も入れて、USB I/Fを入れて、メモコンを入れて、I2Cを3ch入れて、UARTを6ch入れて、、、っというレベルで書き換えできるのです。

ポイントは

好きな性能のCPUをチョイス

自分で設計したオリジナルCPUもチョイス可能

オリジナルのカスタム命令をセット可能

メモリマップ、ペリフェラルも好きな分だけチョイス

これだと、必要な機能を持ったマイコン探しに時間を掛けなくて済みますね。また、必要ないピンの処理に困ることもありませんね。

でも、こんなに自由だと設計するの大変なのでは?

そんなことありません。

AlteraってFPGAベンダーなら簡単(私はここをものすごく推奨)。

GUIベースの画面でマウスを使って楽しく作れます。

で、このAlteraが自社FPGA用に開発したCPUがNiosIIです。

性能の悪い物から順にNiosII/e,NiosII/s,NiosII/f。でも、NiosII/eでも十分すぎる性能が出る。NiosII/fで最高速はSH-3並だとか、、、あ、ちなみに、デュアルコアだろうがクアッドコアだろうがリソースが許す限り構成可能。

ただ、良いことばかり見えても悪い面もある↓

・消費電力が普通のマイコンに比べ高め。

・最低必要部品が多い。FPGA本体+パスコンたくさん+コンフィグROM+JTAGダウンローダー+メモリ(無くても良いが結構キツイ)

・性能比で見るとよほど高性能マイコンでない限りFPGAの方が割高

・必ずしもタダで全てのIPが使えるというわけではない

何はともあれとりあえずはAlteraのHPへ行きましょう。

ザイリンクスユーザーの方ごめんなさい、、、

気になるようであれば、ザイリンクスってベンダーと、Latticeってベンダーも紹介しておきます。

NiosIIライセンスについて雑記

2010 年 5 月 3 日 月曜日

いろいろ調べたのでバックアップ。

今まで勘違いしてたけど、NiosIIにはライセンスが必要。しかし、ロイヤリティは不要。

要は、一回IP代払っとけば後は使い放題ってことです。

で、ここらへんが結構ややこしい。

まず、

NiosIIにはNiosII/e,NiosII/s,NiosII/fの三つのグレードがある。

そのうち、NiosII/eはライセンス、ロイヤリティともに不要。要は、タダで使いたい放題。コンフィグROMに焼くことも可能。

しかーし、NiosII/s,NiosII/fはライセンス必要。つまり、本格的に使いたければお金がかかる。その本格的にってのは、論理合成したデータをROMに焼くまで。じゃあ、本格的ではなかったら?それはタダで使える。

つまり、

NiosII/e→何しようがタダ

NiosII/s,NiosII/f→コンフィグROMに焼くならライセンスが必要。でも、データをFPGAにダウンロードならタダでできる。FPGA内にとどめることしかできないからFPGAの電源を切らなかったらデータはずっと残ったまま。(もちろんライセンスってお金かかりますよ)

まあ、評価ボードとかで軽く練習、程度なら困ることはありませんね。ロボットに載せるとか、オリジナルFPGA基板でニコ技的な何かを作るとか、そんなのだったらライセンスは欲しいところ。

IPってムズカシイ。でも、製作者さんの製作物を尊重する面でもちゃんと勉強しておきたいものです。

とある基板の部品目録もロールアウト

2009 年 9 月 17 日 木曜日

さてはて、暇なのでとっととFPGA基板のパーツリストを作ってしまいました。
一枚あたりFPGAとEPCSなしで2000円ちょいだと思います。ぱっと見で、、、
あとは、EAGLEのライブラリデータを新生させるのと、楽しいパターン配線です。
FPGAとEPCSが3000円ぐらい、基板が2000円(10枚ロット)ぐらいなので合計7000円ぐらい@一枚ですね。
基板を20枚ロットにすると単価が1000円くらいになります。
やぱり高いです。
と言っても他に下げるとこがありませんからねー。20枚ロットにしてコミケやニコ技、部内で消費するしかなさそうです。

使いたい、、、

2009 年 9 月 15 日 火曜日

使いたい。とりあえず使いたいStratix。またまた新型が出たらしいです。ってか82万LEってどうやったら埋まるんだ?モメリブロックは23.1Mbits。960個のDSPブロック。上には上がいますね。

http://journal.mycom.co.jp/news/2009/09/15/016/index.html

今度こそは、、、②

2009 年 9 月 13 日 日曜日

FPGA基板の構想を一日中考えてました。

まず、P板で注文するので大量に来る→汎用性のあるモノでないと困る(例えば、シンセ基板が20枚来ても正直困る&違うアプリを作りたかったらまた発注し直しで金かかる)

そして問題はどの程度の汎用性を持たせるか。まず、SDカードはプログラムを入れる可能性があるので絶対必要。また、秋月の300円液晶も、構想できるほぼ全てのアプリに使用、もしくはあった方が良いので必要。SDRAM、EPCSはいうまでもなく。数個のスイッチとLEDも付けときます。

ってことで何が必要か。考えられるアプリとは(括弧内は必要I/O数)

ロジアナ、オシロ ー LCD,ADC(10),コントロールI/O(4)

シンセサイザ、シーケンサ、メトロノーム、ドラムマシン ー LCD、MIDI(2)、DAC(4)、I/O(5)

ムービープレーヤー ー LCD,SD(5)

ちょこっとサーバー ー LCD,SD(5),Ethernetコネクタ(6)

です。必要なモノをオンボードにするのは難しそうです。サーバーだけのためにRJ-45のせるのもねーって感じです。ってことで、フレキコネクタかヘッダーピン数十本を拡張ボードへ送ります。拡張ボードは少量生産&仕組みが簡単なのでOLIMEか手配線にします。

つまり、LCD用のフレキと汎用I/O用フレキ二つ必要って事です。まあ、そんなたいしたことではないですが、、、

しかーし、

一番の問題はロボに使えない

この基板はどう考えてI/Oを引っ張ってもFPGAのI/Oが足りない。原因はSDRAM。あいつが40本近くI/Oを占領している。正直64Mbitもいらない。オンチップメモリで十分動く。ってことで、大規模なロボ(サッカーロボやレスキューロボ)はよっぽどI/Oを節約orこの基板を複数搭載しないと無理っぽい。もしくは新規にボードを作った方がよいかも、、、後輩ごめん、、、

でも、I/O少なくてパフォーマンスが必要なロボやFPGAの練習、その他小ネタ製作には重宝されるのでは?なんせ石の中身を変えれますからねww

さあ、今度こそ絶対☆に動けよww

今度こそは、、、①

2009 年 9 月 11 日 金曜日

今度こそは動けよ!!

FPGAの基板の構想を考えてます。

どうせP板で注文するのでかなり汎用性があるモノが良いです。

だから、基本のFPGA、EPCS、SDRAM、電源を同一基板に配置、その他ファンクションは別基板にFPCコネクタで接続します。例えば、MIDIとDACを搭載したオーディオボード、Ethernetと大容量メモリを搭載したネットワークボード、、、という感じに。

さあ、今度こそ絶対☆に動けよww

こうでもしねえとやってられねえ

2009 年 9 月 6 日 日曜日

製作宣言。俺を舐めてもらっては困る。

CPU:NiosII/f 81MHz動作、ハードウェア乗算器、除算器、カスタムSIMD命令搭載

命令キャッシュ32Kbyte、データキャッシュ16Kbyte

RAM:SDRAMコントローラ

ROM:EPCSコントローラ

I/F:JTAG、UART、SDカード、Ethernet、SPI、I2C、PIO、汎用タイマ

付属コア:LCD用GPU、音源再生コア、モーター用コア

こいつらを小型の基板にzip圧縮。携帯ぐらいのサイズにしたいね。

いや、いっそ携帯作ろうぜ。WillcomのSIMカードとかでさ。

基板にはFPGAとメモリたち、電源たちとその他小さいICたちだけがのる。

もう散財でもなんでもやっちまえ!!P板でいくよ!!作って結果を出しゃそれでいいんだよ!!これでロボカップ出たら前代未聞のロボ登場だよ!!なんせ全部ワンチップ&基板が携帯サイズなんだからよ!!

俺壊れたかも?いつものことか。で、なぜこんなの書いてるかって?

こういうオーバーテクノロジーなこと書かねえとやる気がでねえ!!

こうやって己に戒めをかける訳です。

さーていつできるかな。初歩からプリント基板設計術を学び直した方が良いかもよ。

今思えば好き勝手にオーバーテクノロジーなことを考えてた頃はとても幸せだったと思う。

最近の虚無感はその発想が足りなかったからかもしれない、、、

かと言ってこれができる自信が全くない。前は気になったデバイスのプリント基板をやたらに設計したのに。あの時のやる気を分けてくれ。昔の俺。

でも、自信がないからどうこうできると言う問題でないがやらなければいけない時がある。

自分が思うに大人と子供の境界はやらなければいけないことが「あーあ失敗しちゃった。残念」か「失敗は許されない。なんとしてでも作るべし」かだと思う。

自信がなくても、それは本を読むなり、資料を集めるなりで補完していかなければならない。今さっき、新しい事に踏み入れる時はいつでもそうだったと再確認できた。

また、この基板ができた暁には我が部員が相当な年数、マイコン選定、マイコンボード製作に追われなくてすむ。

そう、何が何でも作らなければならない。

「失敗しちゃった。残念」ではすまされない。

今の僕に必要な言葉は

「我々にはチームプレイなどという都合のいい言い訳は存在せん。あるとすればスタンドプレイから生じるチームワークだけだ。」(攻殻機動隊より)

だろう。今までのムダかつ非効率なチームプレイをすべて排除しよう。

必要なのはスタンドプレーとそれに伴うチームワークのみ。

結局ソースコード書くのめんどいんだよねー

2009 年 8 月 28 日 金曜日

まじめに作りました

NiosII/f 乗算器、除算器、命令キャッシュ8Kbyte、データキャッシュ4Kbyte

SDRAM、EPCS外部ROM

UART 5ch、Timer 5ch、SPI 1ch-3chipselects

これで約7000LE、M4Kメモリ約15Kbyte使用。

やはり余裕。もっと拡張しようかと思ったけど正直これでも十分すぎます。

このヴァーチャルの世界で満足するのもいつまでなのだろうか。

はやくボードほしいー!!

sopc1

↑SoPC BuilderでのSoC設計

diagram

↑SoPC Builderで作ったSoCにいろいろ付けていきます。PLLを入れました。

で、正直言います。

EAGLEよりも簡単

まあ当たり前か。FPGAに入ってHDL書いたりいろいろ大変かなーとか思っていたのですが、最初のうちはダイアグラムで片付きます。

それで後輩に怒られたww

先輩はクリックするだけですけどプログラムは大変なんですよ

すんません。とりあえず自作IPの一つや二つは出すつもりです。

予定としては優先順位的にTMD付属IPコア、秋月300円LCD、MIDI変換IP

大変だ。FPGAによるシンセは内部でカウンタ回してデコーダかけて外部でD/A変換します。

論理☆合成

2009 年 8 月 25 日 火曜日

FPGA技術を頼りにCPUコアを論理合成。

内部だけで6500LE

まだまだいけるじゃん

使う予定のFPGAは18000LE。さーて他に何をいれようか、、、

どうせのことだから乗算器、除算器、カスタムSIMD命令といこうか。

しかーし、問題はM4Kメモリブロック

FPGAは29Kぐらいに対して論理合成したヤツは20K。ちょっと足りないかも

他にもいろいろ作ったんですがやはりメモリブロックが不足しがちです。

ちなみに、おふざけで作った

NiosII/f

キャッシュ64Kbyte

DSP乗算器、除算器

をクワッドコアにすると20000LEだった。(メモリブロック数は数える気にもなれないww)

今日分かったことは

NiosというIPはそこまでLEを占領するヤツではない。

むしろJTAGやシリアルのIPが小さいくせにかなり占領する。

ペリフェラルの量に気を付けなくては、、、

必要なモノだけワンチップ♪

2009 年 8 月 24 日 月曜日

暇なのでSoPC Builderで遊んでました。

僕が欲しくてやまなかったCPUがあっという間にできてしまいましたww

sopc

MailboxによりNiosII/eとNiosII/fをデュアルコア化。個別にSDRAM、PIO、UART、共有のOn-chip RAM、BootROM、Timerが入ってます。

こうやって必要なモノだけを必要な分だけ選べてさらにピン配置も選ばせてくれるって良いですね。

SDRAMが入ってるCPUを探すと他にもいらない機能がついていてI/Oのじゃまをしたり高価になったりするんですよねー

さてはて一番の問題はこいつを収容できるFPGAとこいつを操れるプログラマーがいるかどうかだな、、、