59
VHDL 을 을을을 8-bit Microprocessor 을을 을을을을을을을을 을을을을을 CAD / VLSI LAB.

VHDL을 이용한 8-bit Micro Processor 설계

Embed Size (px)

Citation preview

Page 1: VHDL을 이용한 8-bit Micro Processor 설계

VHDL 을 이용한 8-bit Microprocessor 설계

한국외국어대학교전자공학과

CAD / VLSI LAB.

Page 2: VHDL을 이용한 8-bit Micro Processor 설계

2

Microprocessor 설계 (1) Computer Systems Layer Model 표Software Applications

Operating System

Instruction Set Architecture Interface BetweenSoftware & Hardware

Organizaton High Level DesignCache Size, Data Path Width

Microarchitecture ALU Structure, Bus ProtocolDetailed Structural Design

ComputerArchitecture

Hardware

Implementation Logic,Circuit Design and Layout

Page 3: VHDL을 이용한 8-bit Micro Processor 설계

3

Microprocessor 설계 (2)

기본적인 출발은 명령어구조 (Instruction Set Architecture) 이다 .– 이 명령어 구조는 software 와 hardware 의 중간

매개체 역할을 한다 . 설계과정

– 명령어 구조를 기반으로 계층적인 설계를 통해 Top-down 방식으로 이루어진다 .

– 설계 방식에 따라 내부 버스의 구조 , ALU 의 구조 , Cache 구조 등을 설계 해야 한다 .

Page 4: VHDL을 이용한 8-bit Micro Processor 설계

4

8-bit Microprocessor 의 설계

8-bit Simple Instruction Set Computer (8-bit SISC)– 8-bit wide instructions and data– Single register - Accumulator only– Only 8 instructions– Fixed-length, single format instructions– 5-bit addressable memory space– Direct addressing mode only

Page 5: VHDL을 이용한 8-bit Micro Processor 설계

5

Instruction Format

Instruction Set Architecture(8bit)

Register

7 5 4 0

OP - code Address

Accumulato r

7 0

Page 6: VHDL을 이용한 8-bit Micro Processor 설계

6

Instruction SetInstruction OPCode Operation

Halt 000 Program flow stops

Skip-if-Zero 001 Next instruction bypassed if Acc=0

Add 010 Acc <- Acc + M[Address]

And 011 Acc <- Acc AND M[Address]

Xor 100 Acc <- Acc XOR M[Address]

Load 101 Acc <- M[Address]

Store 110 M[Address] <- Acc

Jump 111 PC <- Address

Page 7: VHDL을 이용한 8-bit Micro Processor 설계

7

Pin Timing(1)

여기서의 MEM_CLK 는 메모리가 있을 때를 가정하고 생각한다 .

CLK and MEM_CLK are in the opposite phase. All internal registers in the CPU are rising-edge-triggered. Memory address and enables are sampled on the rising

edge of MEM_CLK. On memory read, valid memory data is driven when

MEM_CLK is high. On memory write, memory data is sampled on the rising

edge of MEM_CLK.

Page 8: VHDL을 이용한 8-bit Micro Processor 설계

8

Pin Timing(2)

C LK

M E M _C LK

M E M _ADDR

R E AD

WR ITE

M E M _DATA

RADDR WADDR

RDATA WDATAHiZ

Page 9: VHDL을 이용한 8-bit Micro Processor 설계

9

Instruction Types and Execution Steps(1)

각 명령어는 1 Cycle 에 수행되는 것이 아니라 , 3 ~ 4 번의 clock cycle 을 통해 수행된다 .

각 단계별 수행 내용은 다음 장의 표와 같다 . 각 단계별로 수행되는 내용을 바탕으로

Microprocessor 의 Data Path 및 제어부를 설계하여야 한다 .

Page 10: VHDL을 이용한 8-bit Micro Processor 설계

10

Instruction Types and Execution Steps(2)

