검색어 입력폼

디지털시스템설계_마이크로프로세서_Shifter&Alu의설계

저작시기 2006.09 |등록일 2008.02.19 한글파일한글 (hwp) | 13페이지 | 가격 1,200원

소개글

디지털시스템설계 실험 리포트
Shifter&Alu의설계
마이크로프로세서

목차

1. 실험 목적
2. 실험내용

(1) 16비트 Bidirectional Logical Shifter
(2) ALU
(3) PSR_REG

3. 실험결과

(1) shifter
(2) ALU 와 PSR

4. discussion

본문내용

1. 실험의 목적

이번 실험에서는 16비트 Bidirectional Logical Shifter를 구현하고 ALU를 구성한다. 또, PSR flag에 대한 조건들을 이해하고 구현해본다.

2. 실험 내용

(1) 16비트 Bidirectional Logical Shifter

이번에 우리가 구현해야할 shifter는 logical shifter로 빈자리에 0을 채워넣는 방식이다. 입력값은, 16비트의 데이터, RLamount , lui인데, 이중 RLamount는 shift될 방향과 크기를 two`s complement 로 가지고 있는 값이다. 즉 RLamount 의 의미는 다음과 같다.

...

즉, RLamount의 MSB 가 0일 경우는 양수가 되고( 왼쪽으로 이동 ), 1일 경우는 음수가 된다( 오른쪽으로 이동). 이때 RLamount가 음수일 경우는 two`s complement 에 대한 decoding이 필요하게 되는데, 이것은 process 문 안에서 case 문으로 간단히 처리하였다. 이런 작업이 끝나게 되면, RLamount(4) 는 방향을 의미하게 되고, RLamount( 3 downto 0 ) 의 4비트는 크기를 의미하게 될것이다. 이때, RLamount(3) 이 1이 될경우에는 8bit 만큼 shift 되야하고, RLamount(2) 가 1 이 될경우는 4bit, RLamount(1) 은 2bit, RLamount(0) 이 1이 될 경우는 1bit 만큼 shift 가 되어야 한다는 사실을 이용하여 shifter를 구성하였다.
16bit shifter를 설계하기위해서 16bit 4 to 1 mux를 4개 사용하였다. 각 mux는 RLamount(4), RLamount(3),RLamount(2),RLamount(1) 을 처리하기 위해서 사용된다. 각mux의 sel 신호는 방향과 RLamount(x) 로 이루어 지게 되는데, 하나의 예를 들자면 RLamount(3) 의 shift를 처리하기 위해서는 sel 신호를 ( RLamount(4) , RLamount(3) ) 으로 만들게 된다. 각 sel 신호의 의미는 다음과 같다.

...

즉, 앞비트인 RLamount(4) 가 0이면 왼쪽, 1이면 오른쪽이로, 뒤의 비트는 8 또는 4,2,1 bit씩 shift하는 것을 의미하므로 움직이거나 안움직이거나의 둘 중 하나가 된다.
위의 sel 신호에 알맞은 data를 넣어주기만 하면 되는데, 왼쪽 또는 오른쪽으로 8bit shift 된 data는 다음과 같이 표현할 수 있다.

왼쪽 : input( 7 downto 0 ) & "00000000"
오른쪽 : "00000000" & input( 15 downto 8 )

.....

위의 사항을 VHDL로 표현한 코드와 주석은 다음과 같다.
다운로드 맨위로