見出し画像

【マイクラ】縦型の16進数→2進数変換器を作った話

今回はマイクラ統合版で16進数を二進数に変換する回路を作ってみました。作成する経緯に至っては、積層加算器の作成に当たって信号強度式の横型のエンコーダーだと配線が大渋滞を起こすうえ他の回路と干渉するので思い切って縦向きのエンコーダーを自作してみました。


特徴

具体的なスペック

仕様:信号強度⇒二進数変換
大きさ(横幅×奥行き×高さ) :5×5×9 {225blocks}
速度(理論値) :4~12? (レッドストーンティック)

説明

この変換器は一番上のブロックにレッドストーン信号が加わるとそれを上から順に処理して逐次出力しています。またコンパクトにまとめるために多少強引に配線をしていて干渉を防ぐためにレッドストーンリピーターがあるため動作速度はそれほど早くありません。まあこれぐらいなら許容範囲だと思います。


信号の入力(上部)と出力(ダイヤモンドブロックの所)

また、先述の通り縦に1ブロック置きに出力があるのでシンプルな加算器と相性が良く、特に4bit計算機などには応用が利くと思います。(干渉は免れません)

作動原理

縦型信号強度式回路の課題

そもそもマインクラフト上でのレッドストーン信号はブロックは距離に応じて減衰する性質があるので、この手の回路には信号の減衰を防ぐためにレッドストーンコンパレーターとレッドストーンダストを交互に(間に不透過ブロックを置く場合あり)置くことでこの問題を解決しているのですが、コンパレーターは水平方向にしか機能しません。すなわち信号強度式の回路と縦型は相性が非常に悪いです。だからといってこの問題を放置していては、途中で信号強度が変わり結果に影響が出てしまいます。そこで、下図のように配置をするとどうでしょうか。

この場合右上のレッドストーンダストが入力となるのですが、レッドストーンダストはまず下のブロックに信号を与えます。(ブロックに伝わるときには減衰はありません)そしてブロックの信号を受けたコンパレーターは左上のブロックへと動力を伝えます。この時その下にあるレッドストーンにも動力が与えられます。これが繰り返されることにより信号が弱まらず下まで届きます。多少無理がある仕組みですが、信号強度問題は解決しました。

エンコーダーの仕組みを軽く

また、エンコーダーの仕組みですが、詳しいことは割愛させていただきますが、元となる入力(1~16)から閾値8、4、2、1をそれぞれ大きい順から比較し、入力が閾値より大きければその数字を入力から引き対応するビットを出力、閾値に満たない場合はそのまま次の閾値との比較が始まります。この閾値達ですが突然現れたわけではなく、それぞれ2³、2²、2¹、1となっています。まあ普通に生きていてもこんな知識はほとんど使わないと思うので頭の片隅に置いておく程度で結構です。この仕組みを縦に4つ積んだのが今回の縦型エンコーダーです。

総括

かなり長文となってしまいましたが、ここまでお読みいただきありがとうございました。次回はまた別の回路を作って紹介しようと思います。

それではさようなら

by.サブネ


いいなと思ったら応援しよう!