Instruction Types Execution StepsArithmetic/LogicInstructions(Add, And, Xor)

Inst.Fetch

Inst.Deocde

Mem.Read

Exec.Write

Memory Instructions(Load)

Inst.Fetch

Inst.Deocde

Mem.Read

Write

Memory Instructions(store)

Inst.Fetch

Inst.Deocde

Mem.Write

Branch Instructions(Jump, Skip-if-zero)

Inst.Fetch

Inst.Deocde

PCUpdate

System Instructions(Halt)

Inst.Fetch

Inst.Deocde

PCStall

Page 11: VHDL을 이용한 8-bit Micro Processor 설계

11

SISC 형태의 구현 (1) 먼저 top level 의 schematic 을 아래와 같이

보였다 .S ISC

M E M _ADDR(4: 0)RE ADWRITE

M E M _DATA_IN (7:0)RE SE T

C LK

C LOC KG E N

M E M _C LK

S IS C _M EM ORYM E M _ADDR(4: 0)RE ADWRITE

M E M _DATA_IN(7: 0)

C LK

RE SE T

M E M _ADDR(4: 0)RE ADWRITE

M EM _DATA_IN(7: 0)RE SE TC LK

M E M _DATA_OU T(7:0) M EM _DATA_OUT(7:0)M EM _DATA_OUT(7: 0)

Page 12: VHDL을 이용한 8-bit Micro Processor 설계

12

SISC 형태의 구현 (2) 각 단자 (pin) 의 이름 및 신호의 명칭은 아래와

같다 . SISC CLK External CPU Clock input RESET External Reset input WRITE Memory Write Enable output READ Memory Read Enable output MEM_ADDR[4:0] Memory Address output MEM_DATA_IN[7:0]Memory Read Data input MEM_DATA_IN[7:0]Memory Write Dataoutput

Page 13: VHDL을 이용한 8-bit Micro Processor 설계

13

SISC 형태의 구현 (3)

MEMORY READ Memory Write Enable inp

ut WRITE Memory Read Enable inp

ut MEM_ADDR[4:0] Memory Address inp

ut MEM_DATA_IN[7:0]Memory Read Data output MEM_DATA_out[7:0]Memory Write Data inp

ut

Page 14: VHDL을 이용한 8-bit Micro Processor 설계

14

SISCprocessor 의 미세 구조

C ONTRO L

P C _LO G IC

AD DR_M U X

F LAGAC C

ALU

S TATE

IRM DRIR_B UF

A(7: 0) B (7: 0)

B U F _BU S _IN(7: 0)

B U F _IN (7: 0)

RW

B U F _O U T(7: 0)

IR_IN (7: 0)

LDC LK

IR_O U T(7: 0)

F LAG _IN (7: 0)

LD

C LK F LAG _O U T

AC C _IN(7: 0)

LD

RE S E TC LK

AC C _O U T(7: 0)

ALU _O U T(7: 0)

O P (2: 0) ZE ROO P (2: 0)

P S TATE (1: 0)N S TATE (1: 0)

LD_M D RLD_AC C

DO U T_E NLD _IRLD _P C

IN C

RDWRS E L

P C _IN (4: 0)

LD_P C

IN C _P C

RE S E TC LK

A(4: 0)B (4: 0)

M U X_O U T(4: 0)

P C _O U T(4: 0)

M DR _IN (7: 0)

LD

C LK

M DR _O U T(7: 0)

S TATE _O U T(1: 0)

S TATE _IN(1: 0)

RE S E TC LK

S E L

RE AD

WRITE

M U X_O U T(4: 0)

RE S E TC LK

(7: 5)

(4: 0)

M E M _D ATA_IN(7: 0)

M E M _DATA_O U T(7: 0)

B U F _B U S _O U T(7: 0)

Page 15: VHDL을 이용한 8-bit Micro Processor 설계

15

명령어 Timing(1) Store Instruction Timing

C LK

R E ADD

WRITE

LD_IR

LD_AC C

