본문 바로가기

작품

FPGA CPU설계

2학년 2학기 디지틀시스템설계 및 실습의 마지막 CPU설계 텀프로젝트 입니다.

아래 설계를 토대로 CPU 제작을 하였으며, 3인이서 진행했던 프로젝트 입니다.



1. 설계목표

 

1.1 CPU 설계 목표

소형 CPU의 구조를 설계하고 Verilog HDL을 사용하여 이를 FPGA로 제작한다.

보통 CPU의 인스트럭션의 수는 그 종류가 매우 많지만 이 과제에서는 그 종류를 일정 수로 제한한다. 하드웨어의 구조는 데이터 패스와 제어회로 및 입출력 장치로 구성된다.

 

1.2 CPU 설계 조건

            - 모듈 07 슬라이드에 설명된 다수사이클 마이크로프로그램 제어방식의 컴퓨터구조



- 1워드의 길이는 16비트 한 개의 인스트럭션은 1 word (16비트)로 구성

- M 메모리는 프로그램/데이터 저장 공간으로 512 워드 512x16bit <- Altera의 LPM_RAM_DQ 사용 (메모리 내부의 레지스터를 사용하지 말 것)

- 레지스터 파일의 레지스터 개수는 9(R0~R8) R0는 출력레지스터(OUTR)로 사용하여그 값을 디스플레이로 볼 수 있게 외부 핀에도 연결한다.

- 제어방식은 마이크로 프로그래밍 제어 방식을 사용한다.

- control 메모리의 크기는 128 x 28(비트 수 가변가능)


- 인스트럭션 정의

인스트럭션은 모듈6 슬라이드 20쪽의 표8-7과 같이 8가지 방식의 인스트럭션 종류 중 에서 선택하여 레지스터나 상수 등에 따라 인스트럭션 심볼(어셈 언어)을 결정한다.

 

 

- 인스트럭션 포맷

    인스트럭션은 16비트로서 다음 그림과 같은 형식을 모두 포함하여야 한다.

 

                - 명령어 종류에 따른 opcode 할당

각 명령어에 따라 발생되어질 데이터패스의 모드제어신호를 구분하여 제어워드에서 발생한다. 슬라이드 표8-7과 동일하게 설계되었다.

                                                                                     b15~b13

레지스터를 사용한 ALU 함수                        000

레지스터를 사용한 자리이동 함수                  001

레지스터 데이터를 사용한 메모리 쓰기            010

레지스터 데이터를 사용한 메모리 읽기            011

상수를 사용한 ALU 함수                              100

상수를 사용한 이동 함수                              101

조건 분기                                                 110

무조건 분기                                              111




Readme.pdf


인스트럭션.pdf


CPU_최종.pdf



 - Readme 파일은 완성된 CPU를 FPGA로 제작하여, 인스트럭션(어셈블리)로  FPGA 기능(FND, LCD 등)을 구현하는 문서입니다.

 - rpt7_Venus_3 파일은 CPU설계를 토대로 제작한 보고서입니다.

 - 인스트럭션은 필요한 어셈블리를 만드는 설계 문서입니다.

'작품' 카테고리의 다른 글

Smart Home 시스템 제작  (0) 2015.12.20
Matlab Piano 제작  (0) 2015.12.20
MFC를 이용한 악보 프로그램  (0) 2015.12.20
유아를 위한 고양이 저금통 (어플 저금통)  (2) 2015.12.20
추억을 담은 종이 영사기  (0) 2015.12.19