跳到主要内容

東京工業大学 工学院 情報通信系 2018年8月実施 S4 二進・BCD加減算器

Author

祭音Myyura (co-authored with GPT 5.6 SOL)

Description

論理式は最少の積項からなる NOT–AND–OR 形式で答える。

  1. 全加算器の入力 ak,bk,cka_k,b_k,c_k に対し,和 sks_k と桁上げ ck+1c_{k+1} を求めよ。
  2. NN ビットの BB を反転した BB'AAcin=1c_{\rm in}=1 を加えて減算する。BB' は何の補数か(ア),B+B=B'+B=(イ)1-1A+B+1=AB+A+B'+1=A-B+(イ)となる。d=0d=0ABA\ge B),d=1d=1A<BA<B)としたとき,d=d=(ウ)をキャリー coutc_{\rm out} で表せ。
  3. 1桁の BCD 入力 0A,B90\le A,B\le9cinc_{\rm in} の二進加算結果を S=c4s3s2s1s0S'=c_4s_3s_2s_1s_0 とする。BCD の桁上げ cout=[S10]c_{\rm out}=[S'\ge10] と,桁上げ時に下位4ビットへ加える補正定数を求めよ。
  4. 制御信号 e=0e=0 で BCD 加算,e=1e=1 で BCD 減算を行う。減算では BB を反転して A+B+cinA+B'+c_{\rm in} を計算し,cin=0c_{\rm in}=0 は下位桁からの借りを表す。減算のキャリーは c4c_4c4=0c_4=0 のとき補正定数 (1010)2(1010)_2 を下位4ビットに加える。 a) 入力補正器の各出力 bkb'_k,b) 共通の coutc_{\rm out},c) 加減算補正定数 h3h2h1h0h_3h_2h_1h_0 を求めよ。

题目描述

设计全加器、补码减法器、BCD 十进制加减法的进位检测与校正逻辑。

Kai

1)

和は奇数個の入力が1のときに1,桁上げは2個以上が1のときに1となる。

sk=aˉkbˉkckaˉkbkcˉkakbˉkcˉkakbkck,\boxed{s_k=\bar a_k\bar b_kc_k\vee\bar a_kb_k\bar c_k\vee a_k\bar b_k\bar c_k\vee a_kb_kc_k},
ck+1=akbkbkckckak.\boxed{c_{k+1}=a_kb_k\vee b_kc_k\vee c_ka_k}.

2)

B=2N1BB'=2^N-1-B なので

()=1,()=2N,()=cˉout.\boxed{(\text{ア})=1,\quad(\text{イ})=2^N,\quad(\text{ウ})=\bar c_{\rm out}}.

ABA\ge B のときだけ AB+2N2NA-B+2^N\ge2^N となり,キャリーが1となる。

3)

S[0,19]S'\in[0,19] より

cout=c4s3s2s3s1.\boxed{c_{\rm out}=c_4\vee s_3s_2\vee s_3s_1}.

十進の基数10と二進4ビットの基数16の差を補うので,加える定数は (0110)2\boxed{(0110)_2}

4)a)

e=0e=0 でそのまま,e=1e=1 で反転するため

bk=eˉbkebˉk.\boxed{b'_k=\bar e b_k\vee e\bar b_k}.

4)b)

加算時の式と減算時の c4c_4 を選択すると

cout=c4eˉs3s2eˉs3s1.\boxed{c_{\rm out}=c_4\vee\bar e s_3s_2\vee\bar e s_3s_1}.

4)c)

c=coutc=c_{\rm out} と略記する。必要な補正は (e,c)=(0,1)(e,c)=(0,1)01100110(1,0)(1,0)10101010,それ以外は 00000000。よって

h3=ecˉ,h2=eˉc,h1=ecˉeˉc,h0=0.\boxed{h_3=e\bar c,\quad h_2=\bar ec,\quad h_1=e\bar c\vee\bar ec,\quad h_0=0}.