ラベル リレーSRAM の投稿を表示しています。 すべての投稿を表示
ラベル リレーSRAM の投稿を表示しています。 すべての投稿を表示

2012年11月5日月曜日

CECTPA-1 まとめ

CECTPA-1 リレー数まとめ

CECTPA-1 スペック:
Data Bus : 10bits
Address Bus : 8bits
Register : 8bits, X/Y
ALU : add, incr, NOP
CLOCK : 2Hz (5clocks per an instruction)
ROM : 11WORDS(110bits)
RAM : 3Byte(24bits)
Power : 4e-7MIPS

リレー+ダイオードなら相当楽だと思う。
もしくはCPUはリレーで、メモリは半導体とか(これは他の人も結構やってる)、でもなんか負けた気がする
次回やるとすれば、
・アドレスバスは6bitで十分
・クロックはもう少し早く。今回のシーケンスジェネレータは設計が悪く早められなかった
・各インストラクションに5クロックは4でもよい
・レジスタのLoadはSelectよりタイミング早めてリセットしておくことを忘れない
・基板サイズは大きくする。基板ー基板間のコネクタ・配線に時間をとられるため
・LEDはもっと増やして視覚に訴える。暗い中で実行すると楽しい。
・RAM増やして8x8ディスプレイにマッピングしたい
・簡単なゲーム作りたい、、、が遅すぎるか。

2012年10月29日月曜日

火災

住んでいる所が火事になり、すべてが失われました。
数ヶ月作業していたリレーコンピュータがもう少しのところだったのが非常に悔やまれます。
火元等不明ですが、消防士によると、もちろんリレーコンピュータではなく、電気式のコンロから出火していたようです(ただし、私はその3日前から使っていません・・・)
ラップトップはバックアップを取っていましたが、バックアップも同時に焼けてしまったため復活の見込みはありません。すべての情報をクラウドへ、違う場所にバックアップをとることが大切ということが身にしみてわかりました。

再度、一から作り出す気力は今のところ失われました(そもそも子供の頃から揃えてきた工具とかを0から買い直さないといけないし、回路図の元データや一部の図はないので再設計の必要もあります)。

動作中の動画だけでもどこかにアップロードとしておけばよかったのですが、今では一部の写真と記憶に残っているのみです。唯一残ったのはこのブログのアップロードしていた図や写真だけなので、それだけでも手前のメモではなくブログとしてアップロードしてきた意味はありました。

記憶に残っている、リレーコンピュータの到達地点を列挙すると、
・ROMからのインストラクションのロード、解釈
・ジャンプ命令
・即値(Im=>X/Y)
・ADD(X+Y=>X)
・Incr(X+1 => X)
・mov
・load/store(RAMへの書き込み・読み込み)
までは動作していました。メモリも全bit動作良好でした。後は、ifの分岐命令と、NOPの動作調整・確認で完成だったのですが・・・

自分にとっては生涯で一番部品点数の多いプロジェクトでした。コンピュータ(バス/CPU/メモリ)についての理解も深まりました。どう早く計算させるか、ではなくどう部品点数を減らすか、の観点ですが、非常に勉強にはなりました。いつの日か、やる気がチャージされたときに再開できるよう祈ります。


2012年8月20日月曜日

Operation Decoder(2)

オペレーションデコーダのテスト中。なぜかデータ6bit目が1だと回路全体がリセットする問題があり、解決に一昼夜費やした。原因はハンダブリッジでVdd(リレーだからVrrか?)がGNDに落ちてたようだ。配線以前の問題だったか。
機能に関係しないリレーを取り外しテストしている様子。
他にもselROMのタイミングを遅らせる必要があり、ディレイを追加。載せているリレー数が足らなくなってきたので、0検出は別基盤対応とする。
0x01以降はRAMなため、0x00はJMPにしROM領域に飛ばなければならない。データをオペレーションレジスタに読み込み、保持し、JMPと解釈し、PCレジスタを書き換えようとするところまでは動作させた。JMPさせる番地にPCレジスタの値が足されてしまう問題があるようだ。タイミングの問題だと思うが。ここまでで出張前の作業は時間切れ。各部のタイミングを一度きちんと考え直さないといけないようだ・・・

2012年7月16日月曜日

Memory Unit

RAMとROMができたのでアドレスデコーダに接続して動作テスト。

上がアドレスデコーダ、真ん中が10WORDのROM、下が1WORDのROM+3byteのRAM。RAMは0x00-0x03に、ROMは0x20-0x29にマッピングされている。
実は設計ミスでアドレスデコーダの配線をやり直してるので、ここまでくるのに結構苦労したのだ。とにかく、メモリはリレーを消費する・・・
それから、eBayでDPDTのリレーを59個調達した。$0.6/DPDTなので激安だと思う。これで10WORD追加できる

2012年7月4日水曜日

Address decoder