LD_P C

DO U T_E N

LD_M DR

P S TATE

NS TATE

00 01 10

01 10 00

IF ID M E M

Page 16: VHDL을 이용한 8-bit Micro Processor 설계

16

명령어 Timing(2) Add, And, Xor, Load Instructions Timing

C LK

RE ADD

WRITE

LD_IR

S E L

INC

LD_AC C

LD_P C

DO U T_E N

LD_M DR

P S TATE

NS TATE

00 01 10

01 10 00

IF ID M E M

11

11

ALU

Page 17: VHDL을 이용한 8-bit Micro Processor 설계

17

명령어 Timing(3) Jump Instruction Timing

C LK

R E ADD

WRITE

LD_IR

S E L

INC

LD_AC C

LD_P C

DO U T_E N

LD_M DR

P S TATE

NS TATE

00 01 10

01 10 00

IF ID M E M

Page 18: VHDL을 이용한 8-bit Micro Processor 설계

18

명령어 Timing(4) Skip-If-Zero Instruction Timing

C LK

R E ADD

WR ITE

LD_IR

S E L

INC

LD_AC C

LD_P C

DO U T_E N

LD_M DR

P S TATE

NS TATE

00 01 10

01 10 00

IF ID M E M

11

11

ALU

When zero is set

When zero is reset

Page 19: VHDL을 이용한 8-bit Micro Processor 설계

19

명령어 Timing(5) Halt Instruction Timing

C LK

R E ADD

WR ITE

LD_IR

S E L

IN C

LD_AC C

LD_P C

DO U T_E N

LD_M DR

P S TATE

NS TATE

00 01 10

01 10 00

IF ID M E M

Page 20: VHDL을 이용한 8-bit Micro Processor 설계

20

Microprocessor 검증 (1)

설계 내용을 VHDL 로 기술하고 메모리 부분에는 Fibonacci 수열 계산 프로그램을 넣고 , 시뮬레이션을 수행하여 결과를 얻을 수 있다 .

주의 : 이 프로젝트에서는 메모리 대신 , 직접 입력으로 값을 주었다 .

Page 21: VHDL을 이용한 8-bit Micro Processor 설계

21

Microprocessor 검증 (2)

00000 10111111 start: Load Xn00001 01011110 Add Xn-100010 11011010 Store tmp00011 10111111 Load Xn00100 11011110 Store Xn-100101 10111010 Load tmp00110 11011111 Store Xn00111 10111101 Load n01000 01011011 Add one01001 11011101 Store n01010 10011100 Xor Last_n01011 00100000 Skip-if-zero01100 11100000 Jump start01101 00000000 Halt

11010 dddddddd tmp: X11011 00000001 one: 111100 00001010 Last_n: 1011101 00000000 n: 011110 00000001 Xn-1: 111111 00000001 Xn: 1

•앞에서 언급한 Fibonacci 수열 계산 프로그램은 다음과 같다 .

Fibonacci Series Computation : Xn <- Xn-1 + Xn-2, X0=1, X1=1

Page 22: VHDL을 이용한 8-bit Micro Processor 설계

22

SISC 의 VHDL 로의 구현 (1) 앞의 미세구조에서 표현한 schematic 을

여러 block 으로 나누어 설계 크게 10 개의 block 으로 나누어 생각 메모리는 설계를 하지 않음 . 대신

메모리에 해당하는 파형을 simulation 을 할 때 직접 넣어 준다 .

실제 사용되는 핀은 다음과 같이 7 개이다 .– CLK, RESET, READ, WRITE, MEM_ADDR,

MEM_DATA_IN, MEM_DATA_OUT

Page 23: VHDL을 이용한 8-bit Micro Processor 설계

23

SISC 의 VHDL 로의 구현 (2) MDR(Memory Data Register) block

– 기능• 데이터 메모리를 일시적으로 기억

– 특징• IR 레지스터와 같이 데이터를 기억• 파일과 entity 이름은 REG

