[RISC-V] Multi-Cycle CPU 설계 검증 및 AMBA APB Peripheral MCU 동작 UVM 검증

0. TL;DR

1. 개요

이전 포스트:

1.1. 목표

  1. RISC-V Single Cycle CPU 설계에 이어서 Multi Cycle CPU를 설계 검증하기
  2. 직접 만든 Multi Cycle CPU에 AMBA APB Peripheral들을 붙여서 MCU 기능을 구성하고 Basys3 보드 위에서 동작시켜보고 UVM 검증하기

1.2. 주변 장치 기능

  • AMBA APB
    • RAM
    • GPI
    • GPO
    • UART+FIFO

1.3. AMBA APB란?

2. Multi Cycle CPU 설계 검증

2.1. Multi Cycle CPU 블록 다이어그램

명령어 Fetch → 명령어 Decode → 명령어 실행 → 메모리 접근 → WriteBack 순으로 실행됨

각 명령에 해당하는 곳들에 파이프라인 레지스터 추가하여 스테이지 분리 → 설계 완료

2.2. Multi Cycle CPU 모든 타입 검증 (Verdi Tool 활용)

2.2.1. 원활한 검증을 위해 Register File에 초기값 설정(ADDI, LUI 이용)

2.2.2. R타입 / I타입 검증

2.2.3. S타입 / L타입 검증

2.2.4. B타입 검증

2.2.5. U타입 / J타입 / JL 타입 검증

3. AMBA APB 연결 설계

3.1. 블록 다이어그램

3.2. UART Peripheral 내부

GPI/GPO/RAM 생략

4. 검증

4.1. APB Master 시뮬레이션 검증

4.2. RAM Write 검증

4.3. RAM Read 검증

4.4. GPI Write 검증

4.5. GPI Read 검증

4.6. GPO Write 검증

4.7. GPO Read 검증

4.8. GPIO Read 검증

4.9. GPIO Write 검증

5. 동작

5.1. 전체 RTL Schematic

5.2. 발표 동영상

  • Basys3 보드 2대를 사용하여 버튼으로 상대 보드의 LED를 컨트롤 하도록 구현하였음

Leave a Comment

error: Content is protected !!