Vous êtes sur la page 1sur 22

1 BUSpec specification of AMBA-AHB protocol

AHB is a new generation of AMBA bus which is intended to address the requirements of high-performance
synthesizable designs. It is a high-performance bus that supports multiple bus masters and provide highbandwidth operation.
AMBA AHB implements the features required for high-performance, high clock frequency systems
including:

burst transfers
split transactions
singla cycle bus-handover
single clock edge operation
In BUSpec we have successfully modeled this protocol. We have not considered all aspects of AHB
protocol such as fixed length incrementing transfers, locked transfers. However modeling of AHB bus
protocol in BUSpec clearly reveals the power of this language. The BUSpec specification of AHB bus
protocol is given as follows (for clarity some comments are provided in the specification).


 

        



  
       
 
   
 
 !

 !
"   # $%  # %    # $%  # $%
 # %   # $%    # &
'
( &
( "  &
'
 !

 !
"   # %  # $%  # %  # %
  # $%    # $%    # &
'
)( "  &
( &
'
) 
 
* !
 
'
* !
 
'
* !
 
'
) 
)   
 +       
  
+,
 
-+, !

 !
1

"   # %  # %  # %    # $%
  # $%    # $&
'
)( &
)( "  &
.)/ 0&
'
+, !

 !
"   # %  # %  # %    # %
  # $%    # &
'
)( &
)( "  &
.)/ 0&
'
) 
 
-+,*+, !
-+,
+,
'
-+,*-+, !
-+,
-+,
'
) 
)   
 )
  -)     12
  
-)
 
3 !

 !
 # $%  # %    # %   # $%
   # %  # % "   # &
'
)( &
)( "  &
.)/ 0&
'
45 !

 !
 # $%  # %    # $%   # $%
   # %  # % "  #&
'
)( &
)( "  &
.)/ 0&
'
) 
 
3*3
3
'
45*3
45
'

!
3
!
3

45*45 !
45 45
'
) 
)   
 )
  6, 7
   
  
76,
 
4 !

 !
"   # %  # %  # % 8

  # %   # $%  # %   
"  # %    # &
'
9
/  0&
)( &
)( "  &
.)/ 0&
'
5 !

 !
"   # %  # %  # % 8

  # %   # $%  # %   
"  # %    # &
'
9
/ 8 0%
9
/  0&
)( &
)( "  &
.)/ 0&
'
5 !

 !
"   # %  # %  # %   #
8
 # %  # %    # %
"  # %    # $&
'
9
/  0&
)( &
)( "  &
.)/ 0&
'
4: !

 !
"   # %  # %  # %   #
8
 # %  # %    # %
"  # %    # $&
'
9
/  0%
9
/ 8 0&
)( &
)( "  &
.)/ 0&
'
5$ !

 !
"   # %  # %  # %   #
8
 # %  # %    # %
"  # %    # $&
3

# %
# %

# %
# %

$%

$%

$%

'
9
/  0%
)/ 8 %  / 8 00%
)/  %  /  00&
)( &
)( "  &
.)/ 0&

'
5 !

 !
"   # %  # %  # %   #
8
 # %  # %    # %
"  # %    # &
'
9
/  0%
9
/  0&
)( &
)( "  &
.)/ 0&
'
; !

 !
"   # %  # %  # %   #
8
 # %  # 4%    # %
"  # %    # &
'
9
/  0%
)/  %  /  0<
= 0%
9
/ 8 0&
)( &
)( "  &
.)/ 0&
'
> !

 !
"   # %  # %  # %
  # $% 8
 # %  # 4%   
"  # %    # $&
'
)/  %  /  0<
= 0%
9
/ 8 0&
)( &
)( "  &
.)/ 0&
'
53 !

 !
"   # %  # %  # %
  # $% 8
 # %  # 4%   
"  # %    # $&
'
)/ 8 %  / 8 00%
)/  %  /  00&
)( &
)( "  &
.)/ 0&
'
3 !

 !
"   # %  # %   # $% 
4

$%

$%

# %

# %

# %

8
 # %  # %    # %
"  # %    # &

'
9
/  0%
)/  %  /  0<
= 0%
9
/ 8 0&
)( &
)( "  &
.)/ 0&

'
5? !

 !
"   # %  # %   # $% 
8
 # %  # %    # %
"  # %    # &
'
9
/  0%
9
/ 8 0%
)/ 8 %  / 8 00%
)/  %  /  00&
)( &
)( "  &
.)/ 0&
'
? !

 !