– 동작• LD = ‘1’ 인 경우에 동작• Clock = ‘1’ 이고 rising edge(clock event 가 발

생 ) 일때 REG_IN 에 입력된 값을 REG_OUT 으로 보냄

Page 24: VHDL을 이용한 8-bit Micro Processor 설계

24

– VHDL 표현library IEEE;

use IEEE.std_logic_1164.all;

entity REG is

port(CLK: in std_logic;

LD: in std_logic;

REG_IN: in std_logic_vector(7 downto 0);

REG_OUT: out std_logic_vector(7 downto 0));

end REG;

architecture RTL of REG is

begin

process(CLK)

begin

if CLK = '1' and CLK'event then

if LD = '1' then

REG_OUT <= REG_IN;

end if;

end if;

end process;

end RTL;

Page 25: VHDL을 이용한 8-bit Micro Processor 설계

25

– 출력 파형

Page 26: VHDL을 이용한 8-bit Micro Processor 설계

26

SISC 의 VHDL 로의 구현 (3)

IR(Instruction Register) block– 기능

• 메모리에서 읽은 명령어를 기억

– 특징• MDR 레지스터와 같은 역할• 파일과 entity 이름은 REG 이다 .

– VHDL 표현과 출력 파형• MDR 레지스터와 같다 .

Page 27: VHDL을 이용한 8-bit Micro Processor 설계

27

SISC 의 VHDL 로의 구현 (4) ALU(Arithmetic Logic Unit) block

– 기능• 5 가지의 연산 (ADD, AND, XOR, Load, Store)• 입 . 출력 변수

OPCODE : Instruction 입력 (3-bit)OP1, OP2 : 연산하고자 하는 데이터 ( 각 8-bit)ALU_OUT : 연산 후 출력되는 결과 (8-bit)

– 특징• OPCODE 에 따라 연산 수행• Array 연산을 하기 위해

use IEEE.std_logic_unsigned.all; 구문을 사용한다 .

Page 28: VHDL을 이용한 8-bit Micro Processor 설계

28

– VHDL 표현library IEEE;

use IEEE.std_logic_1164.all;

use IEEE.std_logic_unsigned.all;

entity ALU is

port(OPCODE: in std_logic_vector(2 downto 0);

OP1, OP2: in std_logic_vector(7 downto 0);

ALU_OUT: out std_logic_vector(7 downto 0));

end ALU;

architecture RTL of ALU is

begin

…… 과 제 (1) ……end RTL;

Page 29: VHDL을 이용한 8-bit Micro Processor 설계

29

– 출력 파형

Page 30: VHDL을 이용한 8-bit Micro Processor 설계

30

SISC 의 VHDL 로의 구현 (5) FLAG block

– 기능• ALU 연산의 결과 (Accumulator 에 저장되는 값 )

이 ‘ 0’ 인가의 여부를 조사하여 ‘ 0’ 이면 ‘ 1’ 을 , 그렇지 않으면 ‘ 0’ 을 출력한다 .

• 결과가 ‘ 1’ 이면 PC( 명령어 주소 ) 를 ‘ 1’ 증가시키고 , ‘0’ 이면 그대로 둔다 .

– 동작• CLK = ‘1’ 이고 rising edge 일 때 ALU 의 결과가

‘ 0’ 이면 SET(1) 값을 출력한다 .

Page 31: VHDL을 이용한 8-bit Micro Processor 설계

31

– VHDL 표현entity FLAG is

port(CLK: in std_logic;

LD: in std_logic;

FLAG_IN: in std_logic_vector(7 downto 0);

FLAG_OUT: out std_logic);

end FLAG;

architecture RTL of FLAG is

begin

process(CLK)

variable TEMP: std_logic;

begin

TEMP := '0';

if CLK = '1' and CLK'event then

if LD = '1' and FLAG_IN = "00000000" then

TEMP := '1';

end if;

end if;