次はアドレスデコーダである。トーナメント的にリレーを組めばいいのだが、例えば6bitをフルアドレッシングするには1+2+4+8+16+32=63ものリレーが必要になってしまう。そこで、下位3bit(8WORD)を1blockとして、上位3bitでblock enableを指定する。こうするとリレーは(1+2+4)x2=14個ですむ。
回路図には描いていないが、データバスに接続するかどうかのselSのリレーもある。
SRAM用にはセンスアンプ(とは名ばかりの単なるリレーコイル入力)と、R/W切り替えのリレーが回路図の下半分。SRAMはまだ構想段階だが。
アドレスデコーダとROMを接続して動作確認中。左が以前作った10WORD ROM、右がアドレスデコーダ。上の8LEDがアドレス、下の10LEDが読み出したデータ。次はこれに接続するRAMを作ることにする。どうやらSRAMは半導体のstaticRAMを意味するっぽい.
この場合リレーなので、RRAMと呼ぶことにする。

2012年7月1日日曜日

ROM

ROM1bitにつきリレー一個というのは無駄に思えて、なんとか減らせないかと無い頭を絞って考えたが、結局見つからなかった。抵抗差を利用すれば4bitまでなら抵抗マトリックスだけでも使えそうだが、それでも制御用のリレーを考慮すると得にならない。A/Dコンバータも使えないし・・・。スキャンも考えたが逆に多くなる。おそらく、昔の人もいろいろ考えて結局マトリックスの交点に一素子が使われているのだろうが、その考え方の過程を知りたいぞ。

これでは進まないので、1bit1リレーで作り始める。まず回路図。

10WORDS(100bit)のROMボード。裏面の半田付けに心が折れそうになった。。。ラッピングワイヤの半田のノリが悪すぎる。

表側。ぎりぎり入った感じ。
10ワードでは少ないのでリレーが手に入れば追加したいけど大変だからしたくない。

2012年6月21日木曜日

more relays

SRAMとアドレスレコーダを考えるとリレーが全然足りないので、覚悟を決めてあるだけ全部買って来た。1回路入り1個50セント、40円くらい。秋月より安い。ただ、入荷の予定はないそうだ。JRCと書いてるがYueging(中国)製らしい。eBayで買える中国製は色が青色なのと、サイズがでかいので実装面積の問題がある。オレンジのリレーはHeavy Dutyっぽくて好きなのだが、概して高価。というわけでやっぱり黒色。
買ってきたリレー。だんだん感覚がおかしくなってきて、200個じゃ少ないとか思ってしまう

今あるリレー数をまとめてみた。既に、結構な数を使ってしまっているなぁ。

まずはROMでインストラクションデコーダやアドレスデコーダを作り、残ったリレーでSRAMを作ろうと思う。ROM用に33/68オームのチップ抵抗を1000個ずつ買ってきた。本当は500個でいいのだが、1000個買う方が逆に安いため。また、実装用にDigikeyで6インチ角の基板を注文中。ちなみに、いろいろ探したが基板は秋葉が安い。6.5x4.5inchで20$が相場っぽいが、秋月なら400円だし。唯一6inch角のがDigikeyで11$だったのでメモリ系はこの基板で統一するつもり。これにDIPスイッチを載せられるだけ載せてROMにする(たぶん40WORD=400bit分くらい)。
最近、これに全力を傾けてるけど大丈夫かオレ?

2012年6月20日水曜日

ROM design

SRAMの1bitのコストが高い(1$?)ので、ROMも併用することを考えている。変数はRAM領域を使い、プログラム本体はROM領域に置くという、組み込みでよく見る構成だ。じゃあ、ROMのbitコストはどうなのだろう?最初、ROMでは1個のスイッチと1個のリレーが必要かと思っていたが、下記回路だとスイッチ1個と抵抗2個で実現できる気がする。間違いでした
左の抵抗分圧+スイッチが1bitセル。右のリレーがセンスアンプで、4V以上でon, 3.5V以下でoffになるよう抵抗の分圧を調整する。
真ん中のリレーはenable。ROMを読み出す前にセンスアンプをリセットするために必要。
 このままでは負論理になってしまうのでどっかで反転させる必要あり。

テストしているところ。とりあえず動いている。というわけでROMのbitセルは完全に受動部品で実現できそう。
メモリについてまとめると、
RAM: リレー2個、抵抗3個
ROM: 抵抗2個、スイッチ1個

今日はanchor electronicsで2個1$のリレーを買ってきて互換性をテストしてみた。遅延についてはわからないが、とりあえずメモリとしては互換性に問題はないようだ。

2012年6月19日火曜日

SRAM design

そろそろSRAMについて考えねばと思い、試験回路を作ってみた。
思い返してみると、昔、ひたすらSRAMの回路パターンを見続けていたが、実際に回路を作って動作させてみるのは初めてであった。
1つのリレーで選択、もう1つのリレーで保持する。CMOSプロセスのSRAMが6Tで実装されているのを考えると2リレーで実装できるのは効率的に見える。これは、W(ライト)時には直接VDDかGNDにつなげて書き換えるのに対し、R(リード)時には160オーム程度のリレーが接続され、保持リレーが影響を受けないのを利用しているためだ。したがって読み取りにバッファが必要と思われる。
bit-lineにリレーをつなげて読み出し中。保持リレーは動作し続けている。
intelがFinFETを使った0.1um2以下のSRAMを動作させている一方で、200mm2以上のセル面積のリレーSRAMに愕然とする。でかい基板でも一枚に4WORD(40bit)しか載らない。アドレス生成を考えなくても、8bit全部使うには2x10x256=5120と天文学的なリレーが必要になってしまう。そもそもアドレスバスは5bitで十分だった気がしてきた。。。