카이스트 전자공학실험2 실험10 Co-emulation & Optimization : IDCT
- 최초 등록일
- 2011.11.06
- 최종 저작일
- 2008.12
- 6페이지/
한컴오피스
- 가격 2,500원
![할인쿠폰받기](/images/v4/document/ico_det_coupon.gif)
소개글
카이스트 전자공학실험2 실험10결과보고서입니다.
목차
1. Optimization을 위해 수행한 방법
2. Optimization이 되는 원리와 성능 향상
3. Optimization 과정에서의 시행 착오
4. 실험 이후 추가 최적화
5. Demo
본문내용
Exp 10. Co-emulation & Optimization : IDCT
1. Optimization을 위해 수행한 방법
① state 수를 2개로 줄였다. state가 0일 때를 입력을 받는 상태, 1일 때를 출력을 하는 상태로 정의하였다.
② register를 4개 줄였다. 마지막 입력과 동시에 첫 번째 출력을 할 시, 4개의 출력을 내보내면 빈 register가 생기므로, 마지막 입력을 빈 register에 받도록 만들어서 Matrix 정보를 저장하는 register를 16개에서 12개로 줄일 수 있었다.
③ if~else문을 2중 3중으로 쓰이지 않도록 만들었다.
④ if의 Condition check 부분을 always 밖으로 꺼내서 assign 으로 만들었다.
2. Optimization이 되는 원리와 성능 향상
① state 수를 줄이는 것은 redundant state들을 없앨 수 있기 때문에, storage element 수를 줄일 수 있고, logic gate들을 줄일 수 있다. state를 줄이면서 if~else구문이라던지 구조가 약간 바뀜으로 인해 state 수만 줄일 때 성능이 어느 정도 향상된다고 말할 수는 없지만, slice와 delay가 줄어든 것은 확실하다.
② register 수를 줄이는 것은 하드웨어 자체의 크기를 줄일 수 있는 것과 같다. 또, 실제로 register를 줄여보았을 때, slice 수도 줄었지만 delay도 약간 줄어드는 것을 알 수 있었다.
③ Transpose_matrix내에 if~else문을 간결하게 하는 것은, 곧 sequential logic을 간단하게 만드는 것이다. always구문 내에 들어가는 sequential logic이 복잡하면 복잡할수록, delay가 커지고 MUX 등의 element가 많이 필요하기 때문에 크기도 커진다.
④ condition check 부분을 밖으로 꺼내서 assign으로 만들 경우 속도가 빨라졌다.
참고 자료
없음