Tải bản đầy đủ (.docx) (26 trang)

ĐỒ án cấu TRÚC máy TÍNH LAB3 DESIGN a MIPS 32 BIT SINGLE CYCLE CPU

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (850.11 KB, 26 trang )


PHÂN CÔNG CÔNG VIỆC
ĐỒ ÁN CẤU TRÚC MÁY TÍNH
LAB3: DESIGN A MIPS
32
-BIT SINGLE - CYCLE CPU
 Công việc cụ thể
ST
T
Tên thành viên Công việc Đóng góp
1 Nguyễn Văn Cường
+ Tìm hiểu lại LAB 1: Thiết kế
RegisterFile 32 by 32
+Tìm hiểu hoạt động và thiết kế :
Khối Control, Khối dịch trái, Khối
mở rộng
+ Slide: phần I.
30%
2 Đặng Ngọc Hoàng
+ Tìm hiểu lại LAB2: Thiết kế bộ
tính toán ALU.
+Tìm hiểu hoạt động và thiết kế:
Thanh ghi PC, Khối JR_Control,
Các khối Multiplexor
+ Slide: phần II 1,2.
30%
3 Lê Hữu Việt
+ Tìm hiểu lại chương 4 sách COD
Tìm hiểu hoạt động và thiết kế:
ALUControl, MIPS, Khối mô
phỏng Stimulate


+ Slide: phần II3,III.
+ Báo cáo.
+ Mô phỏng lệnh trên Quartus
40%

 Tiến trình làm việc:
- Tìm hiểu tài liệu theo nhiệm vụ được giao.
- Thảo luận nhóm thống nhất sơ đồ khối cần thực hiện.
- Viết Code cho từng khối.
- Chia sẻ hiểu biết của từng thành viên trong nhóm về phần mình thiết kế.
- Ghép nối các khối với nhau, hiệu chỉnh thiết kế.
- Mô phỏng trên ModelSim và sơ đồ khối ở Quartus.
Lab3: Design a MIPS
32
-bit Single-Cycle CPU
 Yêu cầu thiết kế:
 

 Yêu cầu chung:
  !"#$%&' ()* +,-./)!012*3"  4/5*/6/&5*7
889.9.9:9;9.;9<9=>-9:
 6//?*&@/!A*/BC)6D*EFG@9FHI&JKLMNO
 6/!P1Q)!R*&@//B RIS*/T) (U/&5*"F@(&O
 Tập lệnh:
 5*&@V7