FLAG_OUT <= TEMP;

end process;

end RTL;

Page 32: VHDL을 이용한 8-bit Micro Processor 설계

32

– 출력 파형

Page 33: VHDL을 이용한 8-bit Micro Processor 설계

33

SISC 의 VHDL 로의 구현 (6) ACC(Accumulator) block

– 기능• ALU 연산의 결과를 잠시 저장하는 역할• Data 폭이 8-bit 인 레지스터• 입 . 출력 변수

CLK : RESET : ‘1’ 이면 Accumulator 값을 ‘ 0’ 으로 초기화LD : ‘1’ 이면 값 저장가능ACC_IN : 입력되는 ALU 의 출력 (8-bit)ACC_OUT : Accumulator 의 출력 (8-bit)

– 동작• Rising edge 에서 동작

Page 34: VHDL을 이용한 8-bit Micro Processor 설계

34

– VHDL 표현library IEEE;

use IEEE.std_logic_1164.all;

entity ACC is

port(CLK, RESET: in std_logic;

LD: in std_logic;

ACC_IN: in std_logic_vector(7 downto 0);

ACC_OUT: out std_logic_vector(7 downto 0));

end ACC;

architecture RTL of ACC is

begin

…… 과 제 (2) ……end RTL;

Page 35: VHDL을 이용한 8-bit Micro Processor 설계

35

– 출력 파형

Page 36: VHDL을 이용한 8-bit Micro Processor 설계

36

SISC 의 VHDL 로의 구현 (7)

IR_BUF block– 기능

• Instruction 이나 데이터가 메모리에서 읽혀 잠시 저장되거나 , 계산된 데이터가 메모리에 저장되기 전에 결과를 잠시 저장하는 부분이다 .

– 동작• RW 값에 따라 메모리에 값을 읽거나 저장

RW = ‘1’ ALU 에서 계산된 값을 메모리에 write 함RW = ‘0’ 데이터나 Instruction 들을 메모리에서 읽어 옴

Page 37: VHDL을 이용한 8-bit Micro Processor 설계

37

– VHDL 표현entity IR_BUF is

port(RW: in std_logic;

BUF_IN: in std_logic_vector(7 downto 0);

BUF_OUT: out std_logic_vector(7 downto 0);

BUF_BUS_IN: in std_logic_vector(7 downto 0);

BUF_BUS_OUT: out std_logic_vector(7 downto 0));

end IR_BUF;

architecture RTL of IR_BUF is

begin

process(RW, BUF_IN, BUF_BUS_IN)

begin

if RW = '1' then

BUF_BUS_OUT <= BUF_IN;

elsif RW = '0' then

BUF_OUT <= BUF_BUS_IN;

else

BUF_OUT <= "00000000";

end if;

end process;

end RTL;

Page 38: VHDL을 이용한 8-bit Micro Processor 설계

38

– 출력 파형

Page 39: VHDL을 이용한 8-bit Micro Processor 설계

39

SISC 의 VHDL 로의 구현 (8)

PC_LOGIC block– 기능

• PC(Program Counter) 를 1 씩 증가 시켜 다음으로 수행될 주소를 지정하거나 , 새로운 주소를 갖게 한다 .

– 동작• INC_PC = ‘1’ 이고 LD_PC = ‘1’ 이면 PC_IN 을

‘ 1’ 증가시켜 출력

Page 40: VHDL을 이용한 8-bit Micro Processor 설계

40

– VHDL 표현architecture RTL of PC_LOGIC is

begin

process(CLK, RESET)

variable LAST_PC: std_logic_vector(4 downto 0) := "00000";

begin

if RESET = '1' then

LAST_PC := "00000";

elsif CLK = '1' and CLK'event then

if INC_PC = '1' and LD_PC = '0' then

LAST_PC := LAST_PC + 1;

elsif INC_PC = '0' and LD_PC = '1' then

LAST_PC := PC_IN;

end if;

end if;

PC_OUT <= LAST_PC;

