• 締切済み

ALUの設計

AND演算、OR演算、足し算、引き算の各機能を備える、1ビット演算装置(ALU)を設計せよ。 という問題です。 全加減器(算術演算回路)と論理演算回路の組み合わせなのは分かったのですが、組み合わせ方が分かりません。 教えて頂きたいです/

みんなの回答

  • ninoue
  • ベストアンサー率52% (1288/2437)
回答No.3

各桁のALUは次のような信号で働きます。 制御信号4個(Add,Sub,And,Or)、 各桁の入力A,B, Add時の下位桁からのCarry入力、Sub時の下位桁からのBorrow入力、 各桁の計算結果:R、Add時の上位桁へのCarry出力、Sub時の上位桁へのBorror出力 なお次のように特定の桁では設定します。 最下位桁へのCarry入力/Borrow入力は0/1, 最上位桁へのBorrow入力は0 なお論理素子としては多入力NOR素子、或いは多入力NAND素子の何れかが普通使われますので、問題で指定されている方を、指定されていなければ自分でNOR/NAND素子の何れかを選んで組み立てて下さい。 また制御信号が0有意/1有意 (Add指令信号が0として指令される....)等はNOR/NAND素子の何れを基本素子として選ぶかで有利な方(必要素子が少なくなる方)を選択する等は考えて下さい。 この問題を人に聞いて解いたつもりになっても実力が付きませんので、時間が掛っても自分で解いて下さい。

Logicun
質問者

補足

http://www.ie.u-ryukyu.ac.jp/~wada/digcir11/DigcirHandout7.pdf これの1bit版みたいなのをつくってみましたが、これでも大丈夫でしょうか?

回答No.2

各演算回路の入力を1bit増やし(以降、補助ビットと呼ぶ)、その演算回路の本来の出力と補助ビットとの論理積をその演算回路の出力とし、各演算回路の出力を論理和で束ねれば、補助ビットがOnの回路だけが動いているように見えます。 あとは、どの機能を使うかによって補助ビットを適宜切り替える回路と、本来の入力を各演算回路に分配する配線を書けば良いのではないかと思います。

  • Tacosan
  • ベストアンサー率23% (3656/15482)
回答No.1

「組み合わせ方」は「設計」する ALU の仕様で決まります. ということで, 仕様から読み取ってください.

