[Verilog] Inverse Quentization을 수행하는 코드
- 최초 등록일
- 2010.09.09
- 최종 저작일
- 2010.04
- 26페이지/ 한컴오피스
- 가격 1,500원
소개글
Verilog로 Inverse Quentization을 수행하는 코드입니다. q^(4/3)의 계산으로 IQ를 수행합니다.
목차
I. 프로젝트 계획 및 회의록
1. 조원별 역할 분담
2. 프로젝트 계획
3. 회의록
II. 설계 계획 및 배경 이론
1. 설계 계획
2. 배경 이론
III. Verilog 코드
1. IQ.v 코드
2. Romiq.v 코드
3. Romd.v 코드
4. IQ_tb.v 코드
IV. Waveform
V. C++ Romiq, Romd 생성 코드
1. Romiq, Romd생성코드
2. Romiq, Romd 데이터
VI. C++ 검증 코드
VII. MATLAB 검증
VIII. 결론
본문내용
II. 설계 계획 및 배경 이론
1. 설계 계획
- 프로젝트 착안점
이번 Project의 첫번째 Main Point는 Verilog HDL의 응용이다. 아직 응용단계라고 하기엔 배운 것도 노력한 것도 미비하지만, 수업시간과 과제를 충실히 이행함으로 얻은 기본적인 Verilog의 사용법을 검증해 보겠다. 실제로 MP3 Chip을 전부 만들어낼 수는 없지만 기본적으로 알고 있을 만한 하드웨어적 구동에 대한 기초지식의 응용 또한 목표로 한다.
두 번째는 알고리즘의 구현이다. 제한적 조건을 만족시키기 위해 ROM의 용량을 최소한으로 하며 원하는 결과 값을 얻기 위해선 연산처리를 단순 계산이 아닌 어떤한 알고리즘을 응용하여 구현하는데 그 목적이 있다.
2. 배경 이론
1. 사전 조사
1) 실제로 구현하고자 하는 것
간단하게 설명해서 이번 프로젝트를 통해 구현하고자 하는 것은 을 계산하는 모듈이다.
특정입력(0~8191)을 받아서 그 입력에 대한 값을 출력해 주는 것이 최종적인 목적이라할 수 있다. 주어진 조건은 256개의 ROM 저장공간이며 모든 데이터 정보는 이 안에 포함되어야 한다. 이때 주의해야 할 점은 그냥 단순하게 생각해서 계산해주는 식을 사용하면 안되는 것인가이다. 굳이 머리를 굴려 생각해 보아야 할 이유는 다음과 같다.
2) Nonlinear quantization을 구현하는 이유
Nonlinear quantization을 구현하는 이유는 간단하다. 하드웨어 적으로 지수승을 계산할 수 없다. 결국 지수승에 해당하는 모든 값들을 사전에 ROM에 저장해 두었다가 조건에 따라 불러서 출력하게금 해야만 하는것이다. 하지만 모든 값을 ROM에 저장한다는 것은 매우 좋지 않은 생각이다. 제한적인 조건, 즉 여러 가지 요소 경제성, 효율등을 고려할 때 ROM의 크기가 커지게 되면 그만큼 소형화도 어려울 뿐만아니라 경제성도 떨어지게 된다. 실제 칩에서 메모리가 차지하는 부분은 매우 크다. 거기다 복잡한 연산들, 곱셈, 나눗셈 반복연산 등의 것들은 한번씩 추가될 때마다 상당히 큰 부피를 차지하게 된다는 점에 주목해 보자. 즉 최소한의 ROM의 사용과 최소한의 연산을 이용하여 과 같은 지수승의 계산을 구현할 필요성이 생긴다.
참고 자료
없음