인하대 컴퓨터구조론 과제 mips pipeline 설계
- 최초 등록일
- 2021.04.01
- 최종 저작일
- 2020.03
- 10페이지/ MS 워드
- 가격 2,000원
소개글
"인하대 컴퓨터구조론 과제 mips pipeline 설계"에 대한 내용입니다.
Verilog를 사용한 MIPS의 Pipeline 구현
목차
⑴ Vivado를 이용하여 MIPS의 Pipeline 모델이 어떻게 수행되는지 분석
1. ALU.V
2. ALUControl.v
3. CONTROL.v
4. DataMemory.v & DMEMORY.v
5. IFETCH.v
6.IDECODE.v & Registers.v
7.etc_module.v
⑵ TestBench
ⅰ) Pipelined_MIPS 코드의 명령어들을 다음과 같이 분석하였다. 16진수의 명령어들을 2진수로 변환 후, bit 수 별로 구분하여 Opcode, rs, rt, rd, sa, function code, immediate, target address를 구하였다.
ⅱ) R-type instruction(1~4, 7~9, 14~16번째 명령어)
ⅲ) lw, sw
ⅳ) beq, bne
ⅴ) I-type instruction, J-type instruction
⑶고찰
본문내용
Verilog를 사용한 MIPS의 Pipeline 구현
⑴ Vivado를 이용하여 MIPS의 Pipeline 모델이 어떻게 수행되는지 분석
1. ALU.V
ALU 모듈에서 ALU_Input1과 ALU_Input2, 그리고 ALU_Control을 input으로 선언한다. ALU_Control에 따라 ALU_Input1과 ALU_Input2에 대해 add, sub, and, or 등 각기 다른 operation 연산이 수행된다. 그리고 그 결과값이 ALU_Result로 출력된다. R-type instruction과 다르게 branch 명령어는 ALU_Input1과 ALU_Input2가 같은지 다른지에 대한 비교 연산을 하고 결과를 ALU_Result가 아닌 Zero로 출력한다. 같으면 Zero에 1을 할당하고, 다르면 0을 할당한다.
<중 략>
⑶고찰
지난번 Multicycle_MIPS에 이어 이번에는 Verilog를 사용하여 설계된 Pipelined_MIPS를 Vivado로 확인하였다. Pipeline이 Multicycle implementation과 Singlecycle implementation과 비슷하여 지난번 과제보다 훨씬 수월하게 진행되었다. 명령어 코드를 분석하고 이를 시뮬레이션 하여 testbench를 통해 Pipeline의 흐름과 각 Stage별 제어 신호 및 동작을 직접 확인 하였다.
이번 명령어 코드는 지난번 과제보다 양도 더 많고 명령어의 종류도 다양하여 약간 헷갈렸다. 하지만 덕분에 여러 명령어의 Opcode와 function코드를 알게 되었고, 각 명령어들의 동작 방법도 복습할 수 있었다. 특히, slt나 srl 등 예전에 배웠던 명령어들을 이번 과제를 통해 한번 더 공부하게 되어 유익하였다.
참고 자료
없음