東京工業大学 工学院 情報通信系 2018年8月実施 S4 二進・BCD加減算器
Author
祭音Myyura (co-authored with GPT 5.6 SOL)
Description
論理式は最少の積項からなる NOT–AND–OR 形式で答える。
- 全加算器の入力 ak,bk,ck に対し,和 sk と桁上げ ck+1 を求めよ。
- N ビットの B を反転した B′ と A に cin=1 を加えて減算する。B′ は何の補数か(ア),B′+B=(イ)−1,A+B′+1=A−B+(イ)となる。d=0(A≥B),d=1(A<B)としたとき,d=(ウ)をキャリー cout で表せ。
- 1桁の BCD 入力 0≤A,B≤9 と cin の二進加算結果を S′=c4s3s2s1s0 とする。BCD の桁上げ cout=[S′≥10] と,桁上げ時に下位4ビットへ加える補正定数を求めよ。
- 制御信号 e=0 で BCD 加算,e=1 で BCD 減算を行う。減算では B を反転して A+B′+cin を計算し,cin=0 は下位桁からの借りを表す。減算のキャリーは c4,c4=0 のとき補正定数 (1010)2 を下位4ビットに加える。
a) 入力補正器の各出力 bk′,b) 共通の cout,c) 加減算補正定数 h3h2h1h0 を求めよ。
题目描述
设计全加器、补码减法器、BCD 十进制加减法的进位检测与校正逻辑。
Kai
和は奇数個の入力が1のときに1,桁上げは2個以上が1のときに1となる。
sk=aˉkbˉkck∨aˉkbkcˉk∨akbˉkcˉk∨akbkck,
ck+1=akbk∨bkck∨ckak.
B′=2N−1−B なので
(ア)=1,(イ)=2N,(ウ)=cˉout.
A≥B のときだけ A−B+2N≥2N となり,キャリーが1となる。
S′∈[0,19] より
cout=c4∨s3s2∨s3s1.
十進の基数10と二進4ビットの基数16の差を補うので,加える定数は (0110)2。
4)a)
e=0 でそのまま,e=1 で反転するため
bk′=eˉbk∨ebˉk.
4)b)
加算時の式と減算時の c4 を選択すると
cout=c4∨eˉs3s2∨eˉs3s1.
4)c)
c=cout と略記する。必要な補正は (e,c)=(0,1) で 0110,(1,0) で 1010,それ以外は 0000。よって
h3=ecˉ,h2=eˉc,h1=ecˉ∨eˉc,h0=0.