跳到主要内容

東京工業大学 工学院 情報通信系 2016年8月実施 S4 逐次除算器と状態遷移

Author

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

Description

非負整数を最上位ビットから入力し,定数 N2N\ge2 で割った商を最上位ビットから出力する。現状態を余り A=RkA=R_k,入力を xx とすると

B=2A+x,z=B/N,D=Rk+1=BmodN.B=2A+x,\qquad z=\lfloor B/N\rfloor,\qquad D=R_{k+1}=B\bmod N.

初期状態は R0=0R_0=0。論理式は最少の積項からなる NOT–AND–OR 形式で答える。

  1. N=5N=5,入力 10110011011001 の各時刻の A,B,z,DA,B,z,D と最終的な商 Z6Z_6,余り R7R_7 を求めよ。
  2. N=3N=3A=(a1a0)2A=(a_1a_0)_2, B=(b2b1b0)2B=(b_2b_1b_0)_2 とする。BB の各ビットを求めよ。
  3. 0B50\le B\le5 に対し C=B3C=B-3 を3ビットの2の補数で表す。B=6,7B=6,7 を don't care として CC の各ビットを簡単化せよ。z=[C0]z=[C\ge0] と,D=CD=C'C0C\ge0)または BB'C<0C<0)の選択式も示せ。ただし C=(c1c0)2C'=(c_1c_0)_2, B=(b1b0)2B'=(b_1b_0)_2
  4. N=5N=5 の状態遷移表を作り,状態符号を Q0=000,Q1=001,Q2=011,Q3=010,Q4=100Q_0=000,Q_1=001,Q_2=011,Q_3=010,Q_4=100 として次状態 (d2d1d0)(d_2d_1d_0) と出力 zz を求めよ。

题目描述

分析从高位到低位进行常数除法的时序电路,填写运行表、化简组合逻辑,并按指定状态编码设计除以5的有限状态机。

Kai

1)

kk0123456
xx1011001
AA0120124
BB1251249
zz0010001
DD1201244

89=517+489=5\cdot17+4 なので Z6=(0010001)2=17, R7=4\boxed{Z_6=(0010001)_2=17,\ R_7=4}

2)

B=2A+xB=2A+x は左シフトして xx を付ける操作なので

b2=a1,b1=a0,b0=x.\boxed{b_2=a_1,\quad b_1=a_0,\quad b_0=x}.

3)a)

B=0,1,2,3,4,5B=0,1,2,3,4,5 に対して CC は順に 101,110,111,000,001,010101,110,111,000,001,010。未使用入力を用いて簡単化すると

c2=bˉ2bˉ0bˉ2bˉ1,c1=b0bˉ1bˉ0b1,c0=bˉ0.\boxed{\begin{aligned} c_2&=\bar b_2\bar b_0\vee\bar b_2\bar b_1,\\ c_1&=b_0\bar b_1\vee\bar b_0b_1,\\ c_0&=\bar b_0. \end{aligned}}

3)b)

符号ビットが c2c_2 だから

z=cˉ2,d1=b1c2c1cˉ2,d0=b0c2c0cˉ2.\boxed{z=\bar c_2,\quad d_1=b_1c_2\vee c_1\bar c_2,\quad d_0=b_0c_2\vee c_0\bar c_2}.

空欄(ア)~(オ)は cˉ2,c2,cˉ2,c2,cˉ2\bar c_2,c_2,\bar c_2,c_2,\bar c_2

4)a)

現状態x=0x=0 の次状態x=1x=1 の次状態x=0x=0 の出力x=1x=1 の出力
Q0Q_0Q0Q_0Q1Q_100
Q1Q_1Q2Q_2Q3Q_300
Q2Q_2Q4Q_4Q0Q_001
Q3Q_3Q1Q_1Q2Q_211
Q4Q_4Q3Q_3Q4Q_411

4)b)

未使用符号 101,110,111101,110,111 を don't care とすると

d2=a2xa0a1xˉ,d1=a0aˉ1a2xˉaˉ0a1x,d0=aˉ0a1a0aˉ1xˉaˉ0aˉ2x,z=a2a1xaˉ0a1.\boxed{\begin{aligned} d_2&=a_2x\vee a_0a_1\bar x,\\ d_1&=a_0\bar a_1\vee a_2\bar x\vee\bar a_0a_1x,\\ d_0&=\bar a_0a_1\vee a_0\bar a_1\bar x\vee\bar a_0\bar a_2x,\\ z&=a_2\vee a_1x\vee\bar a_0a_1. \end{aligned}}