A Low-Cost SOC Debug Platform Based on On ... - Semantic Scholar

11 downloads 208 Views 175KB Size Report
A Low-Cost SOC Debug Platform Based on On-Chip Test Architectures. Kuen.Jong Lee* ..... into a format with original register names to help users understand ...


A Low-Cost SOC Debug Platform Based on On-Chip Test Architectures ª' «'51¬ . ­"'1"'5¬"'#"'.¬¬ ¬-%& ®"&'"!'5ª'5¯':&> 6"$"' ¬¬+7"¯'!%% 6"$"'

 Abstract

8# & '5 &! #75 !"#$" #'5 &! "&"³&'%   ' &! $² $ #:% " $ & >& :> %$ ' !% ' #75 %"&/ 6 # &! '## "":!"# #75%"&//%/'&#'&%  " && %"&/ %%# '  "'# >&/ 7 & "> & && %# ./ ##"&#&>!"6&0!"'/(60, '&  && 7  

  "'#  

 $"%%#  & " #:%# &!"& /"² ' !% &&'5 %7$&!&'5³%':³&'""&/"&&& 8%/'&.'#5'&&"7&>&>!"7' 5'µ#"'#%'"7!5! 8"&>%#&  7> '5 &! &&'5  $ # %:# %$#75'&'"&$&!&&"":!"#   6! '&'"&  &! #:%# #75 %"&/ '# ' ' &" ' 7&! &! >&/ 7 "'# &! 7'#"> $"%%    " &/ /%"' 7&$' & &" (/"&', #"&" "'# !"# &" (/"/'&, #"&"  7"²%'& '&' "& "'> '&'" >  "'# '5 &%%'5 &!5! "'> ³&'>-&%"/&"&''&!%"%$ $  ' &! !"#$" 7"²%'& '&'  '5 &%%'5"&&!%"&/  '#&'&>'&5"&´*#5''&&! %%#%"&/"'#&³&&!#75%#' " '#>/"'' $'!"'"&"#D5' A&/"&' S>&/  . TE& P"&/ (-.6*, &!"& $" 5'"> #:%#  &! "&/"& 5'"&'  &! && %"&/
&/"$&³&7&!' !%&&'5"'# #755'5 %# ' " '5 %"&/  &!7> 5"&>#'5&!&&"#5'&    6!&&!%"%5"'µ#"$.&'  & #7 &! "&   #75 %"&/ 7> &"&'5 " &>%" #75 %# $&! &! %"&/ .&'  #7 &! :" "!&& "'# &! /%''&&!#75%"&/.&'#%&&! '!"'# -.6* "'# .&'  # /&  #755'5 .&'  !$ &! ³%/'&" & '#'5)*+%&&>%'5&!#75%"&/ ''5:''.&' 

While the complexity of System-on-a-Chip (SoC) design keeps growing rapidly, today the need for an efficient approach to catch design errors at silicon stage has become an urgent issue. In this paper we present a platform for silicon debugging that makes use of an existing test architecture and thus can provide many powerful debug features while requiring very low extra overhead. It supports multi-core debugging for general purpose cores in an SOC chip with the capabilities of on-line tracing, hardware breakpoint insertion and cycle-based stepping. An automatic design tool is also developed to cooperate with the debug platform. Together users can easily control debug operations and examine trace results to efficiently identify the root cause of failures in the silicon.

1. Introduction   2'& &# !$# &!"& $!  #5' &/ /"'# &"7  &! &/ &"²' & && "'# #75  '"'5 "''!":7/ "7&&'².#5'    "&!'5 '  '&>  &" & # &/ & /"²&1$'&"7&>"'#7:"7&>&! &"5& ' /"² #755'5 #& "'# &/ '/'5 :'  . #5' "' &! &" #"&" / &! !%  &! %7/  & #&/' ' $!"& &/ '&:" 75 # & 5&  &" #"&" -755'5  :' / #&  /%³ .´ " /7###  ' " . "> $² &5&! & "/%!&"²/!"'/"7&!²/&  #"&"'##&'#'& 75   /% 7"##5'"'&µ"'' & /"& (, & !% #755'5 7> '&&' 7"²%'& '&' "'# '&&' &%%'5  # & '!"' &! 7:"7&>   6! #75 >&/ %%#'<  =:"57'#">"'5&"'# "'"!&&&&"¯-´-#"&#!"#$" /%>#&'"7> 7"#7"²%'&'&'"'# > 7"# &%%'5 '&'"&  " &/ 5'" &"$&!%5"//"7&55'#&'%%#' < = $!! " # ##"&# !"#$" & "!: #75"%"7&>®&$² ' !%(®,7"##75 %"&/ $" %%# ' &/ //'"&' !/ & '& #75 &% "'# &"' #75 #"&"  /%"&# && %# 

