シフトレジスタ (Shift Register)
5月 7, 2009
説明:
前回のフリップフロップの応用、シフトレジスタです。
本来はもっとシンプルなロジック(D-FF 4つの縦続など)で良いのですが、QC では動作しないため、クロックの立ち上がりと立ち下がりのそれぞれで動作するMaster-Slave 方式で組んでみました。
Logic で組んだ4bit のシフトレジスタ2段と、Mathematical Expression による8bit シフトレジスタを比較しています。
シフトレジスタとは
bit 列をシフト(横にずらす)します。シフトの方向によって右シフト、左シフトがあります。
シフトによって最下位のbit が空白になりますが、0 をつめる算術シフトと、外部Data をつめるものがあります。
シフトによって溢れた最上位bit を次段のシフトレジスタの最下位に接続することで、多bit 化することができます。
シフトレジスタによって、シリアルデータをパラレルデータに変換(またはその逆)を行うことができます。また、bit 列を2進数と見た場合、左シフトは2倍、右シフトは1/2倍となり、2nの乗算器になります。
動作:
上下2段の動作は同じです。(上がMathematical、下がLogic)
・Shift をON にして、左シフトを開始します
・Data をON/OFF すると、シフトレジスタに取り込まれます
・Load をON にすると、下段の8bit DIP SW からデータを取り込みます(シフト停止)
・Load をOFF にすると、DIP SW から取り込んだデータをシフトします
・Ring をON にすると、最上位bit から溢れたデータが最下位bit に戻ります
・Shift をOFF にすると、シフトを停止します
見所:
これまでの応用になります。