ALUの仕様としては、O'Reillyから出版されている『コンピュータシステムの理論と実装』にあるALUを
パクリ参考にしています。コストと性能の良さがリレー1000個で組むコンピュータにはちょうど良いと思い採用しました。
ですので、ブロック図にすると以下のような設計になっています。
これをリレーのみで組むとリレー132個必要になります。
内訳は以下の通りです。
全加算器:1bitあたり7個、7bit分計49個
半加算器:1bitあたり3個、1bit分計3個
論理積:1bitあたり1個、8bit分計8個
MUX:1bitあたり1個、48bit分計48個
NOT:1bitあたり1個、24bit分計24個
まず、一枚の基板にリレー42個載る汎用基板を作ました。プリント基板のデザインはリレーのピンとピンヘッダの端子を一対一でつないで、ラッピングで配線していきました。そして、リレー132個必要ですので基板を4枚スタックして、実装していくことにしました。

全体としてはこんな感じ!
各基板の役割としては、以下のようになっています。
1枚目:下位6bitの全加算器、下位4bitの論理積
2枚目:上位2bitの全加算器、上位4bitの論理積、論理積or全加算器の選択のためのMUX、出力にNOT演算するかのMUX
3枚目:入力Aを0にするかのMUX、入力AをNOT演算するかのMUX、入力B下位6bitを0にするのかのMUX、入力B下位6bitをNOT演算するかのMUX
4枚目:入力B上位2bitを0にするのかのMUX、入力B上位2bitをNOT演算するかのMUX
こういった、中途半端な機能で分割してしまったので、基板間の配線が大変なことになりました…
配線はこんな感じ。同じ色のところ同士を配線するイメージです。

最初、無計画で汎用基板のコネクタを16×2の32bitぶん用意すれば間に合うだろうと思って基板作ってたのですが、実際設計してみるとギリギリでした。危ない…
汎用基板ほかにも使う予定はあるのであとで改修していこうと思います…