2012-11-16 2 views
2

VLSI 프로젝트를하고 있는데 DSCH라는 도구를 사용하여 배럴 쉬프터를 구현하고 있습니다. 동일한 설계도는 전송 게이트를 사용하여 실현됩니다.배럴 쉬프터의 적용

회로의 역할은 1 클럭 사이클에서 디코더에서 선택한만큼의 ​​회전으로 8 비트 워드 (8 비트 시프터)를 회전시킵니다.
하지만 회 전자의 사용법을 알고 싶습니다. 회전하는 경우에도 회 전체가 여전히 시프터로 불리는 이유는 무엇입니까?

Rotator에 대한 일부 응용 프로그램도 현재 회로에 추가하여 사용법을 알려주십시오.

답변

1

회전은 한쪽 끝에서 나가는 비트가 다른 쪽 끝의 입력으로 다시 전달되면서 가능하면 캐리 플래그 비트를 통해 이동합니다. 간단한 구현의 수준에서는 입력측의 소스를 다른 쪽 출력 0 또는 1 사이에서 선택하는 몇 가지 추가 제어 라인을 사용하여 두 작업에 대해 하나의 회로를 갖는 것이 합리적입니다. 오른쪽 중 부호 확장 2의 보수 수의 변화는 종종 내장 다른 선택 옵션이 될 것

stackexchange 사이트가 정말 응용 프로그램에 대한 포함 "목록"질문에 적합하지만, 몇 마음에 와서되지 않습니다.

  • 하는 경우 벡터가 차례로 다른 값의 모든 비트를 테스트하고 반복적으로 수행하기를 원한다면, 다시 처음 초기화 할 필요없이 첫 번째 비트 활성 값을 계속 회전시킬 수 있습니다.

  • 두 부분으로 (일반적으로 2 바이트) 값을 반대로 회전하여 인코딩의 반대 엔티티를 모방 할 수 있습니다. 또는 다른 방법으로 말하면, 두 개의 싸울 수도 있지만 독립적으로 액세스 할 수있는 레지스터의 값을 단일 작업으로 스왑 할 수 있습니다 (AL 및 AH가 함께 리얼 모드 x86에서 AX를 구성한다고 생각하십시오). 그러나 바이트 - 주소 지정이 가능한 컴퓨터에서 32 비트 값과 같이 네 부분으로 구성된 값을 두 엔디안 스왑으로 처리하지는 않습니다.

  • 다양한 코딩, 검사 및 해싱 계획은 지금이 사이트 내 쿼리를 게시 할 수있는 적당한 장소 아니라는 것을 알아 냈

+0

값을 변환 할 수 있습니다. 실제로 나는이 사이트의 배럴 쉬프터 (Barrel Shifters)와 관련된 질문을 즉시 발견했다. 어쨌든 많은 정보에 감사 드리며, 매우 유용합니다. – user1829886