プロが教えるわが家の防犯対策術!

論理回路の問題を教えてください。
以下の問題について、(1)と(2)は一応解きましたが、(3)が解けませんでした。
どなたか(1)、(2)の添削も含め、(3)の解説をお願いします。

問題
図2.2は、ある同期式順序回路のタイムチャートを示している。
この同期式順序回路は、Reset信号が1の時CLK信号の立ち上がりエッジに同期して動作し、
1CLKサイクルの間Outに1を出力し、続く2CLKサイクルはOutにOを出力する動作を繰り返す。

(1)この同期式順序回路を3つの状態A,B,Cをもつ状態機械として設計する時の状態遷移図を示せ。
ただし、Resetが0のときは状態Aとなること。

(2)3つの状態A、B,Cに対して2つの状態変数S1、S2を表2.1のように割り当てる。
1CLKサイクル後の状態をS1’,S2’とする時、S1’とS2’および出力Outを
S1とS2を用いた式で表せ。

(3)この同期式順序回路を2つのDフリップフロップを用いて設計し、その回路図を示せ。

問題は以上です。
(1)は、添付した写真の上の図です。
(2)は、表2.1にS1’とS2’とOutを足して、それぞれの値が1の時を選ぶと、
S1’=¬S1・S2
S2’=¬S1・¬S2+S1・¬S2=¬S2
Out=S1・¬S2
となりました。
(3)は全くわかりませんでした。

よろしくお願いします。

※添付画像が削除されました。

A 回答 (6件)

現実にはReset 入力は非同期なのが殆どですが、


>Resetが0のときは状態Aとなること。
の一文から「Reset入力は非同期」と解釈します。

(1)の回答について

質問者さんの考えだと、タイムチャートの左から
Reset=0 の時が状態(A)、
Reset=1 で Out=0 の期間が状態(B)、
Out=1 の期間が状態(C)...
という事だと推測しました。

「CLK は立ち上がりエッジに同期して動作」とあるので、
「エッジである」事を示す表現にするべきです。

・遷移 (A)→(B) の条件が Reset=1 となってますが、NGです。
  Reset=1 だけで遷移するのは出題内容
>CLK信号の立ち上がりエッジに同期して動作し
  に反します。
  遷移するタイミングは CLK↑ですよね。
・状態(B)の部分に Out=1 を出力する、と記すといいです。
  既にここで状態(B)が質問者さんの考えと違っています。

・遷移(B)→(C) の条件は同様に  CLK↑
・状態(C)の部分に Out=0 を出力する、と記すといいです。

さて、状態(C)は、CLK↑ 1回目は状態保持、2回目で(B)に遷移、
と言う事です。1回目、2回目を識別する仕組みは後で考えるとして
遷移条件は以下のように書いてしまいます。

・遷移(C)→(C) の条件 CLK↑1回目
・遷移(C)→(B) の条件 CLK↑2回目

(そういう意味で、状態が3つでなく4つで考える方がわかり易いんですけどね。
出題者の意図が不明ですがとりあえず従って進めます)

あと
>Resetが0のときは状態Aとなること。
に合うように、以下の2つの遷移が要ります。
・遷移(B)→(A) の条件 Reset=0
・遷移(C)→(A) の条件 Reset=0

(2)について
そうですね。まず表に追記しましょう。

ところでこの問題、やっぱりおかしいと思います。

>1CLKサイクル後の状態
とあるので、
状態(C)の Out=0 は 2CLKサイクル期間同じ状態ですが、
分けて考える必要があります。

   S1 S2 S1' S2' Out
A  0  0  0   1   0
B  0  1  1   0   1
C1 1  0  1   1   0
C2 1  1  1   0   0

先にも触れたように、やはり「状態は4つ」と考えるべきだと思います。

上のようにC1,C2 に分けたものから式を起こせば、
・S1' = ^S1・S2
     + S1・^S2
     + S1・S2
   = ^S1・S2 + S1

・S2'= ^S1・^S2
     + S1・^S2

となります。


(3)について。

S1'、S2' は、それぞれ S1、S2 の 1CLKサイクル後の予定の値ですから、

D フリップフロップ (以下DFF) の D入力に与えてやればいいです。
「論理回路の問題を教えてください。」の回答画像1
    • good
    • 0

状態遷移図の例です。

「論理回路の問題を教えてください。」の回答画像2
    • good
    • 0

No.1,2 です。


「状態は4つと考える方がよい」と、それ前提で書いてしまいましたが、
出題の条件の通り3つで回答しなくてはいけませんよね。

ちょっと考えますのでしばしお待ちを。
    • good
    • 0

No.1-3 です。

できました。

ずっとシンプルです。
変に混乱の元を書いてしまいすみませんでした。

  S1 S2 S1' S2' Out
A 0  0  0   1   0
B 0  1  1   0   1
C 1  0  0   0   0

S1'=^S1・S2
S2'=^S1・^S2
Out=^S1・S2
   =S1'
「論理回路の問題を教えてください。」の回答画像4
    • good
    • 0
この回答へのお礼

a-me-ma-さん、非常に詳しい解説ありがとうございました。
なるほど、そのような回路図になるのですね。
この問題が理解できたおかげで、他の問題も解決いたしました!
本当にありがとうございました!

お礼日時:2010/06/26 22:50

何の反応もないけどわかってんのか?


何か言えよ。
知りたい事解ったら後はどうでもいい。と思ってるなら質問文に書いとけよ。
回答しないから、こんなイヤな思いをしなくて済むからよ。
礼儀も知らないようなヤツがしれっと質問するな。迷惑だ

この回答への補足

a-me-ma-さん、反応が遅くなって大変申し訳ありませんでした。
また、不快な思いをさせてしまった事に対し、深くお詫び申し上げます。
すぐに回答欲しいというマークを出しているにもかかわらず、
こちらがすぐに反応しなかったことを深く反省しようと思います。
大変恐縮ですが、もしお許し下されば、今後ともご教授お願いいたします。

問題については、解説を熟読した後、補足をしたいと思います。

補足日時:2010/06/26 02:14
    • good
    • 0

あらま。

放置、というわけでもなかったみたいですね..
気になってたので、ちょっと言葉がすぎました。すみません。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!