跳到主要内容

電気通信大学 情報理工学研究科 情報・ネットワーク工学専攻 2021年8月実施 選択問題 計算機の基本原理

Author

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

Description

4 脚の椅子 A, B, C, D の着席を、それぞれ入力 a,b,c,d{0,1}a,b,c,d\in\{0,1\} で表す。入力は各クロックで更新される。

  • 回路 MM の出力 uu は、3 人以上の着席が 3 回連続したとき、かつそのときに限り 1 となる。
  • 回路 NN の出力 vv は、3 人以上の着席が 3 回連続するか、4 人の着席が 2 回連続したとき、かつそのときに限り 1 となる。

問1

MM を組合せ回路 M1M_1 と順序回路 M2M_2 に分ける。M1M_1 は 3 人以上が同時に着席しているとき s=1s=1 を出力し、M2M_2ss から uu を生成する。

  1. ss の簡単な加法標準形を求めよ。
  2. 状態数が最小の M2M_2 の状態遷移を示せ。
  3. 状態割当てを行い、次状態と uu の論理式を求めよ。
  4. D 型フリップフロップと AND, OR, NOT ゲートだけで MM を構成せよ。

問2

同様に、状態数が最小の NN の状態遷移を示し、状態割当て後の次状態と vv の加法標準形を求め、D 型フリップフロップと AND, OR, NOT ゲートだけで構成せよ。

题目描述

根据四把椅子的周期性占用信号,设计两个 Mealy 型同步时序电路:一个检测“至少三人连续三次”,另一个还要检测“四人连续两次”。要求给出最小状态机、状态编码、下一状态/输出逻辑及 D 触发器实现。

Kai

問1

(a)

3 人以上が着席する条件は

s=abc+abd+acd+bcd.\boxed{s=abc+abd+acd+bcd}.

(b)

S0,S1,S2S_0,S_1,S_2 を、それぞれ「末尾の連続した s=1s=1 が 0 回、1 回、2 回以上」とする。遷移表は次のとおりである。表中は「次状態 / 出力」である。

現状態s=0s=0s=1s=1
S0S_0S0/0S_0/0S1/0S_1/0
S1S_1S0/0S_0/0S2/0S_2/0
S2S_2S0/0S_0/0S2/1S_2/1

三つの状態は、それぞれ今後 3 回、2 回、1 回の s=1s=1 で初めて出力 1 となるため互いに区別でき、状態数は最小である。

(c)

状態を (q1,q0)(q_1,q_0)

S0=00,S1=01,S2=11S_0=00,\qquad S_1=01,\qquad S_2=11

と割り当てる。このとき

q0=s,q1=sq0,u=sq1.\boxed{q_0'=s,\qquad q_1'=sq_0,\qquad u=sq_1}.

(d)

M1M_1 で (a) の ss を生成し、2 個の D 型フリップフロップに

D0=s,D1=sq0\boxed{D_0=s,\qquad D_1=sq_0}

を入力する。出力ゲートを u=sq1u=sq_1 とすればよい。いずれも AND, OR, NOT だけで構成できる。

問2

4 人全員が着席している条件を

t=abcdt=abcd

とおく。t=1t=1 なら必ず s=1s=1 である。次の 4 状態を用いる。

  • T0T_0:末尾の s=1s=1 がない。
  • T3T_3:直前が 3 人着席で、連続長は 1。
  • T4T_4:直前が 4 人着席で、連続長は 1。
  • T2T_2s=1s=1 が 2 回以上連続している。

可能な入力 (s,t)=00,10,11(s,t)=00,10,11 に対する遷移は次のとおりである。

現状態000010101111
T0T_0T0/0T_0/0T3/0T_3/0T4/0T_4/0
T3T_3T0/0T_0/0T2/0T_2/0T2/0T_2/0
T4T_4T0/0T_0/0T2/0T_2/0T2/1T_2/1
T2T_2T0/0T_0/0T2/1T_2/1T2/1T_2/1

T3T_3T4T_4 は次の入力 1111 で区別でき、T0,T2T_0,T_2 も必要な残り連続回数が異なるため、4 状態は最小である。

状態を

T0=00,T3=01,T4=10,T2=11T_0=00,\qquad T_3=01,\qquad T_4=10,\qquad T_2=11

と割り当てると、加法標準形は

q1=sq1+sq0+st,q0=sq1+sq0+stˉ,v=q1qˉ0t+q1q0s.\boxed{ \begin{aligned} q_1'&=sq_1+sq_0+st,\\ q_0'&=sq_1+sq_0+s\bar t,\\ v&=q_1\bar q_0t+q_1q_0s. \end{aligned}}

したがって 2 個の D 型フリップフロップへ上式の q1,q0q_1',q_0' を入力し、同じく上式で vv を生成すれば、AND, OR, NOT ゲートだけで NN を構成できる。