関連するQ&A

  • 論理回路 / デコーダー / ALU

    2系統の入力A0、A1と4系統の出力B0~B3を持つ、2ビットのデコーダーを用いて 3系統のデータ入力D0,D1,carry-inと、2系統のデータ出力E,carry-outを持った、1ビットのALU回路を構成したい。 ALU回路の命令はA0とA1の2系統の入力があり、上記で設計したデコーダーを用いて、以下の表1通りに、入力と出力の間の関係を制御したい。このような1ビットALU回路を設計せよ。 表1 A0|A1|E|carry-out 0|0|3ビットの入力(D0,D1,carry-in)からなる全加算器の和ビット|3ビットの入力(D0,D1,carry-in)からなる全加算器の繰り上がりビット 0|1|D0 AND D1|0 1|0|DO OR D1|0 1|1|if(DO==D1) 1else 0|0 という問題です。 表がみにくくて申し訳ありません。 デコーダをマルチプレクサにして、4パターンつくって、それぞれの動作をするようにつなぎあわせればいいのだと思うのですがつなぎ合わせ方がわかりません。 ご教示お願い致します。できればビジュアルがあるとありがたいです。

  • 論理回路について分からないことがあります。

    論理回路について分からないことがあります。 NOR演算だけの組み合わせでAND演算を実現させるとき、論理式はどのようになるのでしょうか? よろしくお願いします。

  • ALUのオーバーフローフラグの生成条件の証明などの問題

    ALUのオーバーフローフラグの生成条件の証明などの問題 A,Bを2の補数による符号付きnビット2進数の整数入力とする。nビットALUの演算結果により生成される条件判定フラグ、すなわちN(Negative)、 V(oVerflow)フラグについて書の問に答えよ。ただし、ALUの演算結果は(F[n-1]・・・F[0])とし、ALUを構成する加算回路の桁上げ出力に おいて、最上位の桁上げ出力はC[n]、その1ビット下位の桁上げ出力をC[n-1]とする。 (1)オーバーフローフラグV(oVerflow)を生成する条件が"C[n]xorC[n-1]=1"となる事を証明せよ。 (2)上記ALUを用いた算術比較演算において、A<Bの判定条件がオーバーフローの有無に関係なく、"N xor V=1"となる事を証明せよ。 ------------------------------------------------------------ このような問題があるんですが、解答は分かりません。 証明せよとは一体どのように記述すればいいんでしょうか? あと、(2)は何故"N xor V=1"と表せるんでしょうか? 一応、自分で考えたのはこんな感じです。 (1) 加算時のオーバーフローの条件は、 符号がA,B共に負、つまりC[n]が1でかつ、nビット目が1にならずに、正の値になってしまう数であるC[n-1]=0の場合と、 符号がA,B共に正、つまりC[n]が0でかつ、nビット目が1にならずに、負の値になってしまう数であるC[n-1]=1の場合である。 よって、オーバーフローフラグが生成される条件をC[n]xorC[n-1]=1と表すことができる。 (2) 演算結果が負でかつ、オーバーフローが発生していなければA<Bだから?分かりません。

  • コンピュータはなぜ減算ができないのか?

    たとえば コンピュータでは2-1を補数を利用して計算します。 しかし、繰り下がりの概念があれば以下のように 直接計算できるはずです。    0010 -) 0001 -----   0001 元々コンピュータには、繰り下がりに対応する演算回路が ないので、引き算が足し算のように簡潔にできない と思ってよいのでしょうか? また、掛け算は足し算のループを利用して計算しているのでしょうか? 割り算は、2の補数(ビット反転+1)の引き算をループさせて実現しているのでしょうか? ということは、計算のうち割り算が一番時間がかかると思ってよいのでしょうか?

  • 生物の脳の論理回路とコンピュータの論理回路、多数決論理とAND、OR論理の違い

    生物の脳はすべて多数決論理でできています。一方コンピュータの論理回路はAND OR論理回路です。このような違いはどうして発生したのでしょうか? コンピュータがすべてAND OR論理で作られているのでAND OR論理の方が設計が楽なのではないかと思いますが、生物の脳はなぜ進化の過程でAND OR論理が選ばれなかったのでしょうか?

  • 論理回路の設計

    工業系の予習課題で論理回路の設計というものが先日出されました。今まで論理回路というものに触れたことがなかったので中々理解が進まず苦戦しています。 以下の問題が解けないので分かる方がいればお願いします 50円のタバコを販売する自動販売機を作る。入力は50円、100円、タバコ、払い戻しの四つとして、出力はタバコ、50円払い戻し、100円払い戻しの三つで考える。このタバコ販売機の組み合わせ論理回路を設計し、IC回路で作成せよ。 (1)入力と出力の条件を表にする。 (2)真理値表を作成する。 (3)出力の論理式を導く。 (4)論理式を簡略化する。 (5)回路図を作成する。 とりあえず(3)までやってみましたが初めて行ったのであっているのかわかりません。この論理式の簡略化の方法と回路図の作り方について分かる方がいれば教えてほしいです。 論理式を書いてみましたがこの出し方であってるのか分かりません

  • エクセルで特定の数字となる組み合わせを探したい

    例えばですが、0から9までの数字を2つ抽出し足し算して、特定の数字(例えば10)という数字になる組み合わせは、1と9(19)、2と8(18)、、、とありますが、これをエクセルで自動的に演算し、19、18、、、、と表示させるにはどうしたら良いでしょうか。 同じく引き算で、特定の数字となる組み合わせをエクセルで行うには、どうしたら良いでしょうか。 よろしくお願いします。

  • HDLでの回路設計

    入力信号A(2bit) 制御入力信号C 出力X1、X2 Cが0→AをX1にそのまま出力 Cが1→Aの上位ビットをX2に出力 この機能を持つ切り替え回路をHDLで設計したいと思うのですが、 いまひとつよく分かりません。 Aを連接演算で表す(?)とかAを右に1シフトさせて、それを1bitの X2に出力する(ビット幅が違うけど大丈夫なのだろうか?)など、 考えてみてもそれをどう書けばいいのかわかりません。 根本的に考え方が違っているのかもしれませんが・・・。 教えていただけないでしょうか。お願いします。

  • 2進数の加減乗除の仕組み

    もし似たような質問がありましたら申し訳ありません。 色々と調べたのですが、混乱してわからなくなってしまい困っています。 (1)コンピュータが2進数で加減乗除を計算できる仕組みとはなんでしょうか? (2)2進数の加減乗除の仕組みとは、具体的にはなんでしょうか? (3)AND、OR、NOTの回路が演算回路なんでしょうか? たくさん質問してしまいすみません。 皆様の回答お待ちしております。

  • 全加算器

    ・EXOR回路をAND、OR、NOT回路のみを用いて書くとどのようになりますか? ・全加算器を省略せずにAND、OR、NOT回路のみ用いて論理回路を描くとどのようになりますか? できれば回路を最小化したもので教えてほしいです。 論理式の変換も含めて教えてもらえると助かります! お願いします。