end process;

end RTL;

Page 41: VHDL을 이용한 8-bit Micro Processor 설계

41

– 출력 파형

Page 42: VHDL을 이용한 8-bit Micro Processor 설계

42

SISC 의 VHDL 로의 구현 (9) ADDR_MUX block

– 기능 (1)• 프로그램 메모리의 주소 나타냄• 입 . 출력 변수

A : PC_LOGIC block 으로부터 오는 data (5-bit)B : IR block 에서 오는 data (5-bit)SEL : ‘1’ 이면 A 선택 , ‘0’ 이면 B 선택MUX_OUT : 선택된 값 출력 (5-bit)

• 두 개의 입력 중 SISC 가 수행하고자 하는 연산에 맞는 값을 출력

Page 43: VHDL을 이용한 8-bit Micro Processor 설계

43

– 기능 (2)• 예 ) Instruction 을 수행하고자 할 때 , IR

레지스터에서 오는 값을 출력하고 , 메모리를 가리켜 데이터를 읽거나 쓰고자 하면 PC_LOGIC 으로부터 오는 값을 출력

• Data 폭이 5bit 짜리인 Multiplexer 사용

Page 44: VHDL을 이용한 8-bit Micro Processor 설계

44

– VHDL 표현library IEEE;

use IEEE.std_logic_1164.all;

entity ADDR_MUX is

port(A, B: in std_logic_vector(4 downto 0);

SEL: in std_logic;

MUX_OUT: out std_logic_vector(4 downto 0));

end ADDR_MUX;

architecture RTL of ADDR_MUX is

begin

…… 과 제 (3) ……end RTL;

Page 45: VHDL을 이용한 8-bit Micro Processor 설계

45

– 출력 파형

Page 46: VHDL을 이용한 8-bit Micro Processor 설계

46

SISC 의 VHDL 로의 구현 (10)

STATE block– 기능

• 하나의 Instruction 은 보통 3-4 개의 Cycle 로 동작

• 이 블록은 현재의 상태를 나타냄

– 특징• RESET = ‘1’ 이면 , 다시 Instruction Cycle 이

처음부터 시작

Page 47: VHDL을 이용한 8-bit Micro Processor 설계

47

– VHDL 표현

architecture RTL of STATE is

begin

process(CLK, RESET)

begin

if RESET = '1' then

STATE_OUT <= "00";

elsif CLK = '1' and CLK'event then

STATE_OUT <= STATE_IN;

end if;

end process;

end RTL;

Page 48: VHDL을 이용한 8-bit Micro Processor 설계

48

– 출력 파형

Page 49: VHDL을 이용한 8-bit Micro Processor 설계

49

SISC 의 VHDL 로의 구현 (11)

CONTROL block– 기능

• 3-bit Op-code 의 명령어와 4 단계로 구분되는 Instruction Cycle 에 따라 , 마이크로 프로세서의 각 데이터 연산 블록에 대한 여러 가지 제어 신호를 내보내는 역할을 한다 .

• 제어 신호는 Multiplexer 에 대한 선택 신호나 메모리를 읽고 쓰는 신호 , 레지스터의 Enable신호이다 .

• 각 단계에서의 동작은 앞 내용 참조

Page 50: VHDL을 이용한 8-bit Micro Processor 설계

50

– VHDL 표현entity CONTROL is

port(OP: in std_logic_vector(2 downto 0);

ZERO: in std_logic;

PSTATE: in std_logic_vector(1 downto 0);

… 생략 …

SEL: out std_logic;

NSTATE: out std_logic_vector(1 downto 0));

end CONTROL;

architecture CONTROL_A of CONTROL is

begin

process(PSTATE, OP)

begin

case PSTATE is

when FETCH => -- Fetch

LD_MDR <= '0';

LD_ACC <= '0';

… 생략 …

WR <= '0';

… 이하 생략 …

Page 51: VHDL을 이용한 8-bit Micro Processor 설계

