最終更新日時:2022-04-30 00:35:37
ここではNANDだけで作った歴代ALUの基板写真をただ自慢するだけのページです。
実物のNANDでALUって少し珍しいでしょ?しかもALU制御基板を入れれば16bit。
楽しんでくれると嬉しいです。
画像が多くページがちょい重めなので開く場合は注意
試作は特にパスコンを入れていなかったりしますが、まあ、あれです。お金がなくて…泣
本番基板(とは言ってもPCBが本当の本番なのでこれも試作ですが)でもIC8個にパスコン1つというかなりキワドイことをしているので真似しないことを推奨します。というかパスコンは入れましょう。少なくとも4個に1つくらいは。
パスコンを入れて電流の流れるループを短くすることが鉄則です。
鉄則です
そういう回路の構成については自覚があるので目をつぶっていただけると幸いです。
写真はクリックすると拡大します。
回路自体の説明は以下の記事を参照のこと。
設計・製作について |
---|
ここ以下のディレクトリに回路図や操作法、基板図面などを置こうと思います。 記事作成日時:2022-04-24 13:08:53 最終更新日時:2022-05-04 15:39:14 |
Ver0.0
これはALUのバージョン0というか、遊びでなんとなく全加算器を作ろうと思って作ったやつです。
動作試験の動画のタイムスタンプを見る限り年を越す前後で色々遊んでいたようです。
これはXORを3つ繋げたフツーの何のひねりもない全加算器です。
バージョン管理なんてしていませんでしたが一応Ver0.x系としています。
このときはALUでたくさん使うんだろうと思ってXORから始めましたが、結局演算の中枢にはXORは使うことはありませんでした。
結局途中まで作ってこれはしっかり作り直そうと思い途中で辞めました。
Ver1.0
バージョン1は今思うと邪道的な意味でひどかった。
あろうことか私はANDやOR、ADD/SUBなどの出力をNANDではなくダイオードでまとめていました。
いわゆるワイアードORとか言ったりしたりしなかったりするあれ。
ダイオードを使っているあたりを拡大した写真です。
うーん、良くない。
実際このダイオードは余り速くないですし、プルダウンしているのでLOW側はまだしも、HIGH側はダイオードのV
f
が気になりますね。
やっぱりあんまり良くない。
散々NANDと言っておいてはじめの一歩は邪道も邪道。
実情を言うと、基板に乗るサイズの回路を書けていなかったからこんなことになっていました。
かなりセコい手ですね(笑)。
これを解決するアイデアは確か寝ているときに思い付きました。
何を思いついたかはメモを発掘しないと正直記憶にない。
このモードセレクトのバスの配線がすごく嫌だったことを思い出します。
すぐ外れるし、爪の先は熱いし、振動で動かなくなるしで最悪でした。
しばらくはこの地獄を味わい続けます(笑)
Ver2.0
バージョン2系列はこの試作基板で終わりかどうか思い出せていません。
この後ろにある
Ver3.1
が実は2.1なような気もしていて順番がもはや分かりません。
頭がおかしい。
たしかなんやかんやでVer2.xはこの試験基板のみで開発が終わり、Ver3.xへ移った気がするのですが…
コイツはある程度幾つか演算ができたはずですが、加算、減算以外に何ができていたか覚えていません。
もしかしたら加算、減算以外できないかも?
そこら辺は実験の記録動画を見れば分かりますが面倒なのでちょっとパス。
ちなみにこれは
邪道を通らずに
しっかりNANDのみで組んでいます(笑)
こちらの基板はセレクタ(マルチプレクサ)の試験基板です。
複数の信号の必要なものだけ出力するヤツです。
これはNANDをNOTとして使用する部分が多くあまり良い回路ではありません。
赤青は電源、緑は出力、黄は2本でセットになっていて、2本の内どちらかを入力、もう片方をEN信号にします。
NANDに直接入るので入力とENを回路は区別しません。
回路を見ればすぐに分かることです。
スポンサードリンク
Ver3.0
この試作はVer2とは違いALUを通しで作りました。
命令を解釈する部分が洗練されていないので(今のものが洗練されているわけでは無いけど)制御信号が多い。
そしてこのときはまだ1bitあたり9個の74HC00を使用していました。
あとこれはVer1.0の基板の空き地を再利用して作ったもの。
なんで基板が長細い。
これの動作試験の動画はすごーく前にTwitterとかに載せた気がします。
入力が変化してからどれくらいの時間で出力が安定するかをやった気がします。
結果はどうだったかな?記憶なし。
基板を作るときに迷わないよう色々メモを書き込む人間なのですが皆さんの基板を見る限りメモを入れる人って余り居ない気がします。
消しているのかな?
入れておいたおかげで回路がどうなってるかは解析しやすそうです(笑)
それにしてもこれはまだ動きそうな見た目をしていますね。
Ver3.1
コイツが件のいつ作ったかわからないやつ(笑)
Ver3.x(2かもだけど)系列にして初めて8bitでのマトモな演算ができるようになりました。
ワイヤが大量でちょっとカッコE
ただ、この方法で各基板を結線すると100mのボビンじゃ全く足らないことが後に判明して辞めました(笑)
コンデンサが途中までしかついていません汗
まあうごいたんで良いんですよ(ダメ)
かなりごちゃごちゃしてますが、作っている当時はどの配線が何なのか完全に把握していました。
人体の不思議です。
今はもう分かりません。
これもバス配線がワイヤです。
本当はくるっと巻くのはダメですが、こっちのほうが配線しやすくて妥協しました。
高周波で動かしたら入力が痛みそうですね…
こんだけごちゃごちゃしていても順序よく作ると配線が邪魔にならずに作れます。
そのため、ワイヤで配線する際は作業をよく考える、
脳内配線タイム
が人類には必要だと思います。
写真真ん中あたりの錫メッキの配線とかかなりアヤシイですね
どうしてこれが動くのか自分でもよく分かっていません。作っているときから動かねぇんだろうなぁとか思いながら作っていました。
なんで外部との配線にこんなに太いものを使っているかと言うと、赤い細めのやつが残り少なく途中で無くなりそうだったからです。
使わずに肥やしになっていた100mボビンの有効活用。
こんな野蛮な配線はもうしません。スミマセン(笑)
Ver4.0
このVer4.0は3.1の製作後に判明した74HC00のドライブ不足問題を解決したものです。
具体的には、出力1つに対してLEDが1つしかないと勘違いしていたため表示を明るくするためにかなりギリギリまで引っ張っていました。
が、
実際には最大で3つLEDがぶら下がっていたことが動作テストで不具合が起きた
ことから判明しました。
んで、LEDの電流制限抵抗を上げて対処しました。投げやり(笑)
回路の内容自体は全く変わっていないので配線その他は3.1と同じ物です。
なぜどれもこれも基板が途中で切られているかと言うと途中で製作を放棄したものから基板を切り出して再利用しているためです。
試験用の基板はほぼ全てこの空き地から取っています。
おかげで配線済みの基板を切り分けるのがうまくなりました(笑)
これは制御用のバスの配線は頑張りました。あまりうまくないけど。
Ver5.0
これは今までの基板と比べ74HC00が1bitあたり2つも少ない回路になっています。
ただコイツはORは演算できませんし、ANDの代わりにNANDがあるというかなりの
手抜き回路です。
なぜORを廃したかと言うと、レジスタバスにORをさせるつもりだったからです。
というのもNANDだけで作るという制約上バスにはトライステートを使用せず各出力をORで纏めるため、バスがOR演算を出来るという画期的(笑)なアイデアを思いついてしまったからです。
人間楽な方に惹かれてしまいます…残念。
では何の演算が出来るかと言うと写真の通りNAND,XOR,SHR,SHL,NOT,ADD,SUBの7種ができます。加えて入力のB(A+B=CのB)を反転させる機能を持っているので実質9種の命令を実行できます。
配線はこんな感じです。
機能が少ない分制御用の信号も減っています。
そして相変わらずパスコンを入れていません。
なんかもったいなくてね…
スポンサードリンク
Ver6.0
この回路は私のNANDのみで製作したALUの中で最高峰の出来の回路です。
74181をそのままNANDに置き換えては得られない命令数/使用IC数を誇ります。
ここに来るまで実に半年。ついにといった感じです。
時間を掛けただけあって自分でも良いんじゃないと言ってしまうくらい出来が良いと思っています。
これ以上のものを組めるのなら組んでみろ〜!!なんてね(笑)
命令はAスルー,AND,OR,NOT,XOR,ADD,SUB,SHR,SHLとそれらの入力Bの反転動作が出来ます。
加えてALU制御回路を加えるとINC,DEC,ROR,ROL,SLA,SRA,ADD with Carry,SUB with Carry,INC with Carry,DEC with Carryも出来ます。
ここまでできれば大抵のことでは困らないだろうと思います。
どうなんですかね?乗除算はNANDだけでは厳しいのでパスとして
配線はまあ特に変わらず。
Ver6.1
私史上最も嬉しかったランキング上位に入っている基板です。
実は電源が基板内でショートしていて初回起動時に電流のパネルメーターが振り切れるという事故が起こっていたりします。
ずさんですね。
このことからも分かるとおり火入れの前には点検は必須です。
この頃はPCのマザボが死んでマザボ換装したり、ドメインを買ったり、HDDが死んだ影響でwin7ぶっ壊れたりと動乱の時期でした。
あとちょうど受験期でしたね。
関係なしにはんだごて握っていましたが(笑)
命令は6.0と同じです。というか中身は6.0を8つ並べたものですし。
バス配線はこのときまでワイヤでやっていました。
これはくるくる巻いちゃってんなぁ…
結局使わなかったのでまあよし。
Ver6.1からのALUは全て物理的電気的な規格が同一なため互いに置き換え可能です。
そのため基板が幾つか壊れた程度ではノーダメージみたいなもんです。
なんせこの時はまだ32bitを作る気で居ましたからね、余計に製作した基板は多い。
この基板は2022/04/29時点では故障しています。検査治具で検査した所6番目の出力が上がらなくなっていることが確認できました。
こんな配線だし仕方なし。
Ver7.0
ここからはマイナーチェンジみたいなものをなぜかバージョンを割っただけなので簡単な紹介のみとします。
Ver7はVer6のバス配線を改善したものです。
これは2022/04/29時点で正常な動作を確認しています。
やはり配線を変えるだけで安定さが段違いですね。
配線を確実にする方法はちゃんと検討すべき。
うら。
気持ちスッキリした気がする。
ここのピンヘッダへの処理は同じ人間が作った割には異なるバージョンで違いが出ていて面白いです。
Ver8.0
もう何が違うのかもはや分からん。
なぜ私はバージョン変えた?頼みの綱のTwitterにもそれらしい投稿がない。
本当にわからない。
これも2022/04/29時点で正常動作
裏。
こっちはB1の端子周り。
B1,B2のBは端子が右側にあるタイプを表していて1,2はただの通し番号。
こっちはB2。
スポンサードリンク
Ver9.0
これはハンダめっき線を0.3mmに変えたことでバス配線がかなりキレイになった。
違いはそのくらい。
見た目がキレイになったから同じバージョンを振りたくなかったんだね、多分。
もちろん2022/04/29時点で正常動作
裏。
上の方に纏めたおかげで部品がのっている部分はスッキリしている。
A1。
Aは端子が左。
A2。
もう書くことがない。
----
回路図や検査治具、その他諸々はこれから更新してくつもりです。
関連するページ
-
NAND(74HC00)だけで16bitCPUを作る[NLP-16] このページはNAND素子のICである74HC00のみを用いて16bitCPUを作るという馬鹿みたいなことを纏めたページ。 また、早速だが使っているICは7400ではない。以前は”7400でCPUを作りたい”にしていたが詐欺なので変えた。 使用しているのはC...(以下略)
記事作成日時:2022-02-27 15:47:09
最終更新日時:2023-09-12 03:59:52
-
設計・製作について ここ以下のディレクトリに回路図や操作法、基板図面などを置こうと思います。
記事作成日時:2022-04-24 13:08:53
最終更新日時:2022-05-04 15:39:14
-
雑多な製作物 ここでは雑多な製作物をゆる〜く紹介しようと思います。決してページ数を稼ぐために雑なものを入れているとかそういうわけではないです。ええ。...(以下略)
記事作成日時:2022-04-24 13:25:52
最終更新日時:2022-04-24 14:06:45
-
もらいものページ ...(以下略)
記事作成日時:2022-05-02 12:09:18
最終更新日時:2022-05-02 14:00:39
-
修理色々 ここで治ったのは奇跡であるため参考にして何かがあっても責任は負わないので悪しからず。某所で日本おもちゃ病院協会のドクターとしておもちゃの修理に従事していたりする。テキトーに面白いなんて思ってもらえたら嬉しい。治せるうちは治して使おう!地球も、作った人もうれしい!...(以下略)
記事作成日時:2022-02-27 16:16:55
最終更新日時:2022-02-27 17:30:57