コメを噛め

コメを噛め

rerofumi の電子工作メモ

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 にするわけにもいかないし。

3 Comments to “ハードウェアとしての「1チップMSX」”

  1. Krik Says:

    JTAGは、ConfigROMより優先度が高い。EPC4が有っても、JTAG起動となる。元々JTAGは基板チェック用なのだから、ConfigROMの存在でJTAGが使えなくなったら、本末転倒であろう?

  2. Krik Says:

    △上の続き:http://www.altera.co.jp/literature/hb/cyc/cyc_c51013.pdfの45頁を読んで勉強してください。

  3. rerofumi Says:

    ご指摘ありがとうございます。ConfigROMがBlankの時はMSELをPSモードにしてROMを見に行かない方がJTAGが安定するという情報を誤解した形で覚えていた様です。勉強になりました。

Leave a Reply