2

私は VLSI プロジェクトを行っており、DSCH というツールを使用してバレル シフターを実装しています。同じ回路図は、トランスミッション ゲートを使用して実現されています。

回路が行うことは、1クロックサイクルでデコーダから選択された数の回転で8ビットワード(8ビットシフター)を回転させることです。
しかし、ローテーターの使い方と、回転しているのになぜシフターと呼ばれているのかを知りたいです。

また、使用方法を示すために現在の回路に追加できる Rotator に関するいくつかのアプリケーションを教えてください。

4

1 に答える 1

1

回転は、一方の端から出ているビットがもう一方の端の入力にフィードバックされ、おそらくキャリーフラグビットを介してシフトしているだけです。単純な実装のレベルでは、両方の操作に1つの回路を用意し、入力側のソースを反対側の出力、0、または1の間で選択するための追加の制御ラインをいくつか用意することは理にかなっています。 2の補数のシフトは、多くの場合組み込まれているもう1つの選択可能なオプションです。

スタックエクスチェンジサイトは、アプリケーションに関する質問を含む「リスト」の質問にはあまり適していませんが、いくつか頭に浮かぶことがあります。

  • ベクトルで別の値のすべてのビットを順番にテストし、それを繰り返し実行する場合は、最初の1ビットアクティブ値を何度も回転させ続けるだけで、再初期化する必要はありません。

  • 2つの部分(通常は2バイト)の値を入れ替えて、半分にローテーションすることで、エンコードの反対の目的を模倣することができます。言い換えると、2つのペアリング可能であるが独立してアクセス可能なレジスターの値の単一操作スワップである可能性があります(ALとAHが一緒にリアルモードx86でAXを構成していると考えてください)。ただし、これは、バイトアドレス可能なマシンの32ビット値などの4つの部分からなる値の2エンディアンスワップでは機能しません。

  • さまざまなコーディング、チェックサム、およびハッシュスキームにより、値を変換したい場合があります

于 2012-11-16T15:20:34.880 に答える