"   # %  # %   # $%  #
 # % 8
 # %    # %
"  # %    # $&
'
9
/  0%
9
/ 8 0&
)( &
)( "  &
.)/ 0&
'
? !

 !
"   # $%  # %  # %   #
   # % 8
 # %  # 4%
"  # %    # &
'
9
/  0%
)/  %  /  0<
= 0%
9
/ 8 0&
)( &
( "  &
.)/ 0&
'
: !

 !
"   # $%  # %   # $%  #
8
 # %  # 4%    # %
"  # %    # $&
'
9
/  0%
9
/ 8 0&
)( &
( "  &
.)/ 0&
5

# %

%

$%

%

'
) 
 
5*5 !
5
5
'
5*4 !
5
4
'
4*5 !
4
5
'
4*; !
4
;
'
4*> !
4
>
'
4*3 !
4
3
'
4*? !
4
?
'
4*? !
4
?
'
4*: !
4
:
'
;*; !
;
;
'
;*> !
;
>
'
;*3 !
;
3
'
;*? !
;
?
'
;*? !
;
?
'
;*: !
;
:
'
>*; !
> ;
'
>*53 !
>
53
'
53*53 !
53
53
'
>*? !
>
?
6

'
53*? !
53
?
'
3*5? !
3
5?
'
?*5? !
?
5?
'
5?*5? !
5?
5?
'
3*; !
3
;
'
3*? !
3
?
'
:*? !
:
?
'
:*: !
:
:
'
?*3 !
?
3
'
?*? !
?
?
'
4:*5$ !
4:
5$
'
5$*5$ !
5$
5$
'
5$*5 !
5$
5
'
4:*5 !
4:
5
'
) 
)   
 )
  6, ,    
   ,6,
 
: !

 !
"   # %  # %  # %
8
 # $%   # $%  # %
   # % "  # %    # &
'
)( &
)( "  &
.)/ 0&
'
$ !
7


 !
"   # %  # %  # %   # $%
8
 # $%  # %    # %
"  # %    # $&
'
)( &
)( "  &
.)/ 0&

'
5> !

 !
"   # %  # %  # %
  # $% 8
 # $%  # %
   # % "  # %    # $&
'
9
/  0&
)( &
)( "  &
.)/ 0&
'
54 !

 !
"   # %  # %  # %   # $%
8
 # $%  # %    # %
"  # %    # $&
'
9
/ 8 0&
)( &
)( "  &
.)/ 0&
'
55 !

 !
"   # %  # %  # %   # $%
8
 # $%  # %    # %
"  # %    # $&
'
)/ 8 %  / 8 00%
)/  %  /  00&
)( &
)( "  &
.)/ 0&
'
5; !

 !
"   # %  # %  # %   # $%
8
 # $%  # %    # %
"  # %    # $&
'
9
/ 8 0&
)( &
)( "  &
.)/ 0&
'
 !

 !
"   # %  # %  # %   # $%
8
 # $%   # %  # 4%
   # % "  # %    # &
'
8

9
/  0%
)/  %  /  0 <
= 0&
)( &
)( "  &
.)/ 0&

'
 !

 !
"   # %  # %  # %   # $%
8
 # $%  # 4%    # % "  # %
   # $&
'
)/  %  /  0 <
= 0&
)( &
)( "  &
.)/ 0&
'
4 !

 !
"   # %  # %   # $%  # %
8
 # $%  # %   # %    # %
"  # %    # &
'
)( &
)( "  &
.)/ 0&
'
5 !

 !
"   # %  # %   # $%  # %
 # % 8
 # $%    # % "  # %
   # $&
'
)( &
)( "  &
.)/ 0&
'
; !

 !
"   # $%  # %  # %   # $%
   # % 8
 # $%  # 4%
"  # %    # &
'
9
/  0&
)( &
( "  &
.)/ 0&
'
> !

 !
"   # $%  # %   # $%  # %
8
 # $%  # 4%    # % "  # %
   # $&
'
)/  %  /  00&
)( &
( "  &
.)/ 0&
'
) 
9

 
:*: !
:
:
'
:*$ !
: $
'
$* !
$ 
'
$* !
$ 
'
$*4 !
$ 4
'
$*5 !
$ 5
'
$*; !
$ ;
'
$*> !
$ >
'
* !
 
'
* !
 
'
*> !
 >
'
*; !
 ;
'
*5 !
 5
'
*> !
 >
'
* !
 
'
*> !
 >
'
*; !
 ;
