クロックの立上りエッジで,データを入力の最下位ビットに取り込んで上位方向へシフトし,ストローブの立上りエッジで値を確定する8ビットのシリアル入力パラレル出力シフトレジスタがある。
各信号の波形を観測した結果が図のとおりであるとき,確定後のシフトレジスタの値はどれか。
ここで,数値は16進数で表記している。
正答2
解説
正解は2です。
図の波形では、クロックの立上りごとに点線が引かれています。
ストローブの立上りの位置にも1本点線があり、その後にもう1回クロックが立ち上がっています。
シフトレジスタは、クロックの立上りのたびにその時点のデータ信号を最下位ビットに取り込み、それまでの値を1ビットずつ上位へずらします。
ストローブの立上り時点で、それまでに取り込んだ直近8ビットが確定します。
【計算】
ストローブが立ち上がるまでに、クロックの立上りは9回あります。
ストローブの後の10回目の立上りは、値の確定後なので数えません。
各立上りでのデータは、古い順に1、1、0、0、0、1、1、0、1です。
最初の1は9回目の取込みで最上位からあふれて消えます。
残る8ビットは、上位から1、0、0、0、1、1、0、1です。
2進数10001101を4ビットずつ区切ると1000と1101になります。
16進数では8Dです。
【選択肢別解説】
1:× 63は2進数01100011で、最初の8回分のビット列11000110を逆順に並べた値です。
取り込む順番と上位・下位の関係を取り違えています。
2:○ 直近8回分のデータを上位から並べた10001101で、16進数8Dです。
3:× B1は2進数10110001で、8Dのビット列10001101を逆順に並べた値です。
最下位に取り込んで上位へシフトするので、最後に取り込んだ値が最下位になります。
4:× C6は2進数11000110で、1回目から8回目までの取込み結果です。
9回目の立上り(ストローブ直前)の取込みを数え落としています。
【ポイント】
シリアル入力のシフトレジスタは、最初に入ったビットほど上位にずれていきます。
確定のタイミング(ストローブの立上り)より後のクロックは数えないことが重要です。