1 buspec specification of amba-ahb protocol - ernetpallab/buspec_ahb.pdf · 1 buspec...

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 high- bandwidth 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

Upload: nguyennhu

Post on 30-Apr-2018

245 views

Category:

Documents


2 download

TRANSCRIPT

1 BUSpec specification of AMBA-AHB protocol

AHB is a new generation of AMBA bus which is intended to address the requirements of high-performancesynthesizable designs. It is a high-performance bus that supports multiple bus masters and provide high-bandwidth operation.

AMBA AHB implements the features required for high-performance, high clock frequency systemsincluding:

� 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 AHBprotocol such as fixed length incrementing transfers, locked transfers. However modeling of AHB busprotocol in BUSpec clearly reveals the power of this language. The BUSpec specification of AHB busprotocol is given as follows (for clarity some comments are provided in the specification).

��������

�� �� � �� ������ ����� �� �� ������� �� � �� ���� ����

�� �� ��������� � � ��������� �����

������������� �������

����� ���

�� !

����� !

"����� # $% ��� # �% ������ # $% ����� # $%

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

'

�(�����&

�("�����&

'

�� !

����� !

"����� # �% ����� # $% ��� # �% ����� # �%

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

'

)("�����&

�(�����&

'

)� ���

����� �����

��*�� !

�� ��

'

��*�� !

�� ��

'

��*�� !

�� ��

'

)� �����

)� ��������

�� +���� �������� �� �� ������

������������� +,��

����� ���

-+,��� !

����� !

1

"����� # �% ��� # �% ����� # �% ������ # $%

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

'

)(�����&

)("�����&

.�)/�����0&

'

�+,��� !

����� !

"����� # �% ��� # �% ����� # �% ������ # �%

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

'

)(�����&

)("�����&

.�)/�����0&

'

)� ���

����� �����

-+,���*�+,��� !

-+,��� �+,���

'

-+,���*-+,��� !

-+,��� -+,���

'

)� �����

)� ��������

�� )��� �� �� �-�) �������� �� �12

������������� �-�)

����� ���

��3 !

����� !

����� # $% ��� # �% ��� � # �% ���� # $%

������ # �% ����� # �% "����� # �&

'

)(�����&

)("�����&

.�)/�����0&

'

�45 !

����� !

����� # $% ��� # �% ��� � # $% ���� # $%

������ # �% ����� # �% "�����#�&

'

)(�����&

)("�����&

.�)/�����0&

'

)� ���

����� �����

��3*��3 !

��3 ��3

'

�45*��3 !

�45 ��3

'

2

�45*�45 !

�45 �45

'

)� �����

)� ��������

�� )��� �� �� ��6, 7��� ��������

������������� 7��6,

����� ���

�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 !

����� !

����� # �% ������ # �% ���� # 4% ��� # �%

8��� # �% ����� # �% ��� � # $&

'

)(�����&

.�)/�����0&

'

�4; !

����� !

����� # �% ������ # �% ���� # 4% ��� # �%

8��� # �% ����� # 4% ��� � # $&

'

)(�����&

.�)/�����0&

'

�4> !

����� !

����� # �% ������ # �% ���� # 4% ��� # �%

8��� # �% ����� # �% ��� � # $&

'

)(�����&

.�)/�����0&

'

�4$ !

����� !

����� # �% ������ # �% ���� # 4% ��� # �%

8��� # $% ����� # �% ��� � # $&

'

)(�����&

.�)/�����0&

'

�43 !

����� !

����� # �% ������ # �% ���� # 4% ��� # �%

8��� # $% ����� # 4% ��� � # $&

'

)(�����&

.�)/�����0&

'

�4? !

����� !

����� # �% ������ # �% ���� # 4% ��� # �%

8��� # $% ����� # �% ��� � # $&

'

)(�����&

.�)/�����0&

'

��5 !

����� !

����� # $% ����� # �% ���� # 4% ��� # �%

����� # $% "����� # �% ��� � # �&

'

�(�����&

)("�����&

'

)� ���

����� �����

��4*��5 !

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