2. Overview of Proposed Debug Procedure   ¯'² /& #75 >&/ %%# %:> &!"& /"'>'#/%'5&!'&'"&"&"!%"'# 8& &!  & ³"/' &! & 7> &!/:   >&/ %%& " &/ /%"'  & &" "'# !"# &" #"&"  &>%" #75 %# '  %"&/"'7#:##'&&!&%· „ Virtual level simulation   6! & &%  " :&" : (% ' &"5,



       







 /"&' & 7&"' &! & &" #"&"  #'&# " &! ³%&#%'A,$!!$7#"&!5#' %' & /%" $&! &! 7&"'# / " ''.&% "'#

  6!60'&"!$'')5 &!!"& &!#75%"&/&$"5'">#5'#&"> & &! && %#  &! .3  ' # & %%&'#755'5 '">/#"&'$ /"#&//%''&&!5'"60'&  "²%'& (ª6, '& ¯'& "'# :" &% 5& " " "### 6! ²> /%''&  60 '&"#7#'³&

„ On-line Tracing and Comparison   6! '# &% /'& "'# "%& #"&" "& &! >&/7&! 3%&*"& %#&/ '&:" 6! !"# &" " 5"## " %' B ³%&# %' A "'# &" %' B " &!' /%"#  //"&!   " "7 & #'&> ", $!! &/ '&:" "'# 7, $!!  " &""'%&'"5'"& 7"##"&" /%' !/ "' 7# ' &! &"5 &²% &! #"&" :/ & 7 &"# "'# /%"# ³&/> /"-&&!&!5'"&"'#&!":""7&> &!&&"#"&" &!'/&"&''&!'/7 >&!"&"'7/%#"'#/%"#

  

    

  

  

 

Q

 _ j Y

#$%%*##>?@# #$%%    

 _` 

 _`    

„ Hardware Breakpoint Insertion & Single Stepping

   

!

  & &! &"5   "' '& 7"²%'& 7"# ' &! ' ' &" '/"&' ¸!' " 7"²%'&  !&   &"² " ¯- '"%!& 7> #/%'5 &! #"&"  '&&  #'&# " %' C 3 >&/ "' " /%"&!#"&"$&!&!&&"#"&"#&>"&&! &%  ¹& %:# &! #"&" &  "'# & &!/ #&/' $!&! %7/ ³& ¸!' #/%'5 & &!%' &!&"#"&""/&"'>&# "'# &! '/" %"&' "' 7 /# $!! '"7&!'5&%%'5"%"7&>6!"'" &% " '³& 7"²%'& & ²% &! %"& &!"&  '&  '&&">$&!&!"&"'%/> 7> >/%"' "'# %' %'& & &! ' " :> '&/"''  ®& &!"& &! %%# #75 %#  ¹& " &>%" ' 3' "' "  &! ' ' &"'5  &! 7"²%'& '&'  &! '5 &% #75 "%"7&> %""&>#%'#'5'&!8/'& 

   

#$%%*##>?@# #$%%    

 YZ\ 

 YZ\ 

Q    

Q    

^   

   

^   





 

   

)5 -75%"&/"!&&

