この回路ファイルはALU本体と、ALUを動作させるために最低限必要な周辺回路がセットになっています
このALUは、msa2と名付けた自作ISAに対応する仕様になっていますが、機能が比較的豊富で汎用性が高いと思います
(もともとmsa2専用のつもりだったけど、意外といい感じに使いまわせそうなALUが生まれた)
AとBに二進数でデータを入力し、Mに信号強度で演算を指定して、CとDから結果が出力されます
Cはキャリー、Dはデータの出力です
このALUは8種類の演算に対応していて、Mの入力の信号強度で指定します
信号強度0は加算
1は加算結果に+1
2は減算結果に-1
3は減算
4はORして論理右シフト
5はXOR
6はAND
7はOR
になっていて、減算はA-Bで行われます
ALUは遅延調整済みのため、トーチの焼き切れを考慮すると3rt周期で演算をどんどん行うことができます
(データの入力から出力までの時間は約1秒)
個人的には、機能に対して回路サイズが大きくなってしまった気がするので、その点だけ気になっています、、、
やはり、3rt CCAは限界ギリギリの構造になっているので、ALU化にあまり向いていない気がします