CENG3420 Lab 3-1: LC-3b Datapath
Wei Li
Department of Computer Science and Engineering The Chinese University of Hong Kong
wli@cse.cuhk.edu.hk
Spring 2020
1 / 22
CENG3420 Lab 3-1: LC-3b Datapath Wei Li Department of Computer - - PowerPoint PPT Presentation
CENG3420 Lab 3-1: LC-3b Datapath Wei Li Department of Computer Science and Engineering The Chinese University of Hong Kong wli@cse.cuhk.edu.hk Spring 2020 1 / 22 Overview Introduction Lab3-1 Assignment Golden Results 2 / 22 Overview
1 / 22
2 / 22
3 / 22
3 / 22
4 / 22
5 / 22
6 / 22
7 / 22
7 / 22
R PC<−BaseR To 18 12 To 18 To 18 R R To 18 To 18 To 18 MDR<−SR[7:0] MDR <− M IR <− MDR R DR<−SR1+OP2* set CC DR<−SR1&OP2* set CC [BEN] PC<−MDR 32 1 5 1 To 18 To 18 To 18 R R [IR[15:12]] 28 30 R7<−PC MDR<−M[MAR] set CC BEN<−IR[11] & N + IR[10] & Z + IR[9] & P 9 DR<−SR1 XOR OP2* 4 22 To 11
1011 JSR JMP BR 1010
To 10 21 20 1
LDB
MAR<−B+off6 set CC To 18 MAR<−B+off6 DR<−MDR set CC To 18 MDR<−M[MAR] 25 27 3 7 6 2
STW STB LEA SHF TRAP XOR AND ADD RTI
To 8 set CC 14
LDW
MAR<−B+LSHF(off6,1) MAR<−B+LSHF(off6,1) PC<−PC+LSHF(off9,1) 33 35 DR<−SHF(SR,A,D,amt4) NOTES B+off6 : Base + SEXT[offset6] R MDR<−M[MAR[15:1]’0] DR<−SEXT[BYTE.DATA] R 29 18, 19 MDR<−SR To 18 R R M[MAR]<−MDR 16 23 R R 17 To 19 24 M[MAR]<−MDR** MAR<−LSHF(ZEXT[IR[7:0]],1) 15 To 18 PC+off9 : PC + SEXT[offset9] MAR <− PC PC <− PC + 2 *OP2 may be SR2 or SEXT[imm5] ** [15:8] or [7:0] depending on MAR[0] set CC DR<−PC+LSHF(off9,1) 13 31 [IR[11]] R7<−PC PC<−BaseR PC<−PC+LSHF(off11,1) R7<−PC
8 / 22
9 / 22
9 / 22
10 / 22
11 / 22
11 / 22
12 / 22
13 / 22
14 / 22
15 / 22
15 / 22
Simulating for 6 cycles... MemCycleCnt = 0 MEM_EN = 0, R_W = 0, WE0 = 0, WE1 = 0 MemCycleCnt = 0 MEM_EN = 1, R_W = 0, WE0 = 0, WE1 = 0 MemCycleCnt = 1 MEM_EN = 1, R_W = 0, WE0 = 0, WE1 = 0 MemCycleCnt = 2 MEM_EN = 1, R_W = 0, WE0 = 0, WE1 = 0 MemCycleCnt = 3 MEM_EN = 1, R_W = 0, WE0 = 0, WE1 = 0 MemCycleCnt = 4 MEM_EN = 1, R_W = 0, WE0 = 0, WE1 = 0
16 / 22
Current register/bus values :
: 6 PC : 0x3002 IR : 0x0000 STATE_NUMBER : 0x0023 BUS : 0x0000 MDR : 0xe00f MAR : 0x3000 CCs: N = 0 Z = 1 P = 0 Registers: 0: 0x0000 1: 0x0000 2: 0x0000 3: 0x0000 4: 0x0000 5: 0x0000 6: 0x0000 7: 0x0000
17 / 22
Simulating for 1 cycles... MemCycleCnt = 1 MEM_EN = 0, R_W = 0, WE0 = 0, WE1 = 0
18 / 22
Current register/bus values :
: 7 PC : 0x3002 IR : 0xe00f STATE_NUMBER : 0x0020 BUS : 0xe00f MDR : 0xe00f MAR : 0x3000 CCs: N = 0 Z = 1 P = 0 Registers: 0: 0x0000 1: 0x0000 2: 0x0000 3: 0x0000 4: 0x0000 5: 0x0000 6: 0x0000 7: 0x0000
19 / 22
Simulating for 5 cycles... MemCycleCnt = 0 MEM_EN = 0, R_W = 0, WE0 = 0, WE1 = 0 MemCycleCnt = 0 MEM_EN = 0, R_W = 0, WE0 = 0, WE1 = 0 MemCycleCnt = 0 MEM_EN = 0, R_W = 0, WE0 = 0, WE1 = 0 MemCycleCnt = 0 MEM_EN = 1, R_W = 0, WE0 = 0, WE1 = 0 MemCycleCnt = 1 MEM_EN = 1, R_W = 0, WE0 = 0, WE1 = 0
20 / 22
Current register/bus values :
: 12 PC : 0x3004 IR : 0xe00f STATE_NUMBER : 0x0021 BUS : 0x0000 MDR : 0x0000 MAR : 0x3002 CCs: N = 0 Z = 0 P = 1 Registers: 0: 0x3020 1: 0x0000 2: 0x0000 3: 0x0000 4: 0x0000 5: 0x0000 6: 0x0000 7: 0x0000
21 / 22
22 / 22