Regfile for DE1
-
Upload
le-vuong-thai -
Category
Documents
-
view
240 -
download
0
Transcript of Regfile for DE1
-
8/20/2019 Regfile for DE1
1/16
Lab #5 Design of a Register File and Datapath
Objectives:
" #$ %&'( '()'%*# '(#$ #*+ '(#+,(&- -$%'. /$, 0& 1$2+1+(# 3+#4++( ,+%')#+,) '( & .$156#+,
" #$ '(#,$06.+ #*+ .$(.+5# $/ & .$(#,$- 4$,0 /$, '15-+1+(#'(% &( +-+1+(#&,7 )+# $/ 1'.,$"$5+,'$()8
" #$ %&'( +95+,'+(.+ 4'#* #*+ 6)+ $/ :;
-
8/20/2019 Regfile for DE1
2/16
M ,+%')#+, /'-+ .$15,')+) & 0+.$0+, 4*'.* .*$$)+) & 0+)#'('$( ,+%')#+, &(0 & 16-#'5-+9+, #$
0',+.# #*+ $6#56#) $/ &(7 ,+%')#+, #*,$6%* #$ #*+ 0& $6#56# -'(+)8 ?*+ 0+.$0+, )+-+.# -'(+) 1&7
#*+( 3+ 2'+4+0 &) #*+ 0+)#'('$( K&00,+))K &(0 #*+ 16-#'5-+9+, )+-+.# -'(+) &) #*+ )$6,.+K&00,+))K8
-
8/20/2019 Regfile for DE1
3/16
,-./012/(34
?*') 0&5* .',.6'# #$ 3+ 36'-# ,+G6',+) )+2+,&- .$15$(+(#) #* 4+ 4'-- 0+)'%( &(0 '15-+1+(#
&(0 #+)# '(0'2'06&--78 ?$ /&.'-'#+ )6..+))/6- '15-+1+(#'$(> 2+,'/'.'$( &(0 0$.61+(#'$( $/
.$15-+9 0+)'%()> $(+ )*$6-0 5,$.++0 '( &( !"#$%&%"'()* &,-.)($ /&)*'$( 4*+,+37 +&.*
.$15$(+(# $/ & .',.6'# ') 36'-# &(0 2+,'/'+0 '(0+5+(0+(#-78 ?*+ .$15$(+(#) &,+ #*+( 56#
#$%+#*+, &(0 1&7 /$,1 &($#*+,> -&,%+, .$15$(+(# #*+ (+9# -+2+- $/ #*+ 0+)'%( *'+,&,.*78?*+)+ .$13'(+0 .$15$(+(#) 1&7 #*+( 3+ .$13'(+0 #$ /,$1 +2+( -&,%+, .$15$(+(#) &(0 )$ $(8
?*') .$(#'(6+) #$ #*+ #$5 -+2+- $/ #*+ 0+)'%(8 ?*') 5,&.#'.+ &55-'+) #$ #*+ 0+)'%( $/ *&,04&,+>
)$/#4&,+ $, &(7 $#*+, )7)#+1 /$, #* 1#+,P Q6, /'(&- %$&- *+,+ ') #$ 0+)'%( &(0 '15-+1+(# #*+
-$%'. /$, & *&,04&,+ 0&5* #* .$(#&'() & )'15-+ &,'#*1+#'. &(0 -$%'. 6('# DM=NE #* .&(5+,/$,1 -$4 -+2+- 5,$.+))'(%8
R,$.++0 1+#*$0'.&--7 &(0 )-$4-7 &(0 3+ 1'(0/6- $/ 3'# $,0+,'(% /$, #*+ J"3'# 36) .$((+.#'$()8
N)+ (+-7 &,,&(%+0> .$-$6,".$0+0 4','(% #$ &'0 '( 0+36%%'(% &(0 1&)H'(% #&5+ #$ &//'9
#+15$,&,7 -&3+-) /$, #*+ #$%%-+ )4'#.*+) $( #*+ 3,+&03$&,0)8 L+ )#&,# 37 0+)'%('(% #*+ ,+%')#+,/'-+8
Step Decoder
?*+ ,+%')#+, /'-+ ,+G6',+) & C"-'(+ #$ J"-'(+ 0+.$0+, 4'#* ;I"#,6+ $6#56#) &(0 $(+ ;I"#,6+ +(&3-+
'(56# &) )*$4( '( #*+ .',.6'# $/ Step 4 8 ?*') ') )'1'-&, #$ #*+ 0+.$0+, 7$6 0+)'%(+0 '( &5,+2'$6) -&38 I15-+1+(# #*') .$15$(+(# 6)'(% #*+ %,&5*'. 0+)'%( +0'#$, &(0 #+)# '# '( #*+
FMSTUUU 0+2'.+8 V+(+,+ & )713$- /$, #*') 0+.$0+, 4*'.* 7$6 4'-- 6)+ -+,8 W++ &55+(0'9 X8Y>
5&%+ ZY[8
Step 2 Quad 4: MUX
?*+ ,+%')#+, /'-+ &-)$ ,+G6',+) & \6&0 JO[ 16-#'5-+9+,8 M \6&0 JO[ FNS *&) /$6, J"3'# 0&
-
8/20/2019 Regfile for DE1
4/16
'(56#)> & J"3'# 0& $6#56# &(0 #4$ )+-+.# -'(+) &) )*$4( 3+-$48 W#607 #*+ :;
-
8/20/2019 Regfile for DE1
5/16
Step 3 Registers
?*+ /$6, ,+%')#+,) !"# !%# !& '() !* '( #*+ 0'&%,&1 3+-$4 &,+ #$ 3+ '15-+1+(#+0 6)'(% #*+:; 58 JC` $/ #*+ #+9#3$$HE8 a&.* ,+%')#+,.$15,')+) J 5$)'#'2+ +0%+"#,'%%+,+0 < /-'5/-$5)8 a&.* ,+%')#+, *&) & J"3'# '(56# 0& &(0 & J"3'#
$6#56# 0&8 ?*+ .-$.H '(56# #$ &-- /-'5/-$5) '( #*+ ,+%')#+, ') 0+/'(+0 &) 567 8 ]$15'-+ #*') .$0+
&(0 1&H+ & )713$- /$, #*+ ,+%')#+,8
Step 4 Register File
-
8/20/2019 Regfile for DE1
6/16
b$4 4+ 4'-- 0+)'%( #*+ ,+%')#+, /'-+ 6)'(% #*+ !"#$%&' )*+&!, *)&-." 37 .$((+.#'(% #*+
16-#'5-+9+,> 0+.$0+, &(0 /$6, ,+%')#+,) &) )*$4( 3+-$48 ]$15'-+ &(0 #+)# #*+ ,+%')#+, /'-+ .',.6'#
'( #*+ FMSTUUU .*'5 #$ +()6,+ #* &-- /$6, ,+%')#+,) .&( 3+ -$&0+0 6)'(% #$%%-+ )4'#.*+) $( #*+
Data In -'(+)> &(0 ,+&0 6)'(% =a
-
8/20/2019 Regfile for DE1
7/16
?*+ ,+%')#+, /'-+ /$,1) #*+ 3&)') $/ & K0&5*K 4*'.* ') & /6(0&1+(#&- 36'-0'(% 3-$.H $/ &
.$156#+,8 W++ #*+ 0'&%,&1 3+-$48 WUE &(0 0+)#'('$( D
+9+.6#'$( ') &.*'+2+0 37 &55-7'(% & -$&0 +(&3-+ D=aE '(56# #$ #*+ ,+%')#+, /'-+8 ?*') =a '(56# 1&7
3+ .$()'0+,+0 &) #*+ .-$.H #$ #*+ +(#',+ )7)#+18 g$6 .&( 2'+4 #*+ ,+)6-#) $/ +&.* $5+,'$( 6)'(%
/$6, =a
-
8/20/2019 Regfile for DE1
8/16
8922'0: ;< 0/=1+3/0 30'(+% >"
)'3' 1(.93
!/=1+3/0
@0'(+
-
8/20/2019 Regfile for DE1
9/16
s 2 s 1 s 0 F0 0 0 0 0 0 0 clear0 0 1 B - A subtract
0 1 0 A - B subtract
0 1 1 A + B add1 0 0 A XOR B exclusive OR1 0 1 A OR B logical OR1 1 0 A AND B logical AND1 1 1 1 1 1 1 preset
Step 7 Modify the Register File
?$ 3+ &3-+ #$ '(.-60+ &( M=N '( $6, 0&5*> 4+ 16)# /',)# 1$0'/7 $6, ,+%')#+, /'-+ 0+)'%( )$ #*
'# *&) #*+ .&5&3'-'#7 #$ )+-+.# -/. ,+%')#+,) &) $6#56#) DW$6,.+ h+%')#+, M &(0 W$6,.+ h+%')#+, XE8?*') 4'-- &--$4 #*+ .$(#+(#) $/ &(7 #4$ ,+%')#+,) #$ 3+ &55-'+0 #$ #*+ A &(0 B '(56#) $/ #*+ M=N8?*') ') +&)'-7 &.*'+2+0 37 &00'(% & )+.$(0 \6&0 JO[ FNS #$ #*+ 0+)'%( $/ #*+ ,+%')#+, /'-+ &)
)*$4( 3+-$4O
-
8/20/2019 Regfile for DE1
10/16
?*+ '(56#) #$ #*') ,+%')#+, /'-+ &,+ ($4O
destination register select DC 3'#)E> source register A select DC 3'#)E> source register Bselect DC 3'#)E &(0 load enable D[ 3'#E8
?*+ $6#56#) &,+ Data Out A &(0 Data Out B D+&.* J 3'#)E &) )*$4(8
]$15'-+ #*') 0+)'%( &(0 .,++ & )713$- /$, #*') ,+%')#+, /'-+8
-
8/20/2019 Regfile for DE1
11/16
Step 8 Datapath with ALU
b$4> #*+ 0&5* 0+)'%( .&( 3+ +9#+(0+0 37 '(.-60'(% #*+ M=N /,$1
Step 6
&(0 #*+ ,+%')#+,
/'-+ /,$1 Step 7 &) )*$4( '( #*+ (+9# /'%6,+O
N)'(% #*+ %,&5*'. 0+)'%( +0'#$,> 36'-0 #*') .',.6'# 6)'(% #*+ 5,+2'$6) .$15$(+(#) &(0 .$15'-+>
'15-+1+(# &(0 #+)#8 ?*') 0&5* *&) 01'% 1$,+ .&5&3'-'#7 #*&( $6, /',)# 0+)'%( '( Step 5 O
D&E &) 3+/$,+> &(7 ,+%')#+, .&( 3+ -$&0+0 4'#* +9#+,(&- 0& /,$1 )4'#.*+)O
!) )'3' DJ 3'#)E D4*+,+ 0 c U> [>C $, BE
D3E &(7 ,+%')#+, .&( 3+ -$&0+0 4'#* #*+ ,+)6-# $/ &(7 $/ #*+ +'%*# /6(.#'$() )655$,#+0 37 $6,
M=N 4*$)+ '(56# ') #*+ 0& .$(#&'(+0 '( &(7 #4$ $/ #*+ ,+%')#+,)8 A$, +9&15-+O
-
8/20/2019 Regfile for DE1
12/16
!) ! B C !D D4*+,+ 0> M> X c U> [> C $, BE
4$6-0 &--$4 6) #$ -$&0 &(7 ,+%')#+, 4'#* #*+ )61 $/ &(7 #4$ ,+%')#+,)8
-
8/20/2019 Regfile for DE1
13/16
?*+ '(56#) d D1, D0, SA1, SA0, SB1, SB0, s2, s1, s0, DS e .$15,')+ & [U"3'# .$(#,$- 4$,04*'.* )5+.'/'+) & 0+)#'('$( ,+%')#+, DD1, D0E > #*+ #4$ )$6,.+ ,+%')#+,) DSA1, SA0E &(0 DSB1,SB0E> &(0 #*+ M=N /6(.#'$( Ds2, s1, s0E #* $5+,+) $( #*+ )$6,.+ ,+%')#+,)8 ?*+ DS '(56#
&--$4) -$&0'(% $/ #*+ ,+%')#+,) 4'#* +9#+,(&- 0& 2'& #*+ \6&0 CO[ FNS8 A$, DScU> +9#+,(&-0& /,$1 )4'#.*+) ') -$&0+0 '(#$ #*+ 0+)#'('$( ,+%')#+,f /$, DSc[> 0& ') #,&()/+,,+0 /,$1 #*+
M=N $6#56# #$ #*+ 0+)#'('$( ,+%')#+,8 M) '(Step 5
> $(.+ #*+ .$(#,$- 4$,0 &(0 0& '(56# D'/
&55,$5,'+E &,+ )+# $( #*+ -+2+- )4'#.*+)> +9+.6#'$( ') &.*'+2+0 37 &55-7'(% & -$&0 +(&3-+ DLEE'(56# D56-)+ -$"*'"-$E #$ #*+ ,+%')#+, /'-+8 ?*') =a '(56# 1&7 3+ .$()'0+,+0 &) #*+ .-$.H #$ #*+
+(#',+ )7)#+18 g$6 .&( 2'+4 #*+ ,+)6-#) $/ +&.* $5+,'$( 6)'(% /$6, =a
-
8/20/2019 Regfile for DE1
14/16
If you want to experiment further, try changing the ALU functions. For example, replace the "preset"function with an "increment" (A+1) operation. Add status bits for Zero (Z) and Sign (S) as outputs
from the ALU. Changes can be done very quickly in our modular design !
-
8/20/2019 Regfile for DE1
15/16
The VHDL source code for Quad 4:1 MUX
LIBRARY ieee ;
USE ieee.std_logic_1164.all ;
ENTITY quad4to1mux IS
PORT ( a, b, c, d : IN STD_LOGIC_VECTOR(3 DOWNTO 0) ;
s : IN STD_LOGIC_VECTOR(1 DOWNTO 0) ;
f : OUT STD_LOGIC_VECTOR(3 DOWNTO 0) );
END quad4to1mux ;
ARCHITECTURE Behavior OF quad4to1mux IS
BEGIN
WITH s SELECT
f
-
8/20/2019 Regfile for DE1
16/16
The VHDL source code for Quad 2:1 MUX
LIBRARY ieee ;
USE ieee.std_logic_1164.all ;
ENTITY quad2to1mux IS
PORT ( a, b : IN STD_LOGIC_VECTOR(3 DOWNTO 0) ;s : IN STD_LOGIC ;
f : OUT STD_LOGIC_VECTOR(3 DOWNTO 0) );
END quad2to1mux ;
ARCHITECTURE Behavior OF quad2to1mux IS
BEGIN
f
F
F
F
F
F
F
F
F