7

私は現在、Logisim (論理ゲートのみ) を使用して 16 ビット ALU を構築しており、除算プロセスで立ち往生しています。私は現在、単純な標準の「除算アルゴリズムループ」を使用しています(以下に示すように):

  1. 入力値を読み取ります。
  2. 入力値を比較します。比較プロセスが完了するまで待ちます。
  3. A<B の場合、ステップ 10 に進みます。A≧B の場合、次のステップに進みます。
  4. A から B を引きます。
  5. 減算プロセスが完了するまで待ちます。
  6. カウントに1を追加します。
  7. カウントプロセスが完了するまで待ちます。
  8. 減算プロセスからの値を入力に書き込みます。
  9. ステップ 1 に進みます。
  10. 答えはカウント余りA

ただし、これには、大きな回答を伴うプロセスでは非常に長い時間がかかります (300 ティック サイクルを 65,000 回繰り返すのは面白くありません)。ロジックゲートを使用して実装できる、より高速な(加算および/または減算および/または乗算およびブール論理のみを使用する)同様のアルゴリズムがあるかどうか疑問に思っています。どんな助けやアイデアも大歓迎です!フレイザー

4

2 に答える 2

4

ロングディビジョンを使用します。バイナリでは、各ビット位置の商は 1 または 0 しかないため、乗算はありません。したがって、条件付き減算 (結果が負でない場合は減算) およびシフトとして実装できます。

もちろん、それは大まかな概要です。

于 2013-10-22T21:47:24.010 に答える