• ADD(I9(N9( 7 W(IXYW(NXZW( XO
• JR(N7 YW(NXO
• SLT(I9(N9( 7 -[\W(NX]W( X^W(IXYL$LLLLLLL
 &N W(IXYL$LLLLLLLLO
• SUB(I9(N9( 7 W(IXYW(NXW( XO

 5*&@V-7
 

• BNE(N9( 9,,_7 [\W(NX`YW( X^YZDZ.*a$ \-,,_^]]
&NYZDO

• LW( 9,,_\(N^7W( XY,WW(NXZ.*a$ \-,,_^XO
• SW( 9,,_\(N^7,WW(NXZ.*a$ \-,,_^XYW( XO
XOR-( 9(N9,,_7W( XYW(NX=>b(@a$ \-,,_^O
 5*:7
J ( 7YcW7X9 ( 9LLd
 Xây dựng SingleClock CPU:
 

 eN21f!P ?*C)6 /g9  !12*/)!0Jh)/i)7
Z*&5*
Z#*H&5*
Z# *
Z# j* @6*
Z#*HIk&5)
Z#1Q)!R* ()* +,
Z#1Q)!R*!P
Z#1Q)!R*&5*:
Z#,l(#*IT)
Z#Im/ (6
Z#,)& M&$@(
 D

 Program Counter:
 * 4/5**5,Fn (o H&5* M @1pq/ 4/5*O

 T) V@f,83r&Mr&@M
@I7

 !"
 !"

#$$%!!"!" #$$%""
#$$%"" #$$%""
#$$%&&"&" #$$%''"'"
#$$%(("(" #$$%))")"
#$$%**"*" #$$%++"+"
#$$%!!"!" #$$%""
#$$%"" #$$%""
#$$%&&"&" #$$%''"'"
#$$%(("(" #$$%))")"
#$$%**"*" #$$%++"+"
#$$%!!"!" #$$%""
#$$%"" #$$%""
#$$%&&"&" #$$%''"'"
#$$%(("(" #$$%))")"
#$$%**"*" #$$%++"+"
#$$%!!"!" #$$%""
,
 Bộ nhớ lệnh:
 #*H&5**s**E(/g&G,1m/t/g&5* M @1pq/
4/5*O
 E(" &G&5*1pq/ 4/h*O
@I7
-.-/
 !"/

 !"-
 !"! !"
 !"
012!!!

01!-!"!"
 01-""
 01-""
 K

 01-""
 01&-&"&"
 01'-'"'"
 01(-("("
 01)-)")"
 01*-*"*"
 01+-+"+"
 01!-!"!"
 01-""
 01-""
 01-""
 01&-&"&"
 01'-'"'"
 01(-("("
 01)-)")"
 01*-*"*"
 01+-+"+"
 01!-!"!"
 01-""
 01-""

 01-""
 01&-&"&"
 01'-'"'"
 01(-("("
 01)-)")"
 01*-*"*"
 01+-+"+"
 01!-!"!"
 01-""
/3/45/
0
6/7&"

-/
0
8/09:9


-
 !"/
3 !"
-.-4/
-/
0
89.;6<=-6<09/
/6>!
2!!!!/6>&
2!!!!/6>*
2!!!!/6>
 _


2!!!!/6>(
2!!!!/6>!
2!!!!/6>&
2!!!!/6>*
2!!!!/6>
2!!!!/6>(
2!!!!/6>&!
2!!!!/6>&&
2!!!!/6>&*
2!!!!
8?=


 Register File:
Z *" 9(h* *1i) h*\L^ 0&)A*,*6 (mLO
ZB*EFG@/u* *1u/\IN (FGIN (^FG
*E(Ik&5)\I8 FG8I8 ^
ZB*EFG@/u* *1RIk&5)\;( (N (^9*EFG@/@
MvM\;( ^FG*EFG@Ik&5)\;( 8 ^!FG@w&
*O
Sơ đồ khối:
@I7
$##@#@@77 /
& !"@ 77@ @
 !"@# 77@# @#//
@ 77@ @
 !"## 77# /#//
3 !": 77: A//0'
3 !"!&'()*+!&'()*+!

&'()*+!
'@: !"@ 77=B=/==CD=
::
#!+*)('&!+*)('&
!+*)('&! 77=B=/==E
 x

::
#!+*)('&!+*)('&
!+*)('&! 77=B=/==E
0!>0!! !":!"
0@# !":"
0@# !":"
0@# !":"
0&@#& !":&"
0'@#' !":'"
0(@#( !":("
0)@#) !":)"
0*@#* !":*"
0+@#+ !":+"
0!@#! !":!"
0@# !":"
0@# !":"
0@# !":"
0&@#& !":&"
0'@#' !":'"
0(@#( !":("
0)@#) !":)"
0*@#* !":*"
0+@#+ !":+"

0!@#! !":!"
0@# !":"
0@# !":"
0@# !":"
0&@#& !":&"
0'@#' !":'"
0(@#( !":("
0)@#) !":)"
0*@#* !":*"
0+@#+ !":+"
0!@#! !":!"
0@# !":"
& Bộ tính toán – ALU:
 FG.H;IJ
KALMN;LMNN 0
KA/O0
KPQA/ R LS3
/4/-L
 QR CTU=VWX0Y!
 QLS3M==Z=[\]L^_`F CTa=:X4/M
 Q/4M==Z=[\]L^_=bF :X4/=`=^
TU].HN
 Q/-L CTUVVWXc
KdALMCe=f;IJE0:PCg==hPM;IJ
i=Z=[
 

Bảng 1. Tín hiệu điều khiển ALU
 ;IJ/0/4RLS3/-L;
  !"

 R/-LLS3/4
  !"/0
  !";
3 !"0:
31/10
3/0
;0/!/0/1/
H000!/00100
H0!/0
j0:!/0:
:&: :;0:
77OOk,$IO@NOOdlk;mJ
3 !"
/2'!/!!"n;"1/
/2'!/";"10
2'!!"!""
/ 2'!/LS3"n;!"
77Od,l;mk,
//-L6"
77R
3+ !":
 2'!!:!"!""""
 2'!!:"&"'"(")"
 2'!!:"*"+"!""
 2'!!&:"""&"'"
 2'!!':&"(")"*"+"
 2'!!(:'"!""""
 2'!!):("&"'"(")"
 2'!!*:)"*"+"!""
 2'!+:*":":":":!"

 2'!!:+":)":(":'":&"
 2'!!R:*":+"
77/4
3 !"4
/2'!/4!"n;"/
/2'!/&4";"0
2'!4"4!"4"
/ 2'!/'/44"n;!"

 y

' Bộ nhớ dữ liệu – Data Memory:
- d=oVWXp/0\;IJMCg/=qALM
- dV`=/PCBr[/[=I@=s./CTU==h
CBr[/
- dV`=/P=r[LM0\=^[=H@=s.@CTUt
==h=r[LM

#//.////3//3/0./
 !"/3//
3/0./
 !"///
) !"//! !"
 !"
 L

012!!!
 01!///!"!"
 01///""
 01///""

 01///""
 01&///&"&"
 01'///'"'"
 01(///("("
 01)///)")"
 01*///*"*"
 01+///+"+"
 01!///!"!"
 01///""
 01///""
 01///""
 01&///&"&"
 01'///'"'"
 01(///("("
 01)///)")"
 01*///*"*"
 01+///+"+"
 01!///!"!"
 01///""
 01///""
 01///""
 01&///&"&"
 01'///'"'"
 01(///("("
 01)///)")"
 01*///*"*"
 01+///+"+"
 01!///!"!"
 01///""
/3/45

13/0
0
///"63// &"
///K"63// ("
///K"63//' *"
///K"63//) !"

/3/45////"///K"///K"
///K"
0
6u///"///K"///K"///K"v

-/
0
8309//:9//


( Khối điều khiển trung tâm – Control Unit:
- mG/Pw=[Ce=f
K#  =B=/==CD==$
#6! M=/==CD=[=G
#6 M=/==CD=[=G
Kx ==h=Z=[[==X4xJ.
KN/= ==h=Z=[[==X4Nd,
K./ ==hCB]0\=^r[
K.@==h=r[LM#//.4
K;IJH =BALM=y=0\;IJ
;IJH6! dALMMPgp/=/==E[=G
;IJH6 dALMMP0z\F={z\=b
 


K@  ==h=r[LM=/==CD=
K. =BPg=p/$MVWXp/0\;IJ={r
[]#//.4
.6! CT/LeVWXp/0\;IJ
.6 CT/Ler[]#//.4
KH|  .z\F={z\=b
H|6! .z\F
H|6 .z\=b
K;IJ =0V=hP=Z=[M\!C_L^I@LMH@]
!C_L^Nd,[=G!={[=jO
z*O{6 (m1Q)!R*/g@* (@&a* O
@I7
J#;IJH.@./.@N/=
;IJxH|RO
' !"O
x#;IJH.@./.@N/=H|
 !";IJ
x#;IJH.@./.@N/=H|
 !";IJ
 

/3/45O
/:O
(>0!!!!!! 774
0
# 6 >077m=/===//0' "/=
;IJH 6 >0!
.6 >0!
@6 >077===/L/=/===

./ 6 >0!
.@6 >0!
N/= 6 >0!
;IJ 6 >0!
x 6 >0!
H|6 >0:
 
(>0!!! 773/3
0
# 6 >0!77=/===//0! ("/=
;IJH 6 >077=/:/L/0;IJ
.6 >077=//L=/===0=
@6 >077==//L=L/=/===
./ 6 >077==0=
.@6 >0!
N/= 6 >0!
;IJ 6 >0!!
x 6 >0!
H|6 >0!77=:

(>0!! 7733
 0
# 6 >0:77
;IJH 6 >077=/:/L/0;IJ
.6 >0:77=W////L
@6 >0!
./ 6 >0!
.@6 >077===L/0=
N/= 6 >0!
;IJ 6 >0!!

x 6 >0!
H|6 >0!

(>0!!!! 7700/=1W/
 0
# 6 >0:
;IJH 6 >0!
.6 >0:
@6 >0!
./ 6 >0!
.@6 >0!
N/= 6 >077=====0/=
 

;IJ 6 >0!
x 6 >0!
H|6 >0!77:

(>0!!! 77jOjO/
0
# 6 >0!
;IJH 6 >077=R:0/L/;IJ
.6 >0!
@6 >077===L/=/===
./ 6 >0!
.@6 >0!
N/= 6 >0!
;IJ 6 >0
x 6 >0!
H|6 >077R:


(>0!!!!! 77}x
0
# 6 >0:
;IJH 6 >0:
.6 >0:
@6 >0!
./ 6 >0!
.@6 >0!
N/= 6 >0:
;IJ 6 >0::
x 6 >0
H|6 >0:
 
1/ 
0
# 6 >0!
;IJH 6 >0!
.6 >0!
@6 >0!
./ 6 >0!
.@6 >0!
N/= 6 >0!
;IJ 6 >0!
x 6 >0!
H|6 >0!

/

 D


) ALU_Control_Unit :
- | qM6 (m/g j*5)1Q)!R*@M e"#1Q)!R* ()* +,FG
_3" r)*/ @*},} e&5*1R V@( j*5)1Q)!R*@* (@&/@
"# j* @6*
z*O{6 (m/g@MFG@* (@&
@I7
 K

;IJJ;IJ;IJ$

 !";IJ
' !"$
 !";IJ
 !";IJ
3) !";IJ
/;IJ6u;IJ$v
/3/45;IJ
/:;IJ
*>0!!:::::: ;IJ6>0!! 77I@~H@
*>0!:::::: ;IJ6>0! 77Nd,
*>0:::::: ;IJ6>0! 77jO

*>0!!!!!! ;IJ6>0!! 77;##
*>0!!!!! ;IJ6>0! 77HJN
*>0!!!! ;IJ6>0 77HIm

1/ ;IJ6>0!!
/


* JR_Control_Unit:
- | qM6 (m/g j*5)1Q)!R*@M e"#1Q)!R* ()* +,FG
_3" r)*/ @*},} e&5*1R V@( j*5):a@* (@&/@MvM 4/
5*&5*:<{ <O
- m/t/g&h*:),MN (/j*&GIk&5) (@* *NO
@I7
 _

xJ;IJ$x
' !"$77(01-/=
 !";IJ770;IJO==;IJ
x77==/==
x
3) !":
/:6u;IJ$v
7•;IJ6!L/1-6!!!!6€x6
/==/x6!•7
/3/45:
/:
*>0!!!!!! x6>0
1/ x6>0!
/

+ Bộ mở rộng dấu – Extender:
- e*EFG@L3" ,l(#* G**E(3" FH j*5)1Q)!R*
.*b(@O
@I7
,:
 !"
' !"

776! H,:
 !"776 |,:
/3/45
0
1
0
 ("6(>0!
' !"6

 x


/6uu(u'"vvv


! Bộ dịch trái – ShiftLeft2:
- 8m/ j*5)3" C) (6" 1R 4/5*MvM*+*FHDO
@I7
H=••
 !"
 !"
/6u+ !">0!v

 Bộ Multiplexor:
- #,)& M&$@($KaK/u* *1j//@N (r&
- #,)& M&$@($a/u**EFG@ ~/@"#9Ik&5)FQ
N (r&FG/u*&41m/t/g&5* M @1pq/ 4/5*O
@I7
.:776! 6



3//
/2'!//
/2'!//
2'!
2'!//

.::''
& !"77ALM'0

& !"77dA/'0
.:&&"&"&"
.:"""
.:"""
.:"""
.:!!"!"!"

.::H
 !"
H
 !"

.::!!"!"!"H
.::"""H
.::"""H
.::"""H
.::&&"&"&"H
.::''"'"'"H
.::(("("("H
.::))")")"H

.::**"*"*"H
.::++"+"+"H
.::!!"!"!"H
.::"""H
.::"""H
.::"""H
.::&&"&"&"H
.::''"'"'"H
.::(("("("H
.::))")")"H
.::**"*"*"H
.::++"+"+"H
.::!!"!"!"H
 

.::"""H
.::"""H
.::"""H
.::&&"&"&"H
.::''"'"'"H
.::(("("("H
.::))")")"H
.::**"*"*"H
.::++"+"+"H
.::!!"!"!"H
.::"""H

 y
 k=.H
77.HNmHdlI,‚I,J

 .H

 
7••••••••••••••••••••••••••••••••••••
•••••••••••••ƒ„;N;O•••••••••••••
••••••••••••••••••••••••••••••••••••7
77ƒ„;N;O#;„
3 !" 77 /=L//=/==
3 !"& 77& #/==-=
N 77N #/====N/=
x 77x #/====x
x 77x #/====x
N; 77N; #/=N/=
x; 77x; #/=x
x; 77x; #/=x6/#//


77ƒ„;N;OdHmJmOd.,.O‚
3 !"- 77I=/:4
3' !"O$
3& !"
3' !"( 77/(0/

/O6- ("
/6-' "
/6-! ("
/6-' "
/$6-' !"
/(6-' !"


77ƒ„;N;OOdmOIJdm
3#
x
N/=
./
.
.@
;IJH
@
H|
3 !";IJO

77ƒ„;N;O;IJ
3 !";IJ 77L//0;IJ
;IJ
3 !";IJ77ƒW//0;IJ
3|
d/-L
OLS3
/4 77/…/0;IJ

3x 77m===x
3N 77m===Nd,
3 !";IJ77m=//;IJJ

3 !",: 770//(0/

77ƒ„;N;O,lHm,$I,
3 !"/#///#// 77l//=/==
3 !"@#// 77l/=L/=/===

3& !"@ 77m=/===

77ƒ„;N;O#;m;.,.O‚
3 !"./#// 77#://0=
.; 77#/=#//.4
.@#// 77#=L/0=6/#//


77ƒ„;N;OH„$m,
3 !"N=•77dL/0=/Nd,
N=• 77d/0=/Nd,
x=• 77dL/0=/xJ.
x=• 77d/0=/xJ.

7••••••••••••••••••••••••••••••••••••
•••••••••;JmJ.H••••••••••••
••••••••••••••••••••••••••••••••••••7
7•ƒ„Om„;d„l„•7
/



77#/==-===
;0;77&6K&
u+>0!>0!!v
&
7•dHmJmOd.,.O‚NOd„OI,d„•7
-.-.4-

7•.;dOdmOIJdmƒ„O#,Jƒ„,d„d„•7

J#
;IJH
.
@
./
.@
N/=
;IJO
x
H|
O

7•,lHm,$I,NOm„;d„l„•7
.::''.:#@#77=@/=4~
4

$$/#//
/#//
@#//


@
@



7•Hld|,O,jm,d#•7
,:H,:,:(H|
7•;IJƒ„Omd„mO;d„d„•7
/;IJ6/#//

.::.:;IJ;IJ
/#//
,:
;IJH
;IJ;IJJ;IJ
;IJ
;IJ
/4
|
OLS3
d/-L
;IJ

;IJJ;IJ;IJ
;IJO
$

7•#;m;.,.O‚NOd„O#JI,J•7
/.@#//6/#//
/.;6;IJ
#//.#//.4./#//
;IJ
.@#//
.@
./


.::.:@#//@#//
;IJ
./#//

.

7•Nd,OdmOI•7
/N=•6,:
H=••H=•0N=•N=•
;0;0&
N=•
N;

2'!Nd,d||
/2'!/Nd,NN/=d|

.::.:Nd,N
&
N;
N

7•xJ.OdmOI•7
/x=•6u(>0!-' !"v
/x;6u& *"x=•) !"v

H=••H=•}x=•x=•
.::.:xx
N
x;
x

7•xJ.,lHm,OdmOI•7
/x;6/#//
/6x

xJxJ;IJO$x
.::.:xx
x
x;
x

 Mô phỏng:
 Tập lệnh mô phỏng:
m/t
\ sMM+*^
5* },6J
L =@(•9•L9L$LLL LLLLLLLLLLLLLLLLLLLLLLLLLLL
D =@(•9•L9L$LLr LLLLLLLLLLLLLLLLLLLLLLL
 .€•9L$LL\•L^ LLLLLLLLLLLLLLLLLLLLLLLLLLL
 .€•9L$LD\•L^ LLLLLLLLLLLLLLLLLLLLLLLLLL
_ II•9•9• LLLLLLLLLLLLLLLLLLLLLLLLLLL
L *•9•9L$L LLLLLLLLLLLLLLLLLLLLLLLLLLL
D
II•x9•9• LLLLLLLLLLLLLLLLLLLLLLLLL
 .)"•D9•9• LLLLLLLLLLLLLLLLLLLLLLLLLLL
 :L$L LLLLLLLLLLLLLLLLLLLLLLLLLLLLL
_
€•9L$LL\•L^ LLLLLLLLLLLLLLLLLLLLLLLLLLL
DL €•K9L$LL\•L^ LLLLLLLLLLLLLLLLLLLLLLLLLLL
DD €•_9L$LD\•L^ LLLLLLLLLLLLLLLLLLLLLLLLLL
D .& •x9•9• LLLLLLLLLLLLLLLLLLLLLLLL
K :(•L LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL
K_ OOOOOOOOOOOOO
 Dạng sóng mô phỏng:

×