3. Debug Platform Hardware 3.1 Overall Debug Platform Architecture )5 !$&!"!&&&!#75%"&/ ²/"²#'$!&"/%''&&!&"5&. '&> "! ¯-  $"%%# 7> "'  

 $"%%  : &" %'¯-´(7'#">$"%%"'#"', / &! 60 3¯6 %& 6 & ¯-´ &"&  &! .!&  ¯'& & &" %' 7"² & 7'#">$"%%"'#"'!"'&!¯-´:"&! 60®%& 3.2.2 Suspend & Restore Mechanism   ¸ !": & 5""'& &! >'!'µ"&' "/'5 % "'# ¯-´ $!' %'#'5 "'# &'5 &!'/"%"&'¸"#%&²5"&'5&!'8& '& &! ³&'  % $!! "$  &





 %'#&%"&"'>5:'²>

: /"&' & & "&"& &! /%"' $&!&"#%' -75 *"&&' 6"'/"&' » /"& "'# #%"&&''&"5"/

Master Addres s Out

AMBA AHB Interface

BKT Control Unit

BKT_cnt_e n

Inc De c

Control Unit

Decoder

BKT_cnt

6! 7"²%'& #&&  "&:"&# $!' &! '/" %"&'&"&-.6*&"²:&!#75% $!': " 7"²%'&  !& ' &! #%"> $'#$  $ ""'5&"%'$"%%"'#"' '& " /"& $&! 5'" 5& '"/ & !%  '#&"'#³&'&7&&'!"'#-.6* " %%& '  "'#  !% /%"' $&! &! ³%&#%'

BKT Control Signals

Match

BKT_cycle

BKT Control

Core_num

TMS Generator

TMS setup TMS setup

Mode Setup TMS setup Core Enable

Shift control

Word Count

Inc

Master Data In/Out

Read Address Write Address

Slave Data In/Out

Slave Address In

Memory Access Unit

TMS Sequences

Core Enables

Hold Control

From CUDs

Scan Selection

 Z

Shift Buffer

Token_init Scan_sel

% #

{#

% #

 Z

Shift Buffer Unit

TAM OUT



 YZ\ 

Shift Buffer

Scan Control

. . . .

Shift Buffer

 _` 

TAM IN

#



 Z 

{



 Z

|

Shift Buffer Shift Buffer

{



}~ To CUDs

Shift Buffer

)5¶#'&¯'&



)5 6&0!"'/(60,'&

^ ``   

)&!*&7#755# $"&!"' !"' "'#  3 $&! #'& %'# º & /!"'/ 6! ¶# '& ¯'& (¶¯, !$' ' )5   # & !# &! #"&" ' "'  6! Debug_hold 5'" '& " "'   &! ¯- ¸!'"&55'5'#&'/"&! "'!#&! 5'" &"& '& &! Scan_en 5'"  "&:"&#¸ 7& " %"&! / "' !"' & " &  !& 7'60'&"!$'')5&"!: #"&" "%&'5 "'# &'5 /&"'> 6! !& 7&/%">&&!&"#"&""'#"%&&& &! #"&" 7 $!! "' &!' 7 &"'# & &! /7### //>  & &! #75 ' ¸!' &! '5&!"'!"'"'&8" /7/& 7 '&# "& &! !& 7 ) ³"/%  ' % %  '&#  "' !"'  & >'&!µ &! &'5%"&'"'!"' "'# ')5 6#&!:!"#!$//'#&!"&""' !"'!#!":8""/&8"'5&! )5&"&&!"%&"'#&/!"'/  36!shift"'#update registers 

 $"%% " # & & &! :"   %/"> '%&(*,¸!'&!'/"%"&'%'##  /##$"%%!&&&!&"#"&":"&!!& %"&!"'#!#:"*'update registers&&! #75 ' '!  " Mode 5'"  "%%# & &:"*6! &!&"5&>&/"#> '/"%"&'"&&!'³&'5²#5

   

\ 

  ^ ``

 Z

 \ #

  \  

  \  

 \ 

  \  



)52&/!"'/"'  

!

  Z

‚# 

%

!€

%



\  Y

#

%% #%



!€

!€

%

!€



{

€#

{

{  {…

#

| !` Y  Z 

#

_ ƒ` Y„ \ 

 

Z  Z

_ ƒYY„ !`

 

)52&/!"'/*  Test Platform Integration

Debug Hardware Generation

 Y }   

