SoC 보고서 - 3.레지스터맵
- 최초 등록일
- 2021.09.23
- 최종 저작일
- 2019.09
- 53페이지/ MS 워드
- 가격 2,500원
소개글
VHDL로 레지스터맵을 설계하고 시뮬레이션한 보고서입니다.
목차
1. 배경이론
A. 의미
B. 필요성
C. 예시
D. 설계
2. 소스코드 및 코드 설명
A. data_parsing
B. register map
C. load_tx_data
D. tb_register
3. 시뮬레이션 결과 및 설명
A. uart_tx, uart_rx
B. data_parsing
C. register_map
D. load_tx_data
E. uart_tx(최종 출력)
4. 실습보드 적용 결과
A. 하이퍼 터미널을 통한 write 동작
B. 스위치를 이용한 write 동작
5. 실습소감
본문내용
A. 의미
레지스터는 다양한 의미를 가진다. 기본적으로는 CPU 내부에서 연산 혹은 제어 동작을 위해 임시적으로 데이터를 저장하는 기억장치를 뜻한다. 여기서는 설계한 칩 또는 CPU/MCU의 특정 기능의 활성화 혹은 비활성화를 결정지어주는 기억장치를 의미한다.
B. 필요성
칩 혹은 CPU/MCU 등은 보통 범용으로 사용하기위해 제작되는 경우가 많다. 그래서 특정 한 가지 기능이 아닌 여러 동작을 지원해야 한다. 예를 들어서 증폭기를 설계한다고 했을 때 단순히 2배 혹은 10배만 증폭되는 것이 아니라 사용자가 소프트웨어적으로 조절하면 증폭도를 가변할 수 있는 것을 만들어야 하는 것이다. 증폭 외에 다른 기능이 추가한다면 이 모든 것을 설정하는 기능을 만들어야 한다. 그래서 명령어 집합을 만들어서 기능에 대한 명령어를 할당해서 동작하도록 한다.
이런 기능을 하도록 구조를 만들어야 하는 데 이때 대표적으로 사용하는 방식이 레지스터 맵이다. 각 명령어를 모두 서로 다른 신호로 정의해서 사용한다면 기능이 늘어날수록 구조가 훨씬 복잡해진다. 레지스터에 쓰여진 데이터로 기능을 판단한다면 8비트라면 총 256가지의 기능을 표현할 수 있다. 즉 레지스터 맵을 이용하면 명령어와 관련된 것을 훨씬 줄일 수 있다는 것이다
<중 략>
D. 설계
※ 목표
- 16개의 레지스터, 주소0x00~0x0f로 구분
- 데이터 8비트
- UART를 이용한 레지스터맵 access 컨트롤
-> 터미널로 명령어를
[예약어(space)0x(space)Add(hex)(space)0x(예약어)data(hex)(enter)]사용 예약어는w와r두가지로w는write즉 데이터를 쓰는 것, r은read로 데이터를 읽어오는 것에 해당. read는 주소값 가지만 작성하면 되도록 만듦.
->FPGA의 반응은w, r에 따라 WRITE, READ를 출력. 그리고 ADD 문자, 해당 주소값, DATA문자 해당 데이터를 16진수로 출력.
참고 자료
없음