컴퓨터 시스템 설계 및 실험 (Serial Memory 최종 보고서)
- 최초 등록일
- 2007.10.21
- 최종 저작일
- 2006.12
- 42페이지/
한컴오피스
- 가격 2,000원
![할인쿠폰받기](/images/v4/document/ico_det_coupon.gif)
소개글
가. 프로젝트 목적
1) Serial memory의 동작 원리를 이해하고, PC와 Seral Memory 간의 Serial 통신 프로그램을 구현한다.
2) Serial 통신 프로그램을 FPGA 보드에 올리고 실행 결과를 Segment LED를 이용하여 확인한다.
나. 프로젝트 구현 사항
시리얼 데이터를 수신을 받는 UART Receiver모듈, 수신된 데이터를 가지고 DPSRAM 컨트롤하는 MD_CU, PC로의 송신을 위한 지연된 클럭을 생성할 CLKDELAY, 마지막으로 시리얼 데이터로 송신을 해주는 UART transmitter모듈을 구현하여야 한다.
UART RX는 PC에서 보낸 bitstream을 받아 8bit 테이테로 합쳐 Parallel Data I/O로 보낸다. Parallel Data I/O는 받은 데이터를 3개를 묶어 24bit 데이터를 MDCU (Memory Dump Contral Unit)으로 보내고, 여기서 쓰기(읽기) 명령을 내리면 Seral Memory의 특정 주소에 쓰고, Memory에 쓰여진 데이터를 UART TX를 이용하여 다시 읽어와 bitstream으로 바꿔 준다. 이 결과를 FPGA보드의 Ssegment LED에 출력하여 확인한다.
목차
1. 개요
가. 프로젝트 목적
나. 프로젝트 구현 사항
다. 프로젝트 구현 환경
라. 배경 지식
2. 알고리즘
가. Serial Memory 전체 구조
나. UART RX
다. Parallel Data I/O
라. Memory Control Unit
마. Memory
바. UART TX
사. Clock Delay
아. 7-segment
3. 코드
가. serial_memory.v
나. clk_delay.v
다. uart_rx.v
라. pd_io.v
마. mcu.v
바. mem.v
사. uart_tx.v
아. segment.v
4. 파형 및 분석
가. 전체 파형
나. 메모리에 데이터 쓰기
다. 메모리에서 데이터 읽기
라. 메모리 데이터 PC로 전송
5. FPGA 세팅
가. FPGA 환경
나. Device 설정
다. Pin 설정
라. 컴파일 모듈 FPGA 적재
6. FPGA 동작 확인
가. 초기 상태
나. 메모리에 데이터 쓰기
다. 메모리에서 데이터 읽기
7. 참고문헌
본문내용
2. 알고리즘
가. Serial Memory 전체 구조
2) 프로그램 구조
가) Clk delay
: 입력으로 받은 클럭을 PC의 전송속도와 각 module들의 동작 속도를 동기화 시켜주기 위해 적당한 delay가 들어간 클럭을 만들어 출력해 준다. PC의 동작속도와 module들에 공급되는 클럭속도에 따라 delay 되는 시간을 알맞게 조정해 주어야 한다.
나) UART RX
: bitstream의 data를 받아서 8bit data로 합쳐 출력해주는 module이다. 8bit로 합쳐진 rx_data는 올바른 data를 내보낸다는 제어신호인 rx_en와 함께 출력된다.
다) Parallel Data IO
: UART RX로부터 나오는 8bit의 데이터 세 개를 하나의 24bit 데이터로 합쳐서 출력해주는 module이다. UART로부터 데이터가 세 번 나올 때까지 임시 레지스터에 데이터를 저장해 뒀다가 총 24bit의 모든 데이터를 받았을 때 모두를 합쳐 정상적인 data가 출력된다는 표시인 pd_en과 함께 출력한다.
라) Memory Dump Control Unit
: Parallel Data IO로부터 받은 24bit의 데이터를 분해하고 해석하여 명령에 알맞은 memory 연산을 수행하기 위해 memory로 전달되는 각각의 제어신호를 내보내준다. 또한 memory로부터 읽은 데이터를 tx_en 신호와 함께 UART TX module로 전달하는 역할을 한다.
마) Memory
: 한 블록이 8bit인 총 2048 bit size의 메모리이다. 각 enable 신호에 맞게 읽기 / 쓰기 연산을 하고 Memory로부터 읽힌 data는 Memory Dump Control Unit으로 전달된다.
바) UART TX
: 입력받은 8bit의 data를 bitstream으로 바꿔 출력해준다. 해당 data의 bitstream을 출력하기 전과 출력한 후에 start bit와 end bit를 삽입하여 수신단으로 하여금 data의 시작 지점과 끝 지점을 인식할 수 있도록 해준다.
사) Segment
: 7-segment 장치로 출력할 여러 data를 순차적으로 하나씩 선택하여 7-segment의 알맞은 자리에 출력해주는 module이다.
참고 자료
가. Verilog HDL(영한 출판사 / Samir Palnitkar 지음 / 장훈 옮김)
나. VHDL과 FPGA를 이용한 디지털시스템 설계 및 응용(도서출판 아진 / 이강 지음)
다. 엑스칼리버 설명서.pdf
라. ARM9 Core를 이용한 시스템 온 칩 및 임베디드 시스템 설계 (제2판) (송태훈 / 홍릉과학출판사)