Digital Processor Design
-
[SRC 설계] 프로그램 시뮬레이션 및 SRC Simulator 검증Digital Processor Design 2013. 6. 27. 16:39
4. 프로그램 실행 시뮬레이션4.1 test_pro_add.mif (1부터 10까지 더하는 프로그램)4.1.1 Maxplus 2 시뮬레이션 파형 test_pro_add.mif 파일에 프로그램을 넣고 실행한 결과이다. 0x37 = 55값이 잘 저장되는 것을 확인하였다. 4.1.2 SRC Simulator Tool 사용SRC 시뮬레이션 툴을 이용해서 값을 확인한 그림이다. 좌측에 사용한 프로그램의 assembly 언어표현, 기계어 표현으로 나타내주는 창이 있고 이 값을 통해서 시뮬레이션을 마친 결과가 우측에 있다. 마지막 instruction에서 st r2, 64(r0)를 통해 r2에 저장되어있던 값이 0x0000_0040번지에 잘 저장되는 것을 확인하였다. 4.2 test_pro.mif (계산하는 프로그램..
-
[SRC 설계] Control Unit 검증 및 시뮬레이션Digital Processor Design 2013. 6. 27. 16:20
3.2 Control Unit 검증좌측에서부터 ld, st, add, br, shl instruction의 OP code를 입력으로 주고 해당하는 Step에 맞는 컨트롤 신호가 나오는 지를 검증하였다. Master CLK가 계속 들어오는 도중에 초기에 STRT 신호를 한번만 주면 그 다음부터 계속해서 Instruction Fetch, Execution을 반복해서 수행하는 것을 볼 수 있다. 그리고 Branch 명령은 조건이 참인 경우에만 Jump를 하기 때문에 명령이 참인 경우에 신호를 보내주는 CON입력을 Data path로부터 받아와야 한다. 그러나 여기서는 Control Unit만 검증하는 단계이므로 직접 CON 신호를 입력으로 주고 정확하게 Jump가 일어나는지를 확인하였다.마찬가지로 Shift ..
-
[SRC 설계] Data Path 검증 및 시뮬레이션Digital Processor Design 2013. 6. 27. 16:19
3. 검증3.1 Data Path 검증 3.1.1 la Instruction ( la r1, 1 )StepConcrete RTNControl SequenceT0MA ← PC : C ← PC + 4;PCout, MAin, INC4, CinT1MD ← M[MA] : PC ← C;Cout, PCin, MDrd, StrobeT2IR ← MD;MDout, IRinT3A ← ((rb=0) → 0: (rb≠0) → R[rb]);Grb, BAout, AinT4C ← A + c2{sign-extened};c2out, ADD, CinT5R[ra] ← C;Cout, Gra, Rin, END 3.1.2 add Instruction ( add r2, r1, r1 ) StepConcrete RTNControl SequenceT0..
-
[SRC 설계] 1BUS 구조 SRC 설계 및 구현Digital Processor Design 2013. 6. 27. 15:41
2.3 32-Bits 1-BUS SRC 설계 앞서 설계했던 Data Path와 Control Unit을 각각 Symbol로 만들어서 두 블록을 연결하면 최종적으로 32-bit 1-BUS SRC가 완성된다. 이 때 전체 머신의 입력은 STRT, MCK 그리고 CPUBUS, MEMBUS 이며, 출력은 CON, NEQZ 그리고 CPUBUS, MEMBUS 이다. 이 때 CON과 NEQZ는 Data Path에서 만들어져서 Control Unit의 입력으로 사용된다. 각 Instruction별로 어떤 Control Signal이 나가는지 알아보기 위해 Control Unit의 각 출력을 전부 따로 출력핀으로 뽑아내었다.
-
[SRC 설계] Control Unit 설계 및 구현Digital Processor Design 2013. 6. 27. 15:38
2.2 Control Unit 설계다음은 32-bit SRC의 Coltrol Unit 이다. Control Unit의 구성요소는 우선 Memory로부터 읽어들어온 Instruction의 일부분(OP code)를 받아서 입력으로 사용하고, 들어온 op code에 따라 32가지의 instruction 출력을 내보내는 5x32 decoder가 있다. 그리고 각 모든 컨트롤 신호를 T0~T7의 step신호와 Instruction, 그리고 추가 명령을 통해서 만들어주는 Control Signal Encoder가 있다. 그리고 Master CLK과 START 신호를 받아서 Step generator를 enable시켜주는 Clocking Logic 블록, T0~T7까지 타이밍 step 신호를 만들어주는 step ge..
-
[SRC 설계] Data Path 설계 및 구현 (2)Digital Processor Design 2013. 6. 27. 15:32
2.1.5 Arithmetic and Logic Unit (ALU)다음은 ALU가 여러개의 블록들을 통해 완성된 모습이다. 우리가 설계한 32bit SRC는 ADD, SUB, AND, OR, NOT, NEG, CEQB, INC4, SHR, SHRA, SHL, SHC 등을 수행하는 ALU이다. 세부 블록들을 살펴보면 다음과 같다. 우선 다음 블록은 32bit 74181 모듈에 들어가게 될 A 입력값을 INC4와 NEG의 명령이 들어왔을 때 어떻게 처리할 것인지를 결정하는 역할을 한다. INC4는 PC를 PC+4로 바꿀 때 사용하는 명령이고 NEG은 들어온 입력의 부호를 바꿀 때 사용하는 명령이다. 따라서 INC4의 명령이 들어왔을 경우 ALU가 A+B의 처리를 할 때 A값을 반드시 4로 만들어 주어야 한다..
-
[SRC 설계] Data Path 설계 및 구현 (1)Digital Processor Design 2013. 6. 27. 15:30
2. 설계 및 구현2.1 Data Path 설계다음은 32bit SRC의 1-BUS Data Path이다. 크게 ALU, 32bit Register, Instruction Register, Memory와 여러 instruction을 수행하는 도중에 필요한 Con값을 내보내는 블록, SHIFT instruction을 수행하는데 필요한 Shift Counter 블록이 있다. 2.1.1 Register다음은 PC값을 저장하는 Register, ALU 출력을 저장하는 C register, 그리고 R1~R31까지의 register를 설계한 것이다. D F/F을 사용했으며 CLK는 모두 공통으로 들어간다. 그리고 Data path에 올라와 있는 데이터가 곧바로 register에 들어가는 것을 막기 위해, 그리고 r..
-
[SRC 설계] 32Bits 1BUS SRC 설계 개요Digital Processor Design 2013. 6. 27. 15:13
1. 개요한 학기 분량 수업의 프로젝트로써 32bit SRC(Simple RISC Computer)를 설계하였다. 32bit CPU는 Instruction이 32bit라는 의미이며 instruction의 종류에 따라 여러 가지 Format이 있다.위의 그림을 보면 우리가 설계할 32bit SRC는 32bit짜리 register가 32개가 있으며, 이 레지스터는 범용 목적으로 사용 가능하다. 그리고 PC를 저장하는 레지스터가 있으며 역시 32bit로 이루어져 있다. 즉 Program Counter는 0x0000_0000 의 형태로 표현할수 있으며 그 다음 PC는 PC+4값이 된다. 즉 0x0000_0004가 된다.그리고 그림에서의 메모리는 2^32 Bytes 의 크기를 가지고 있다. 다음은 우리가 앞으로 ..