M系列のレジスタを0で始める、他
今日は、M-系列の回路について2つの話題を提供します。
ひとつは、ガロア型(MSRG)とフィボナッチ型(SSRG)の入れ替えの手法です。
今ひとつは、開始時点のリセットについてです。
M-系列のシフトレジスタは、すべてのビットを 0 にすると次のクロックでも 0 になって動作しなくなります。
ところが、CMOS のチップは電源が投入された段階では一般的に 0 にリセットされる構造になっています。 ですからリセット回路が別に必要になってしまいます。
もともと 0 でもスタートできるようにしておけば、リセット回路が無くても動くようになります。

まず、回路図の省略について、ご了解をいただきます。 データラッチと XOR をいちいち書いていたのでは図が大きくなりますから、以下では右のように省略した書き方をします。 上が本来の書き方です。
ガロアとフィボナッチの入れ替え方法右に、ひとつの例として、7ビットのガロア型の回路構造と、フィボナッチ型の回路構造を書いて見ました。
どちらも 127 サイクルで循環しますから Maximal length になっています。 この2つのどちらかのタップ位置が分かっていると、他方も知ることができます。 青い線を上からたどってみてください。 鏡に映して左右を入れ替えた場所のタップになることが分かります。
出てくるビットの順は2者で異なります。
他のM系列の回路でも同じように変換できます。

タップが2つのときは、右の様にトポロジ的に同じものになります。
0 でスタートする方法
ガロアでもフィボナッチでも、それが M 系列のタップになっていれば、どこかのビットを反転してやるだけで 0 から開始できるようになります。
但し、一循環する間に欠損するビットパターンはやはり存在し、それは反転位置によって特有の値になります。 また 0 の時と同じように、もし何らかの理由でその値が設定されると抜け出ることができません。

一例として、[7,3]f の回路で、ビット 1 の入力位置にインバータを入れてみますと、0 から 7Eh までの値を取りますが、7Fh にはなりません。 7Eh という表記は 1111110 というビット配列を 16 進数で表した、という意味です。
別の例として、[7,6,5,2]g の回路で、ビット7の出口にインバータを入れてやる(データラッチのQインバートを使う)と 00h から 7Fh まで出るのですが、62h のみが発生しません。
下の表は、[7,4]g と [7,3]f の循環の一部を表したものです。 [7,4]gI5 というのは、[7,4]g のビット5の入力にインバータをかませたものです。 [7,3]fI1 は上の例に書いた [7,3]f のビット1入力で反転させたものです。

-----------------
[M-系列、関連記事]
- NRZ 信号と PRBS とカップリング
- M-系列のタップ位置の表とプログラム
- M系列で White Noise の生成
