コメを噛め

コメを噛め

rerofumi の電子工作メモ

Archive for 11月, 2006


hatena bookmark

「1チップMSX」の先行予約者の元に、遅れていたマニュアルと CD-ROM が届いている。
CD-ROM には公約通り FPGA ロジックの VHDL ソースコードと、MSX-DOS2 が含まれていた。

さて、この「1チップMSX」でまことしやかに囁かれていた噂があった。
「実は FPGA のロジックぎりぎりまで使っていて拡張の余地はないらしいぞ」
本当だろうか?さっそくソースコードをシンセシス&コンパイルしてみる。

…… Pentium4 3.0GHz で 14分ほどかかった。

気になる数値は、

10,026 / 12,060 Logic Element (83%)
171 / 173 Pins (99%)
74,014 / 239,616 Memory bits (31%)

といったところ。
Z80 モジュールで 2,201LE だから、まあそれなりに空いていると思う。
(私はまだスクラッチで 100LE 以上の物を書いたことが無いから見当つきにくい)

ちなみに、一番大きいのが流石に VDP で 2,677LE 次に eseopll の 1,380LE。
opll を削ると空きが増えそうだあね。

ROMイメージの取り扱いってどうなっているんだろ。
—–


hatena bookmark


なにかと話題を振りまいている「1チップMSX」が先行予約者の手元にぱらぱらと届きつつあるようだ。
私の手元にも届いたので軽く「コメ噛め視点」でレビュー。


本当に「ワンチップ」にこだわっていて異様に少ない部品点数。Cyclone がどでんと 1個あってその左に見えるのは 256MB の SRAM (32MByte ということやね)。それ以外だとコンフィギュレーション用シリアルROMと、その三点が主要パーツ。
Cyclone は EP1C12Q240C8N、ロジックエレメントは 12,060LE と価格レンジでは割と大きめのゲート数。シリアルROM は 4Mbit の EPCS4。


FPGA の周辺はI/Oプルアップ用のレジスタアレイで囲まれているけれども、これは一瞬なんだろうとか思ってしまった。
このみっちり置かれている抵抗は、ラダー抵抗による D/A コンバータなのね。
6bit D/A が 5つある。音声 2ch と RGB といったところだろうか。(コンポジット出力はRGB出力と排他切り替え)


Cyclone のロジック学習トレーニングボードとしても期待が集まる当セットだが、傍らにあるこの 10ピンのピンヘッダは残念ながら JTAG ではなかった。コンフィギュレーションROM書き込みようのASコネクタだ。
では JTAG はどうなっているかというと、使われてはいないがパターンを引き出されてもいなかった。FPGA の足に直接ハンダ付けする勇気があれば自分の手で引き出せるかもしれないが。
U1 とあるのはなんのICかわからなかった。多分リセットICだと思うんだけれども、情報求む。
〜〜〜
FPGA にあまり詳しくない人も読んでいるかもしれないので軽く説明。
FPGA や CPLD は中身のロジックをPCで設計して、JTAG ダウンロードケーブルを用いることで、それを書き込みます。CPLD は書き込まれたロジックを内部のフラッシュで保持しているから良いのだけれども、FPGA は RAM に保持しているので電源を切ったら忘れてしまいます(そのかわり大規模ロジックが組める)。
FPGA は電源投入で起きた時、頭は空っぽです。そのたびにダウンロードケーブルで、コンフィギュレーションしてやる必要があるのです。
それだと組み込み機器としてつごうが悪いので、起動時にROMやマイコンがFPGAに対し自動的にロジックを書き込むという仕掛けがとられます。これがコンフィギュレーションROMです。
通常、開発時は FPGA に対し JTAG ダウンロードケーブルで FPGA 内 RAM にコンフィギュレーションして開発を進めます。ある程度動くようになったら、コンフィギュレーションROM に対してコンフィギュレーションデータを書き込み、ダウンロード無しに動作する様にしてやるのです。
Xilinx の FPGA とコンフィギュレーションシリアル ROM は同じ JTAG ディジーチェーンとなっているので、JTAG ダウンロードケーブルでどちらにも書き込めます。
ところが ALTERA の方は FPGA は JTAG ダウンロードでコンフィギュレーションするのですが、コンフィギュレーションシリアル ROM は AS (アクティブシリアル)という別の手法かつ、別の端子から書き込んでやる必要があるのです。しかも、AS 書き込みは ByteBlasterMV 互換では行えず、ByteBlasterII 以降が必要となります。
〜〜〜
この 1チップMSX は JTAG による開発モードやシリアルROMからの起動を止める切り替えスイッチもない。つまり、書き換えようと思ったらコンフィギュレーションシリアル ROM に完成したコンフィギュレーションを書き込んで、電源再起動をするという手順を踏む。
(追記: 別段シリアルROMからの起動モード設定になっていてもJTAG経由のコンフィギュレーションはできるそうです)
SD カードに入っているコンフィギュレーションファイルを FPGA 自身を使ってコンフィギュレーションシリアルROM に書き込む回路が用意されている
いちいちROMに書くのも面倒だが、その手法で開発ができるのではないか?おそらくはできるであろう。問題はコンフィギュレーションシリアルROMの書き込み保証回数があることか。一応データシートだと 10万回となっていたから大きな問題でもなさそうだ。


I/O を引き出すことのできる拡張ピンヘッダ。
全てのピンに I/O がひいてあるものの、ジョイスティック端子とディップスイッチと 8個のLEDと共用なので、純粋な空き I/O となると 6本しか残らない模様。
ジョイスティック端子は 5番に +5V が引き出されており、おおっと思ったが、そこと GND 以外は Cyclone のI/O Vcc (早い話が 3.3V)のプルアップで出てきているのでちょいと注意。まあ、ジョイスティック端子は、GND に直結するか否かなので問題は起こりにくいと思うけれども。フォトインタラプタを噛まさず直接 5V をかけるようなジョイスティックデバイスだとちょっと不安。


裏面は何もなくてシンプル。

SHIFT を押しながら起動で DISK-BASIC をパージして ROM-BASIC が起動するとか、1 を押しながら起動で DISK-BASIC1.0 が起動するとか、そんな実機での技がちゃんと再現されているんだな。
BIOS 等はシリアルROMから SRAM に転送して使っているんだろうなあ。
Cyclone 内部のブロックRAM は 28KByte ほどしかないし、LE を ROM にするわけにもいかないし。


hatena bookmark

聞いた話で恐縮だが、先日発売された PS3 のパッドを分解すると、加速度センサーとして北陸電気工業の HAAM シリーズと、murata のジャイロスターが入っているらしい。
任天堂はまいどのアナログデバイセスとフリースケールだったっけか。

あれだけ入手しにくかった加速度センサーとジャイロセンサーが、計6軸 4800円(PS3パッドの実売価格)で買える様になったわけだ。本体と違って入手しやすいようだし。

流石に面実装部品で脚無し部品がリフローでくっついているわけだから、電子工作用にもぎるのは困難そうではあるけれども。でも手に入らないよりはるかにましかと。
振り回すと音が鳴るジャイロテルミンとか作り放題ですよ(なぜにテルミン)
—–