51

– 출력 파형

Page 52: VHDL을 이용한 8-bit Micro Processor 설계

52

SISC 의 VHDL 로의 구현 (10)

UP(Microprocessor) block– 기능

• 여러 개의 Entity 로 나타낸 각 기능 블럭들을 하나의 Microprocessor 로 동작을 하도록 묶어 준다 .

– 특징• 여기서 작성한 마이크로 프로세서에서는 메모리에

관한 부분이 없다 . 따라서 메모리에서 값이 읽혀지고 쓰여지는 부분은 모두 Altera MaxPlus II의 Wavefrom Editor 에서 직접 값을 입력을 해 주어야 한다 .

Page 53: VHDL을 이용한 8-bit Micro Processor 설계

53

– 동작• 각 block 들을 마이크로 프로세서를 구성하는 co

mponent 들로 생각하여 각 component 들을 연결시켜 주어야 한다 .

– 주의 사항• 값을 입력할 때는 MEM_ADDR 의 출력 결과를

살펴보고 거기에 맞는 값을 입력해야 한다 .• 출력되는 값이나 주소는 MEM_DATA_IN 에서

알 수 있고 , 입력되는 값은 MEM_DATA_OUT에서 알 수 있다 .

Page 54: VHDL을 이용한 8-bit Micro Processor 설계

54

– VHDL 표현entity UP is

port(RESET, CLK: in std_logic;

MEM_ADDR: out std_logic_vector(4 downto 0);

… 생략 …

MEM_DATA_OUT: out std_logic_vector(7 downto 0));

end UP;

architecture UP_A of UP is

signal OPCODE_DATA: std_logic_vector(7 downto 0);

signal OP1_DATA: std_logic_vector(7 downto 0);

… 생략 …

signal DOUT_EN: std_logic;

signal PC_OUT: std_logic_vector(4 downto 0);

signal SEL: std_logic;

begin

component ALU

port(OPCODE: in std_logic_vector(2 downto 0);

OP1, OP2: in std_logic_vector(7 downto 0);

ALU_OUT: out std_logic_vector(7 downto 0));

end component;

… 이하 생략 …

Page 55: VHDL을 이용한 8-bit Micro Processor 설계

55

– 출력파형 (1)

Page 56: VHDL을 이용한 8-bit Micro Processor 설계

56

– 출력파형 (2)

Page 57: VHDL을 이용한 8-bit Micro Processor 설계

57

– 출력파형 (3)

Page 58: VHDL을 이용한 8-bit Micro Processor 설계

58

MaxPlus II 사용시 주의 사항 Tool 의 Project 이름과 파일 이름 , entity

이름은 같게 MaxPlus II 사용 순서

– VHDL 로 구현하고자 하는 블록을 기술– Compile( 틀린 문장이 없는지 검사 )– Waveform Editor(input 값을 파형으로 입력 )– Simulator( 결과 )

알아 두어야 할 것– Waveform Editor 대신 Testbench 를 사용하는 것이 일반적– MaxPlus II 는 특정 Device 에 맞는 synthesis 를 하기 때문에

제한적인 구문 사용

Page 59: VHDL을 이용한 8-bit Micro Processor 설계

59

프로젝트에 관하여 이 프로젝트에서의 과제

– 다음 세 block 을 설계한다 . • ALU, ACC, ADDR_MUX 3 개의 block• 비어 있는 architecture ( 과제 ) 부분만을 채우면 된다 .

과제 제출– 5 월 30 일 ( 토 ) 까지 수행 결과물과 보고서를 담당

조교에게 제출

VHDL 소스는 IDEC 한양 지역센터 Home Page 에 있으니 , Download 받으시기 바랍니다 .– URL|| http://idec.hanyang.ac.kr/

과제를 수행하는 도중 의문이나 문의할 사항– E-mail: [email protected]

» ( 한국외대 전자공학과 CAD/VLSI LAB. 이선영 )