電気通信大学 情報理工学研究科 情報・ネットワーク工学専攻 2022年8月実施 選択問題 計算機の基本原理
Author
祭音Myyura (co-authored with GPT 5.6 SOL)
Description
西暦 2019--2099 年の下 2 桁と令和の年を相互変換する論理回路を考える。2 の補数による定数加減算を示し、必要なビット数、全加算器だけによる西暦から令和への変換回路、その簡単化、および切替信号付き双方向変換回路を構成せよ。
题目描述
设计公历 2019--2099 年后两位与令和年份之间的双向转换电路:用二进制补码完成常数加减,确定位宽,以全加器实现并化简指定级,最后加入方向控制信号。
Kai
(1)
令和の年は西暦下 2 桁から 18 を引けばよい。7 ビットで表すと、
22−18=22+18+1
であり、
0010110+ 1101101+ 00000011 0000100
となる。最上位の桁上がりを捨てて、
00001002=4
を得る。
(2)
西暦 2019 年は令和 1 年、西暦 2099 年は令和 81 年である。したがって入力可能範囲は
00000012≤r≤10100012
であり、必要な最小ビット数は 7 である。
(3)
18=00100102 の 1 の補数
(k6⋯k0)=1101101
を定数入力とし、最下位の桁上がり入力を c0=1 とする。第 i 全加算器への入力を (xi,ki,ci)、和出力を yi、桁上がりを ci+1 として 7 個を直列接続し、c7 は捨てる。
これにより y≡x−18(mod128) となり、指定範囲では通常の差 x−18 に一致する。
(4)
i=0 では入力が (x0,1,1) なので、
y0=x0,c1=1.
したがって配線だけでよい。
i=4 では入力が (x4,0,c4) なので、
y4=x4⊕c4,c5=x4c4.
(5)
m=t とし、18 の第 i ビットを bi とする。各全加算器の定数側入力を
zi=bi⊕m={t,t,i=1,4,i=0,2,3,5,6,
とし、c0=m として (3) と同じ 7 段の全加算器へ入力する。
- t=0 では z=18、c0=1 なので y=x−18。
- t=1 では z=18、c0=0 なので y=x+18。
したがって、全加算器と m=t を作る 1 個の NOT ゲートだけで双方向変換を実現できる。