본문내용
터 블록의 모델링
<그림 2-32> 레지스터 VHDL entity 코드
일곱 개의 컴포넌트를 이용하여 레지스터의 블록 전체를 연결하면 된다. 위에는 VHDL 코드의 entity 부분이다.
2) 레지스터 블록 다이어그램
<그림 2-33> 레지스터 블록 다이어그램
3) 레지스터 블럭 스키메틱
<그림 2-34> 레지스터 블록 스키메틱
2-4-4. 마이크로 프로세서 전체의 모델링
세 개의 큰 블록 각각에 대해서 세부 요소들에 대한 모델링과 이를 기초로 하여 세 블록 각각을 모델링 하였다. 이러한 세 블록을 기초로 하여 마이크로 프로세서 전체를 모델링 한다.
<그림 2-35> 전체 entity 부분의 소스
<그림 2-36> 전체 architecture 부분의 소스
<그림 2-37> 전체 블록 다이어 그램
<그림 2-38> 전체 MPU의 스키메틱
2-4-5. 모델링한 마이크로세서의 테스트
위 논문에서 모델링한 마이크로 프로세서가 정상적으로 동작하는지를 검증하기 위하여1에서부터 10까지 더하기 프로그래을 작성하여 그 결과를 확인하기로 한다.
1) 프로그램 메모리
위에서 언급한 1에서부터 10까지 더하기 프로그램을 작성하여 프로그램 메모리 영역에 아래와 같이 VHDL로 작성한다.
<그림 2-39> 프로그램 메모리 VHDL 코드
2) 마이크로프로세서의 타이밍
설계한 마이크로프로세서의 모든 명령어는 기본적으로 기억장치 및 레지스터 동작의 조합으로 생각 할 수 있다.
명령어 동작은 위의 기본적인 상태 클럭에 의해서 수행되며, 상태 클럭이 내부의 각 부분에 가해져서 주어진 명령어들이 순차적으로 실행되도록 한다. SAD, LDI 명령어와 같이 직접 8-bit나 16-bit의 데이터를 주어여 하는 명령을 제외하고는 모든 명령어가 한 클럭에 의해서 수행된다.
타이밍에 대한 시뮬레이션 결과가 그림 1-39에 나와 있다.
<그림 2-40> 프로그램에 의한 MPU실행 시뮬레이션 결과
제 3장. 결 론
본 논문에서는 MPU를 직접 설계하고 어떠한 구조를 가지고 어떤 동작을 수행하는지를 시뮬레이션을 통해 알아 보았다.
이것을 통해서 MPU의 구조와 더불어 VHDL의 설계 방식에 대한 구조를 알수있었다.
일반 논리 게이트나 표준 TTL IC의 그래픽 심벌을 조합하여 설계하는 소위 게이트 레벨 설계는 대상회로의 규모가 커지면 전체의 동작상태를 파악하거나 일시에 시뮬레이션 하기가 어려워진다. 그러므로 대상규모가 큰 회로의 설계는 HDL을 이용하여 게이트 레벨보다 추상도가 높은 기능 및 동작 레벨에서의 모델링이 필요해진다.
HDL을 이용한 회로설계는 먼저 HDL언어를 이용하여 원하는 회로의 내용을 기술하고, 시뮬레이션을 한 후에 합성이라는 괴정을 통하여 자동적으로 게이트 레벨의 회로를 얻는 것이다. 따라서 HDL을 이용한 설계의 핵심은 합성이라 할 수 있다.
이러한 HDL을 이용한 설계에는 여러 가지 장점이 있다.
첫째, 설계의 생산성을 높일 수 있다. 즉 설계자가 일일이 게이트를 입력하여 그릴 필요가 없으므로 설계 시간을 단축할 수 있다.
둘째, 높은 레벨로 설계할 경우에는 게이트 레벨로 설계하는 것보다 한층 더 개념 적인 사고가 가능하다.
셋째, 자동화된 최적화등 여러 가지 방법의 조합으로 고품질의 최종 결과를 얻을 수있다.
넷째, 특정 기술과 무관한 설계가 가능하다. 다시 말하면, 높은 레벨 설계는 반도체 공정기술과 무관하므로 업체의 선택이나 변경이 용이하다. 예를 들어 HDL을 사용하지 않을 경우에 A사 라이브러리를 이용하여 게이트 레벨의 설계를 하였을 경우에 A사에서 제조된 칩이 문제가 있어 B사에 칩의 제조를 의뢰하고자 한다면 설계자는 다시 B사의 라이브러리를 이용하여 재 설계하여야만 한다. 그러나, HDL을 이용하여 설계하면 원래의 HDL 프로그램을 그대로 사용하고 합성할 때 B사의 라이브러리를 사용하여 합성하면 가능하므로 반도체 제조회사의 공정기술과 무관하다.
그리고, 칩 제조를 의뢰한 반도체 회사의 공정기술이 향상되어 라이브러리 버전이 바뀌어도 앞에서와 같이 바뀐 라이브러리로 재 합성만 하면 되므로 쉽게 대응할 수 있다.
다섯째, 설계의 재활용이 용이하다. HDL을 이용한 높은 레벨의 설계는 일반 소프트웨어 언어처럼 다루기가 쉬우므로 설계부분들의 재활용이 더욱 효과적이다.
이러한 이유로 HDL을 이용한 설계가 무척 활용적이라고 할 수 있다.
여러 가지 회로의 설계를 통하여 설계한 보드가 잘 동작하는지 만약 안한다면 어디가 잘못 되었는지를 찾기가 그렇게 만만한 작업이 아니라는 것은 해 본 사람들은 알 것이다. 일일이 오실로스코프나 멀티미터로 찍어봐야 알 수 있지만, HDL로 통한 설계를 이용하면 시뮬레이션 결과와 합성 에러 채크를 통해서 바로 그 값을 알수 있고, 또 어디가 잘 못 되었는지를 알려 주기 때문에 설계에 상당한 시간을 줄일 수 있으며 복잡한 여러 작업을 거치지 않아도 원하는 파형과 더불어 작동 할 수 있는 하드웨어 디바이스를 만들 수 있는데 큰 효과를 보았다. 만약 직접 TTL레벨의 게이트를 이용하여 MPU를 만든다는 것은 상상하기도 힘든 일일 것이다. 아마 설계에서부터 많은 시간이 추자 되어야 할 것으로 보인다. 그러나 이것이 완벽하다는 것은 아니다. 이러한 설계도 여러 가지에 다 적용하는 것이 아니라 단순한 하드웨어 설계는 기존의 것으로 설계를 하고 복잡한 레벨일 경우에만 사용하자는 것이다. 조그마한 플립플럽을 만들때 이것을 사용한다면 아마 웃을 것이다.
참 고 문 헌
[1] VHDL 기초와 응용
이 대 영 | 홍릉과학출판사 | 1996년 01월
[2] 하드웨어 엔지니어를 위한 VHDL
박 세 현 | 그린 | 1998년 02월
[3] Real XILINX FPGA World
김 혁 | 엔트미디어 | 2006년 04월
[4] ISE를 이용한 VHDL 및 FPGA 실습
김 재 철 | 홍릉과학출판사 | 2005년 02월
[5] FPGA DESIGN 이론 및 실습
DAVID VAN DEN BOUT | 김만복 편 옮김 | 홍릉과학출판사 | 2000년 09월
[6] 디지털 논리와 컴퓨터 설계
M.MORRIS MANO | 강철희 외 옮김 | 교보문고 | 2005년 02월
<그림 2-32> 레지스터 VHDL entity 코드
일곱 개의 컴포넌트를 이용하여 레지스터의 블록 전체를 연결하면 된다. 위에는 VHDL 코드의 entity 부분이다.
2) 레지스터 블록 다이어그램
<그림 2-33> 레지스터 블록 다이어그램
3) 레지스터 블럭 스키메틱
<그림 2-34> 레지스터 블록 스키메틱
2-4-4. 마이크로 프로세서 전체의 모델링
세 개의 큰 블록 각각에 대해서 세부 요소들에 대한 모델링과 이를 기초로 하여 세 블록 각각을 모델링 하였다. 이러한 세 블록을 기초로 하여 마이크로 프로세서 전체를 모델링 한다.
<그림 2-35> 전체 entity 부분의 소스
<그림 2-36> 전체 architecture 부분의 소스
<그림 2-37> 전체 블록 다이어 그램
<그림 2-38> 전체 MPU의 스키메틱
2-4-5. 모델링한 마이크로세서의 테스트
위 논문에서 모델링한 마이크로 프로세서가 정상적으로 동작하는지를 검증하기 위하여1에서부터 10까지 더하기 프로그래을 작성하여 그 결과를 확인하기로 한다.
1) 프로그램 메모리
위에서 언급한 1에서부터 10까지 더하기 프로그램을 작성하여 프로그램 메모리 영역에 아래와 같이 VHDL로 작성한다.
<그림 2-39> 프로그램 메모리 VHDL 코드
2) 마이크로프로세서의 타이밍
설계한 마이크로프로세서의 모든 명령어는 기본적으로 기억장치 및 레지스터 동작의 조합으로 생각 할 수 있다.
명령어 동작은 위의 기본적인 상태 클럭에 의해서 수행되며, 상태 클럭이 내부의 각 부분에 가해져서 주어진 명령어들이 순차적으로 실행되도록 한다. SAD, LDI 명령어와 같이 직접 8-bit나 16-bit의 데이터를 주어여 하는 명령을 제외하고는 모든 명령어가 한 클럭에 의해서 수행된다.
타이밍에 대한 시뮬레이션 결과가 그림 1-39에 나와 있다.
<그림 2-40> 프로그램에 의한 MPU실행 시뮬레이션 결과
제 3장. 결 론
본 논문에서는 MPU를 직접 설계하고 어떠한 구조를 가지고 어떤 동작을 수행하는지를 시뮬레이션을 통해 알아 보았다.
이것을 통해서 MPU의 구조와 더불어 VHDL의 설계 방식에 대한 구조를 알수있었다.
일반 논리 게이트나 표준 TTL IC의 그래픽 심벌을 조합하여 설계하는 소위 게이트 레벨 설계는 대상회로의 규모가 커지면 전체의 동작상태를 파악하거나 일시에 시뮬레이션 하기가 어려워진다. 그러므로 대상규모가 큰 회로의 설계는 HDL을 이용하여 게이트 레벨보다 추상도가 높은 기능 및 동작 레벨에서의 모델링이 필요해진다.
HDL을 이용한 회로설계는 먼저 HDL언어를 이용하여 원하는 회로의 내용을 기술하고, 시뮬레이션을 한 후에 합성이라는 괴정을 통하여 자동적으로 게이트 레벨의 회로를 얻는 것이다. 따라서 HDL을 이용한 설계의 핵심은 합성이라 할 수 있다.
이러한 HDL을 이용한 설계에는 여러 가지 장점이 있다.
첫째, 설계의 생산성을 높일 수 있다. 즉 설계자가 일일이 게이트를 입력하여 그릴 필요가 없으므로 설계 시간을 단축할 수 있다.
둘째, 높은 레벨로 설계할 경우에는 게이트 레벨로 설계하는 것보다 한층 더 개념 적인 사고가 가능하다.
셋째, 자동화된 최적화등 여러 가지 방법의 조합으로 고품질의 최종 결과를 얻을 수있다.
넷째, 특정 기술과 무관한 설계가 가능하다. 다시 말하면, 높은 레벨 설계는 반도체 공정기술과 무관하므로 업체의 선택이나 변경이 용이하다. 예를 들어 HDL을 사용하지 않을 경우에 A사 라이브러리를 이용하여 게이트 레벨의 설계를 하였을 경우에 A사에서 제조된 칩이 문제가 있어 B사에 칩의 제조를 의뢰하고자 한다면 설계자는 다시 B사의 라이브러리를 이용하여 재 설계하여야만 한다. 그러나, HDL을 이용하여 설계하면 원래의 HDL 프로그램을 그대로 사용하고 합성할 때 B사의 라이브러리를 사용하여 합성하면 가능하므로 반도체 제조회사의 공정기술과 무관하다.
그리고, 칩 제조를 의뢰한 반도체 회사의 공정기술이 향상되어 라이브러리 버전이 바뀌어도 앞에서와 같이 바뀐 라이브러리로 재 합성만 하면 되므로 쉽게 대응할 수 있다.
다섯째, 설계의 재활용이 용이하다. HDL을 이용한 높은 레벨의 설계는 일반 소프트웨어 언어처럼 다루기가 쉬우므로 설계부분들의 재활용이 더욱 효과적이다.
이러한 이유로 HDL을 이용한 설계가 무척 활용적이라고 할 수 있다.
여러 가지 회로의 설계를 통하여 설계한 보드가 잘 동작하는지 만약 안한다면 어디가 잘못 되었는지를 찾기가 그렇게 만만한 작업이 아니라는 것은 해 본 사람들은 알 것이다. 일일이 오실로스코프나 멀티미터로 찍어봐야 알 수 있지만, HDL로 통한 설계를 이용하면 시뮬레이션 결과와 합성 에러 채크를 통해서 바로 그 값을 알수 있고, 또 어디가 잘 못 되었는지를 알려 주기 때문에 설계에 상당한 시간을 줄일 수 있으며 복잡한 여러 작업을 거치지 않아도 원하는 파형과 더불어 작동 할 수 있는 하드웨어 디바이스를 만들 수 있는데 큰 효과를 보았다. 만약 직접 TTL레벨의 게이트를 이용하여 MPU를 만든다는 것은 상상하기도 힘든 일일 것이다. 아마 설계에서부터 많은 시간이 추자 되어야 할 것으로 보인다. 그러나 이것이 완벽하다는 것은 아니다. 이러한 설계도 여러 가지에 다 적용하는 것이 아니라 단순한 하드웨어 설계는 기존의 것으로 설계를 하고 복잡한 레벨일 경우에만 사용하자는 것이다. 조그마한 플립플럽을 만들때 이것을 사용한다면 아마 웃을 것이다.
참 고 문 헌
[1] VHDL 기초와 응용
이 대 영 | 홍릉과학출판사 | 1996년 01월
[2] 하드웨어 엔지니어를 위한 VHDL
박 세 현 | 그린 | 1998년 02월
[3] Real XILINX FPGA World
김 혁 | 엔트미디어 | 2006년 04월
[4] ISE를 이용한 VHDL 및 FPGA 실습
김 재 철 | 홍릉과학출판사 | 2005년 02월
[5] FPGA DESIGN 이론 및 실습
DAVID VAN DEN BOUT | 김만복 편 옮김 | 홍릉과학출판사 | 2000년 09월
[6] 디지털 논리와 컴퓨터 설계
M.MORRIS MANO | 강철희 외 옮김 | 교보문고 | 2005년 02월
추천자료
- 메모리와 pc
- 컴퓨터 구조의 전반적인 이해 - 100장에 걸친 요약 리포트
- C언어를 이용한 OFDM구현
- AutoLISP 명령어와 DXF 코드에 대해서 요약 정리
- DES(Data Encryption Standard) 암호화 알고리즘
- 나트륨-콘크리트 반응연구
- ADC(Analog to Digital Converter)
- [CPU][중앙처리장치]CPU(중앙처리장치)의 역사, CPU(중앙처리장치)의 구조, CPU(중앙처리장치...
- [Digital Logic Design Project] Full adder
- [Digital Logic Design Project] Gray Code Converter
- I2C의 개요 및 장단점에 대한 조사
- ATMEGA128 을 활용한 2인용 테트리스 게임 소스 + 보고서
- [아날로그 및 디지털회로 설계실습] 예비 11.7 세그먼트 디코더(7-segment Decoder) 회로 설계
소개글