[RISC-V] Single-Cycle CPU 설계 검증 및 C 코드 동작

1. 개요

1.1. RISC-V란?

1.2. RISC-V 명령어셋 종류

2. RISC-V Single Cycle 설계

2.1. 블록 다이어그램

2.2. R타입 동작 원리

2.4. I타입

2.5. Load 타입

2.6. S타입

2.7. U타입

2.7.1. U타입 LUI 흐름도

2.7.2. U타입 AUIPC 흐름도

2.8 B타입

2.9 J타입

2.10 JL타입

2.10.1 J/JL 타입 시뮬레이션 결과 분석

3. 간단한 C언어 코드로 동작 테스트

3.1. 0~10 숫자를 더하는 코드

int adder(int a, int b);

int main() {
    int a, sum;
    a = 0;
    sum = 0;

    while(a < 11) {
        sum = adder(a, sum);
        a = a + 1;
    }

    // halt
    while(1);

    return sum;
}

int adder(int a, int b) {
    return a + b;
}

3.2. 프로그램 실행 요약

3.3. 시뮬레이션 검증

3.3.1 스택 포인터 초기화 및 스택 확보

3.3.2. 레지스터 백업 및 변수 초기화

3.3.3. 루프 조건 검사

3.3.4. 루프 본체 실행(adder 호출 전)

3.3.5. adder 함수 내부 실행

3.3.6. 함수 복귀

3.3.7. 결과 저장 및 a 증가

3.3.8. 루프 종료 조건

4. 결론

4.1. 동작 검증

  • C프로그램 예제 정상 실행 확인
    • 반복문, 함수 호출 / 복귀 정상 동작
    • 0+1+2+…+9+10 = 55 계산 검증 완료

4.2. 한계점 및 개선 방향

  • Single Cycle 구조로 클럭 속도 제한 존재
  • 파이프라인, 캐시 미구현

Leave a Comment

error: Content is protected !!