'
4*4 !
4 4
'
4* !
4 
'
4*; !
10

4 ;
'
5*5 !
5 5
'
5*4 !
5 4
'
>*> !
> >
'
>*; !
> ;
'
54*55 !
54
55
'
55*55 !
55
55
'
55*5; !
55
5;
'
54*5; !
54 5;
'
) 
)   
 )
  +) 7
   
  
7+)
 
$ !

 !
"   # %  # %   # $%  #
8
 # %    # %  # %
"  # $%    # &
'
9
/  0&
)( &
)( "  &
.)/ 0&
'
 !

 !
"   # %  # %  # %   #
 # % "  # $% 8
 # %   
'
9
/  0&
)( &
)( "  &
.)/ 0&
'
 !

 !
"   # $%  # %   # $%  #
8
 # %  # % "  # $%
   # &
'
)/  %  /  0 <
= 0%
11

%

$%
# $&

%

9
/ 8 0%
9
/  0&
)( &
( "  &
.)/ 0&

'
;$ !

 !
"   # $%  # %  
8
 # %  # % " 
   # $&
'
)/  %  /  0 <
= 0%
9
/ 8 0%
9
/  0&
)( &
( "  &
.)/ 0&
'
; !

 !
"   # $%  # %  
8
 # %  # % " 
   # $&
'
)/  %  /  00%
9
/ 8 0&
)( &
( "  &
.)/ 0&
'
; !

 !
"   # $%  # %  
8
 # %  # % " 
   # &
'
)/  %  /  00%
9
/ 8 0&
)( &
( "  &
.)/ 0&
'
;4 !

 !
"   # $%  # %  
8
 # %  # % " 
   # $&
'
)/  %  /  00&
)( &
( "  &
.)/ 0&
'
;5 !

 !
"   # $%  # %  
8
 # %  # % " 
   # &
'
12

# $%  # %
# $%

# $%  # %
# $%

# $%  # %
# $%

# $%  # %
# $%

# $%  # %
# $%

'

)/  %  /  00%
9
/  0&
)( &
( "  &
.)/ 0&

) 
 
$* !
$ 
'
*$ !
 $
'
* !
 
'
*;4 !
 ;4
'
;4*;4 !
;4 ;4
'
;4*;5 !
;4 ;5
'
;$*; !
;$ ;
'
;*; !
; ;
'
;*; !
; ;
'
*;$ !
 ;$
'
) 
)   
 )
  +) ,    
  
,+)
 
3 !

 !
"   # %  # %   # $%  # %
8
 # $% 8  # %    # %  # %
"  # $%    # $&
'
9
/  0&
)( &
)( "  &
.)/ 0&
'
? !

 !
13

"   # %  # %  # %   # $%
 # % "  # $% 8
 # $%
   # &

'
)/  %  /  0 <
= 0%
9
/  0&
)( &
)( "  &
.)/ 0&

'
5: !

 !
"   # %  # %  # %  
 # % "  # $% 8
 # $%
   # &
'
)/  %  /  00%
9
/ 8 0&
)( &
)( "  &
.)/ 0&
'
;; !

 !
"   # %  # %  # %  
 # % "  # $% 8
 # $%
   # $&
'
9
/  0%
9
/ 8 0&
)( &
)( "  &
.)/ 0&
'
;> !

 !
"   # %  # %  # %  
 # % "  # $% 8
 # $%
   # $&
'
)/  %  /  00%
)/ 8 %  / 8 00&
)( &
)( "  &
.)/ 0&
'
;? !

 !
"   # %  # %  # %  
 # % "  # $% 8
 # $%
   # $&
'
9
/  0&
)( &
)( "  &
.)/ 0&
'
;: !

 !
"   # %  # %  # %  
14

# $%

# $%

# $%

# $%

# $%

 # % "  # $% 8
 # $%
   # $&

'
)/  %  /  00&
)( &
)( "  &
.)/ 0&

'
: !

 !
"   # $%  # %   # $%  # %
8
 # $%  # % "  # $%
   # &
'
9
/  0&
)( &
( "  &
.)/ 0&
'
) 
 
3*3 !
3 3
'
3*? !
3 ?
'
3*: !
3 :
'
?*? !
? ?
'
?*: !
? :
'
?*3 !
? 3
'
;;*;> !
;; ;>
'
;>*;> !
;> ;>
'
;>*5: !
;> 5:
'
;?*5: !
;? 5:
'
;:*5: !
;: 5:
'
) 
)   
)
     
  
 
15

 
4 !

 !
 #
