• 締切済み

同期式カウンタ

同期アップカウンタの設計で状態表を作ろうとしてるのですが、 2n進カウンタではないので、未使用状態からの”次の状態”の数値が分かりません。 考え方を教えてくれませんか。 例:12進カウンタなら、13~16の未使用状態からの“次の状態”です。

みんなの回答

  • rabbit_cat
  • ベストアンサー率40% (829/2062)
回答No.4

こういう未使用状態をどうするかは、一般に3つの方針があります。 1. リセットをかけることにして、もし不正な状態になったらどうするかは考えない 2. 不正な値になったら次のサイクルで正常な値に戻すような論理をいれる。 3. 不正な値になったら、有限なサイクル後に(必ずしも次のサイクルとは限らない)正常な値に戻すような論理をいれる。この場合とくにウォッシュアウトシーケンスなんていう呼び方をしたりします。 ウォッシュアウトをどう設計するかは、基本的には設計者の自由ですが、昔(ゲート数をちょっとでも減らすことが重要だった時代)には、職人技みたいなウォッシュアウトシーケンスがいくつもありました。 有名なのはジョンソンカウンタのウォッシュアウトシーケンスなんかでしょうか。標準ロジック4022の等価回路で上のほうにある2つのNORの部分です。 http://www.datasheetarchive.com/pdf-datasheets/Datasheets-110/DSAP007463.pdf 興味があるなら、とりあえずこの本をお勧めします。 http://www.amazon.co.jp/exec/obidos/search-handle-url/?field-keywords=9784789830447

  • mtaka2
  • ベストアンサー率73% (867/1179)
回答No.3

> 何かの原因(実際、それが起こるかどうかは置いといて起こったとして)で > 13~16の未使用状態の“次の状態”に入る数値を知りたいのです。 > ロックアウトの検証と状態図も作る予定なので、必要なことなのです。 既に回答1・2で述べてられている通り、 13~16の「次の状態」がどうなるかは「設計者の自由」です。 12進カウンタという仕様を満たすためには 1行目「0000」の次状態は「0001」 2行目「0001」の次状態は「0010」 … 12行目「1011」の次状態は「0000」 という所までは、絶対に満たさなければならない条件なわけですが、 13行目以降の状態は、12進カウンタとしては使われていないわけですから、 その次状態がどんな値になっていようとも、 1行目~12行目が条件を満たしていれば「12進カウンタ」としては仕様通りの動作になります。 13行目以降については、設計者にとって都合の良い値を好き勝手に割り当ててしまえばいいのです。

  • mtaka2
  • ベストアンサー率73% (867/1179)
回答No.2

12~15は通常ありえない状態なわけですから、その次の状態は「何でも構わない」です。どんな値でも問題ありません。 実際の設計方針としてどういう値にしておくかというと、 A) 通常動作中にノイズなどの誤動作で12~15になってしまった時に備えて、次のクロックでは0~11の中のどれかの値(0が無難でしょう)に戻るようにする B)回路構成が単純になる(論理式が単純になる)ような値を選ぶ。 のどちらかにするのが普通かと思います。 Bの方は慣れないとちょっと難易度が高いですね。

okjiuhgy
質問者

補足

説明が悪かったのか、私の求めた回答と違いましたので、補足します。 何かの原因(実際、それが起こるかどうかは置いといて起こったとして)で13~16の未使用状態の“次の状態”に入る数値を知りたいのです。 ロックアウトの検証と状態図も作る予定なので、必要なことなのです。 お願いします。

  • xs200
  • ベストアンサー率47% (559/1173)
回答No.1

一般には電源オン時にリセットするので考慮する必要ありません 万一、12から15の状態になってしまっても正常な状態に復帰することを論理式に代入して確認すればいいです

okjiuhgy
質問者

補足

説明が悪かったのか、私の求めた回答と違いましたので、補足します。 何かの原因(実際、それが起こるかどうかは置いといて起こったとして)で13~16の未使用状態の“次の状態”に入る数値を知りたいのです。 ロックアウトの検証と状態図も作る予定なので、必要なことなのです。 お願いします。