CE118 Project Part 1
CE118 Project Part 1
• RRR 3 3 3 3 4
000 Rs1 Rs2 Rd 0000 add add Rs1, Rs2, Rd Reg[Rd] Reg[Rs1] + Reg[Rs2]
000 Rs1 Rs2 Rd 0001 sub sub Rs1, Rs2, Rd Reg[Rd] Reg[Rs1] - Reg[Rs2]
000 Rs1 000 Rd 0010 inc inc Rs1, Rd Reg[Rd] Reg[Rs1] + 1
000 Rs1 000 Rd 0011 dec dec Rs1, Rd Reg[Rd] Reg[Rs1] - 1
000 Rs1 Rs2 Rd 0100 and and Rs1, Rs2, Rd Reg[Rd] Reg[Rs1] and Reg[Rs2]
000 Rs1 Rs2 Rd 0101 or or Rs1, Rs2, Rd Reg[Rd] Reg[Rs1] or Reg[Rs2]
000 Rs1 Rs2 Rd 0110 xor xor Rs1, Rs2, Rd Reg[Rd] Reg[Rs1] xor Reg[Rs2]
000 Rs1 Rs2 Rd 0111 nand nand Rs1, Rs2, Rd Reg[Rd] Reg[Rs1] nand Reg[Rs2]
000 Rs1 000 Rd 1000 shfl shfl Rs1, Rd Reg[Rd] Reg[Rs1] << 1
000 Rs1 000 Rd 1001 shfr shfr Rs1, Rd Reg[Rd] Reg[Rs1] >> 1
000 Rs1 000 Rd 1010 shll shll Rs1, Rd Reg[Rd] Reg[Rs1] << 2
000 Rs1 000 Rd 1011 shrr shrr Rs1, Rd Reg[Rd] Reg[Rs1] >> 2
000 Rs1 000 Rd 1100 slll slll Rs1, Rd Reg[Rd] Reg[Rs1] << 3
000 Rs1 000 Rd 1101 srrr srrr Rs1, Rd Reg[Rd] Reg[Rs1] >> 3
000 Rs1 Rs2 Rd 1110 (mul) mul Rs1, Rs2, Rd Reg[Rd] Reg[Rs1] x Reg[Rs2]
000 Rs1 Rs2 Rd 1111 (div) div Rs1, Rs2, Rd Reg[Rd] Reg[Rs1] ÷ Reg[Rs2]
51
Thực hiện bởi Trường Đại học Công nghệ Thông tin, ĐHQG-HCM
• RRI OC R1 R2 Imm Assembly-Code Format Meaning
3 3 3 7
001 Rs1 Rd Imm addi addi Rs1, Rd, Imm Reg[Rd] Reg[Rs1] + Imm
010 Rs1 Rd Imm subi subi Rs1, Rd, Imm Reg[Rd] Reg[Rs1] – Imm
011 Rs1 Rs2 Imm beq beq Rs1, Rs2, Imm PC = Reg[Rs1] == Reg[Rs2] ? Imm : PC + 1
52
Thực hiện bởi Trường Đại học Công nghệ Thông tin, ĐHQG-HCM
53
IR Imem(PC)
Type
2 1 0
Register instruction
OpCode L/S
1 0 1 0 RF(Rd) Op RF(Rs1)
PC PC + 1
IR Imem(PC)
Type
2 1 0
Register instruction
OpCode L/S
1 0 1 0 RF(Rd) Op RF(Rs1)
PC PC + 1
IR Imem(PC)
Type
2 1 0
Register instruction
OpCode L/S
1 0 1 0 RF(Rd) Op RF(Rs1)
PC PC + 1
IR Imem(PC)
Type
2 1 0
Register instruction
OpCode L/S
1 0 1 0 RF(Rd) Op RF(Rs1)
PC PC + 1
Reg. Access
Execution
Mem. Access
KQ=Op RF(Rs1)
RF(Rd)
IRImem(PC) RF(Rs1) KQ=RF(Rs1) Op RF(Rs2)
PCPC+1 RF(Rs2) KQ=RF(Rs1) Op Imm
60 KQ
KQ=Imm
Instr. Shi
RF ALU DMem
Decoder fter
IMem
DAD
I/O
PC controller
IRImem(PC)
RF(Rd) Dmem(Imm) RF(Rd)
PCPC+1
61
Instr. Shi
RF ALU DMem
Decoder fter
IMem
DAD
I/O
PC controller
RF(Rd)
IRImem(PC)
KQ=Dmem(Imm)
PCPC+1
62 KQ
Instr. Shi
RF ALU DMem
Decoder fter
IMem
DAD
I/O
PC controller
ADDRESS
Address
def RF
Adder
DAD
I/O
PC controller
Datapath
IBUS Processor DBUS
65
Register instruction
CONTROL
DATA
ADDRESS
DATA
ADDRESS
Address
def RF
Adder
DAD
I/O
PC controller
Datapath
66
IBUS Processor DBUS
Branch instruction
CONTROL
ADDRESS
DATA
DATA
ADDRESS
Address
def RF
Adder
DAD
I/O
PC controller
Datapath
67
IBUS Processor DBUS
Memory instruction
CONTROL
ADDRESS
DATA
DATA
ADDRESS
Address
def RF
Adder
DAD
I/O
PC controller
Datapath
68
IBUS Processor DBUS
RF:
Read Enable A
Read Enable B
Read Address A
Read AddressB
Write Enable
Write Address
DMEM{I/O control}:
Read/Write
(Address) – (Imm)
Enable
Mux 1(ALU): Mux 2(PC):
ALUSrc: 0 – RF ; 1 – Imm 1: PC Imm
Branch không jpnz, Zero-flag ALU = 1
ALU: Branch và jpnz, Zero-flag ALU = 0
ALUOp 0: PC PC + 1
Shifter: Mux 3(Write back):
69
Shift 0 – Ex result ; 1 – Imm ; 2 – Mem
OC R1 R2 R3 Func REA RAA REB RAB WE WA R/W En ALUS ALUO Shif PCBr Jpnz WrB
3 3 3 3 4
000 Rs1 Rs2 Rd 0000 add 1 Rs1 1 Rs2 1 Rd X 0 0 0 0 0 0 1
000 Rs1 Rs2 Rd 0001 sub 1 Rs1 1 Rs2 1 Rd X 0 0 2 0 0 0 1
000 Rs1 000 Rd 0010 inc 1 Rs1 1 Rs1 1 Rd X 0 0 1 0 0 0 1
000 Rs1 000 Rd 0011 dec 1 Rs1 1 Rs1 1 Rd X 0 0 3 0 0 0 1
000 Rs1 Rs2 Rd 0100 and 1 Rs1 1 Rs2 1 Rd X 0 0 4 0 0 0 1
000 Rs1 Rs2 Rd 0101 or 1 Rs1 1 Rs2 1 Rd X 0 0 5 0 0 0 1
000 Rs1 Rs2 Rd 0110 xor 1 Rs1 1 Rs2 1 Rd X 0 0 6 0 0 0 1
000 Rs1 Rs2 Rd 0111 nand 1 Rs1 1 Rs2 1 Rd X 0 0 7 0 0 0 1
000 Rs1 000 Rd 1000 shfl 1 Rs1 1 Rs1 1 Rd X 0 0 4 1 0 0 1
000 Rs1 000 Rd 1001 shfr 1 Rs1 1 Rs1 1 Rd X 0 0 4 4 0 0 1
000 Rs1 000 Rd 1010 shll 1 Rs1 1 Rs1 1 Rd X 0 0 4 2 0 0 1
000 Rs1 000 Rd 1011 shrr 1 Rs1 1 Rs1 1 Rd X 0 0 4 5 0 0 1
000 Rs1 000 Rd 1100 slll 1 Rs1 1 Rs1 1 Rd X 0 0 4 3 0 0 1
000 Rs1 000 Rd 1101 srrr 1 Rs1 1 Rs1 1 Rd X 0 0 4 6 0 0 1
000 Rs1 Rs2 Rd 1110 (mul)
000 Rs1 Rs2 Rd 1111 (div)
70
OC R1 R2 Imm REA RAA REB RAB WE WA R/W En ALUS ALUO Shif PCBr Jpnz WrB
3 3 3 7
001 Rs1 Rd Imm addi 1 Rs1 1 Rs2 1 Rd X 0 1 0 0 0 0 1
010 Rs1 Rd Imm subi 1 Rs1 1 Rs2 1 Rd X 0 1 2 0 0 0 1
011 Rs1 Rs2 Imm beq 1 Rs1 1 Rs2 0 X X 0 0 2 0 1 0 0
OC R1 Imm
3 3 9
100 Rd Imm lw 0 X 0 X 1 Rd 1 1 0 4 0 0 0 2
101 Rd Imm sw 1 Rd 1 Rd 0 X 0 1 0 4 0 0 0 0
110 Rd Imm jpnz 1 Rd 1 Rd 0 X X 0 0 4 0 1 1 0
111 Rd Imm li 0 X 0 X 1 Rd X 0 0 0 0 0 0 1
71
C ASM
#include <stdio.h> mov ax,10
Int main(void) mov bx, 2 Hex
{ compiler sub ax,1 compiler 0000 900a
9402 5001
loader
print(“Hello world”); 2n: IMem
} toolchain mult bx, 2 ISA 6402 5001
e004 f000
debugger
sub ax, 1
jmpp 2n
halt manual manual
CPU must follow standard manual
architecture or engineer
must design its own compiler
This project focus
Xây dựng code ASM các chương trình ứng dụng, kiểm tra
Biên dịch ra hex hoặc bin
72
Thực hiện bởi Trường Đại học Công nghệ Thông tin, ĐHQG-HCM
Nạp code Mô phỏng waveform Kiểm tra chức năng
73
Thực hiện bởi Trường Đại học Công nghệ Thông tin, ĐHQG-HCM
Tổng hợp Report tài nguyên Kiểm tra tài nguyên
74
Thực hiện bởi Trường Đại học Công nghệ Thông tin, ĐHQG-HCM
Tổng hợp Phân tích đình thời Report định thời
Kiểm tra định thời
75
Thực hiện bởi Trường Đại học Công nghệ Thông tin, ĐHQG-HCM
Nạp code Mô phỏng waveform định thời mức cổng
Kiểm tra định thời
76
Thực hiện bởi Trường Đại học Công nghệ Thông tin, ĐHQG-HCM
Nạp code Mô phỏng waveform định thời mức cổng với Fmax
Kiểm tra thời gian hoàn thành
77
Thực hiện bởi Trường Đại học Công nghệ Thông tin, ĐHQG-HCM
Tổng hợp Phân tích công suất Report công suất
Kiểm tra công suất
78
Thực hiện bởi Trường Đại học Công nghệ Thông tin, ĐHQG-HCM
Your design Other design
(recommend)
Tài nguyên
…
Tần số tối đa
Định thời
…
Công suất
…
Hiệu năng (testbench: )
79
Thực hiện bởi Trường Đại học Công nghệ Thông tin, ĐHQG-HCM
CONTROL
DATA
ADDRESS
DATA
ADDRESS
Address
def RF
Adder
DAD
I/O
PC controller
Datapath
IBUS Processor DBUS
80
KQ=Op RF(Rs1)
KQ=RF(Rs1) Op RF(Rs2)
IRImem(PC) RF(Rs1) RF(Rd)
KQ=RF(Rs1) Op Imm Dmem(Imm) RF(Rd)
PCPC+1 RF(Rs2)
KQ=Imm KQ=Dmem(Imm)
PCJ?PC+1/Imm RF(Rd) KQ
J=RF(Rs1)?=RF(Rs2)
J=RF(Rs1)?=0
81
CONTROL
DATA
ADDRESS
Instr.
DATA
ADDRESS
Decoder
Address
def
Imm.
def
Imm.
Shi
Ext. RF ALU
fter
IMem DMem
Op. &
Func. def
1
D
Adder A
D
I/O
controller
PC
MEM/WB
DATA
ADDRESS
Decoder
Address
def
Imm.
def
EX/MEM
REG/EX
IF/REG
Imm.
Shi
Ext. RF ALU
fter
IMem DMem
Op. &
Func. def
1
D
Adder A
D
I/O
controller
PC
Branch prediction?
89
Thực hiện bởi Trường Đại học Công nghệ Thông tin, ĐHQG-HCM
90
Thực hiện bởi Trường Đại học Công nghệ Thông tin, ĐHQG-HCM
• Báo full project 10/12/2024 (Lớp thực hành)
• Báo cáo final:
• Trình bày slide, demo, thuyết trình kết quả
• Hỏi đáp