8
 #
'
)( &
.)/ 0&
'
4; !

 !
 #
8
 #
'
)( &
.)/ 0&
'
4> !

 !
 #
8
 #
'
)( &
.)/ 0&
'
4$ !

 !
 #
8
 #
'
)( &
.)/ 0&
'
43 !

 !
 #
8
 #
'
)( &
.)/ 0&
'
4? !

 !
 #
8
 #
'
)( &
.)/ 0&
'
5 !

 !
 #
 #
'
( &
)( "  &
'
) 
 
4*5 !

%    # %   # 4%  # %
%  # %    # $&

%    # %   # 4%  # %
%  # 4%    # $&

%    # %   # 4%  # %
%  # %    # $&

%    # %   # 4%  # %
$%  # %    # $&

%    # %   # 4%  # %
$%  # 4%    # $&

%    # %   # 4%  # %
$%  # %    # $&

$%  # %   # 4%  # %
$% "   # %    # &

16

4 5
'
4$*5 !
4$ 5
'
4;*5 !
4; 5
'
4>*5 !
4> 5
'
43*5 !
43 5
'
4?*5 !
4? 5
'
) 
)   
)
  ,),@  
  
,),@
 
4 !

 !
 # %    # %   # %  # %
8
 # %  # %    # $&
'
)( &
.)/ 0&
'
4 !

 !
 # %    # %   # %
 # % 8
 # $%  # %    # $&
'
)( &
.)/ 0&
'
44 !

 !
 # $%  # %   # %
 # %  # $% "   # %    # &
'
)( "  &
( &
'
) 
 
4*44 !
4 44
'
4*44 !
4 44
'
) 
)   
 )
      / 0
  
, 
17

 
; !

 !
"  
  #
'
)( "  &
( &
'
> !

 !
"  


 #
'
)( "  &
( &
'
) 
 
;*> !
; >
'
) 
)   

# %  # $%  # %
$%  # % 
 # &

# %  # $%  # %
# %   # $% 
 # %
&

 )
 
 A   



*-+, !
 -+,
'
*+, !
 +,
'
44*-+, !
44 -+,
'
44*+, !
44 +,
'
44* !
44 
'
+,*4 !
+, 4
'
+,*5 !
+, 5
'
+,*$ !
+, $
'
+,* !
+, 
'
+,*3 !
+, 3
'
+,*4 !
+, 45
18

'
+,*: !
+, :
'
+,*$ !
+, $
'
+,*3 !
+, 3
'
+,*? !
+, ?
'
?*$ !
? $
'
?*: !
? :
'
?*4 !
? 4
'
?*5 !
? 5
'
?*$ !
? $
'
?* !
? 
'
?*4$ !
? 4$
'
?*? !
? ?
'
3*? !
3 ?
'
?*4 !
? 4
'
?*;5 !
? ;5
'
5:*;5 !
5: ;5
'
5:* !
5: 
3*4$ !
3 4$
'
3*4 !
3 4
'
:*4$ !
: 4$
'
19

:*4 !
: 4
'
:* !
: 
'
:* !
: 
'
:* !
: 
'
;*4$ !
; 4$
'
;*4 !
; 4
'
;* !
; 
'
;* !
; 
'
>*4$ !
> 4$
'
>*4 !
> 4
'
*3 !
 3
'
*3 !
 3
'
?* !
? 
'
?* !
? 
'
?*4 !
? 4
'
?*4 !
? 4
'
* !
 
'
* !
 
'
*4 !
 4
'
*4 !
 4
'
20

$*4 !
$ 4
'
$*4 !
$ 4
'
$* !
$ 
'
$* !
$ 
'
$*4 !
$ 4
'
$*5 !
$ 5
'
$*3 !
$ 3
'
$*? !
$ ?
'
$*: !
$ :
'
$*$ !
$ $
'
5*; !
5 ;
'
>* !
> 
'
>* !
> 
'
>*+, !
> +,
'
>*-+, !
> -+,
'
3*4 !
3 4
'
3*5 !
3 5
'
3*$ !
3 $
'
3* !
3 
'
*5> !

5>
'
21

;*54 !
;
54
'
;*5 !
;
5
'
*5 !

5
'
$*5: !
$
5:
'
*5: !

5:
'
;*5: !
;
5:
'
* !
 
'
;* !
; 
'
$* !
$ 
'
;*;$ !
; ;$
'
;5* !
;5 
'
5:* !
5: 
'
) 
) 

22

Vous aimerez peut-être aussi