4. Debug Platform Automation Tool

 ` 

6! ³&' %#  &! '!"'# -.6*  &"&#')5)"&&!'!"'#-.6* "&#"$·

-75 ¶"#$" +'"&' » '# &! #75 7">"'#'&5"&&'&&!#75%"&/ -75.&$"'&5"&'»/7'&!&% "'# ´ "%%"&' %5"/ '& &! #75 %5"/  ³%&#2%'³&"&'»³&"&&!:&"

``    Y 

Debug Software Integration

 ƒQ^„  Y ƒ^„

 Y ƒQ^„

 Y Y ƒ^„  `

Expected Response Extraction

|†`  ` 

Debug Pattern Transformation

   



)5'!"'#-.6*





 ' ' &"  7"²%'& '&' "'# > 7"# &%%'5 & "&! 75 ' &! ' 0&%  #755'5  " %%&# 0:  "' '!"'# -.6* $" #:%# & !% "> & &! #75 %#>'5³&'5&&/%''& &!"" :!"#&!³&"--5/&# 

5. Multi-Core Debugging   ##" /& #755'5'##& #'&>'& 75'#75%"&/ %%&'5 /& #755'5#'"$!$'' )5   /&%  "' 7 ''&# & #'& !&7"'#&!"'7"#/&"'>' %"&/.'&!'/"&''&!$"%%"' "7"''#&/&"'> &!'& 75 "' 7 #'&# 7> 7:'5 &!  "'# #&'"&'  &! 5'" &!5! &! '&  '&''&®&&!"&&!'8/& #755'5 "%"7&>  "7 7" &! #75 %"&/  /%/'&#'&%"&&%"&/&!"&%:#"&& 7  " &  && 7 "'# / 8# '& &> ¸&!& &! ³&'5 && /%''&  /& #755'5$#7:>#&&/%/'& "'# /5!& 8 "5 "" :!"# '  '& /%/'&"&'&!&'&5'""'7# & " &! &   "& ' &/ "'# &! &  %7&#75&!&/& "&'&/

LogicTile

  

    

  

  

Logic Tile Q

 _ j Y

#$%%*##>?@# #$%%    

#$%%*##>?@# #$%%    

 YZ\  Q    

 YZ\  Q    

 _`    

   

^   

   



   

^    

 

’j 

“ ‰ |

?|’

#$>#

%$ `   `   

 Y` 

#?%??%

‘>%

ˆ 

Q

  

 

Reference < =

 ½/'  ¾)'&'" -75 6!'8  /7###.>&/ ¿ -5' º 6&  /%&  (,    

 < =  ½/' "'# . ª/" +  ¾-5'  -75· "!'5 -5'  ' -5&" !% ¿  -5' º 6&/%&  (, 

 &/ 7 61  !$ &! "" :!"#  &! %%##75%"&/'/%"'$&!&!5'" && %"&/  &! "##&'" #75 "" :!"#   ¼/  $!! &"'"& & "7& 

 5"&  &! 

 š/ &!'5> ("! 5"& '&  "7& ¼/ "",6!'"#""&!60'&"/& ³# ' &! $#  &! "" :!"#  &! 60 '&  '#%'#'&  &! '/7  ¯-´ 6! '"# ""  /## 

 $"%%  "7&  5"& % $"%%#  3 6! & !$ &!"& 7> '5 && /%''& & %%& #75 "& &! "":!"#"'7"5>##  ƒ‡„

  

VersaTile PB926 j‚

 } 

 

`

ˆ 

!

6. Experimental Results

‚ Y ‚‰ \ ` ƒ    Y ?Š ` !„

 

\ ‹  Y%@#‡`  \  Y … Œ      

  ¸ > /%/'&# &! #75 %"&/ ' &! 20 ½"& * « . #:%/'& >&/ " !$' ' )5  & !" " )*+ !% & ! &! %%# #75 %"&/ ¸ /%/'&# " ¯':" >'!' 2: "'# 6"'/&& (¯26, '&" ' &! )*+ & //'"& $&! &! * !& :" &! +'" *% '%& 3&%& (+*3, '&" 6!*!&'-.6*&!"'#&!#75$

7. Conclusions   .' #75  " /%"&#  &/ '/'5  7& ':&"7&"²&#">´.#5''&!%"%$ %'& " & &: #75 &' &!"& '#





Suggest Documents