Journal of Universal Computer Science, vol. 11, no. 7 ...

24
Journal of Universal Computer Science, vol. 11, no. 7 (2005), 1135-1158 submitted: 28/4/05, accepted: 9/6/05, appeared: 28/7/05 © J.UCS

Transcript of Journal of Universal Computer Science, vol. 11, no. 7 ...

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

� ����� � ��� �

���� �������

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

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

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

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

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

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

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

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

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

"������ ���&� '� �� ���(� )����� ���(�� )����� ���(�� *� �� � ���� ���+�

,������ � ���� ���+� - )��� ���+� ./0����� ����� 1��2�� � ���� ����3 �

# ���� ��� ��2��� ��� �� ������� ����� ��� !���� # ���������� # �� �� ���

�� # � ��� ��2 �� ��� !�� � ���� ���� !�� �� � �� ����������� �� ���

� ���� ���� ���������� � ���� �� !��� # �� ��� ����� ���� !�� � ������ ��

�4�� ��� � �� ���� � �� ��� � ���� �� ������ �� ��� �� � ��� � � ��

��� ��� �� ��������� �� # ���� �� ����� ����� � �� � ������ ��� �� � ��

�� �4 � �� �� ����� !��2�

5� ��� � �� �� !� !� �� ���� � ����� � �� ������ ��� ������ ����� ��� #

������� � �� 6�� ����� � ������� �!���� �� �� �������� �� $"������ ���(3��

# �������� � ����� �������/� ����� 7 � ���� �� � ��� �� ����� !���� ���� 89 �:

���� ������ ��� �� � � ��� � � 1%"# ������ %��� �� �� ��������;� 5���

�� � ��� ��� ���� � �� � # ���� � �4���� �� ����� � �� ������ �� � �� � ����

�������� ���� �� ��� ���� < ���� ���:����� � �� ��� ����� �� ��� �� 8-�!

���� �� ��� �� �������� !�� � ��=;� �� � �� ��� � � � �� ���� �� !�

��� �� �� ����� � �� � ���� ���� ���� 1������ �� 1-0% ��2 ���� �� !�����

# ��� ��� �� ������ # !� �� ��2� � �4���� !�� # �� ���� ������� �� ����

�� � � ���� ���������� �� ����!��� ����� ��� � ������ �� ��� , ��

��� ������ � �� ��� >� ������ ��� �������� ����� ����!��� �������� �� !�

���� � ���� � �:����� ���������� ��� �� ������� ��� � � �� � � ����

Journal of Universal Computer Science, vol. 11, no. 7 (2005), 1135-1158submitted: 28/4/05, accepted: 9/6/05, appeared: 28/7/05 © J.UCS

���������� ��� ����� �� � � ����� ��� ��! � �� ���� ���� ������

� �� ��� ������ ��� ,� ����� �� �� � � ������� ���� !�� � ���� ��� 5�

!��� < � � �� �����=

�� ��

,� �! �� � � � ��� ���� !�� ��� '��2 �/ � ��� �!��� ����� $'��2 �� ��?�3�

# ��������� � ����� �� 9* �� ����� �� � � ������ �� � !���� �� ���:

���� ����� ��� ����� ��� �� !��� �� ������� ��� ������ ��� �����!�� �� ��

���� 6�� �4����� �� # � ������� $"������ ���(37

������ � ���

����� � � � Æ �� Æ �� �� Æ ��� ������� Æ �����

�������

� �� Æ �������� Æ ���� �� �

����� ��� � ������� Æ �� Æ �������

� � � �� ���

# �� �� ���� ���� � ���� �� ������� �4 ���2 $,��� �� ��!��� ����3�

��� 9�� �� �� # ��� �� �2� � �� � �� ���� �� �@ � � � �� #� �4�� �� � ��

�� �� � ��� ��! ��� A����� �� �� 6�� ��� ��� ��� � � � � � ��� �� ���� ��

��!� �����!�� �� � ����� �� �� �� �� � ��! � � � ��� ��� ���� ���� �� ��

��� ������ � �� � � � ����4�� ��� � 4� !���� ������ �� �� �� �������

�� � # � � � � � ���� �� �� �� ������� �� �� ����� �� � � 6�� �� �� � ��

��!� ��� ����� �� Æ �� � � �� ������� ��� � �� �� � �� � �� ��� ������

���� �� ������ ��� ������ ������ �� ��� ��� � ����� � � ��B ���� �� ���

� �� ��� �� � �� ���� � �� �� �� ��� � �� 6�� ����� �� � �:��� �

��B ���� �� � � ��� �� �� ��� � �� ��� ����� �� � �� � ��B ����

��� ��6� �� �� �� ���� ���� � �� ��� ������ ��� ���� ���� �� � ���� �

�� � � � � ����� ���� � � � 9�� � �� �� �� ���� � ��� � � � �� !�

�������� �@ �:�� � � �� �� ������ !� � ��! �� �� ���� !� � � � ��

�� ����� � �� !�� ��� ��� �� ��� �� ����� ������ � �� �� �������

�� ��� ���� �� �� � 4��� ,� ������� �� �� ��� !� ��� ����� ����� �� ��

������� ���� !� � ��� �� �� �� ��� �! � ��2�� �� �� � ����� -�!����� ��

������ ��:���� �� � ��� ��� � ����� �� ���� �� � ������� � ��� �� ��

!����� # ���� ���!�� �� ����� �� ������� �� �� ������� ���� � � �� !� � ��

������ �� �������� �� �� � !�� � 8# �� ����� �� !� ���� ��������� ��

���� � �4�� ���;�

# ��� �� �� ���������� �� �9* !�� ��������� ������ �� ���� �� ���:

� �� ����!��� ������� �� ��� ���� ��-0%�� ��� ������ !���������� C��:

��� 1-0% �� 1������ �4�� �� � ��� ���� �� �� �� � !��� ��� � ����

� � �4�� ���� ,�� ��� �� ��� ��� ��� �4������ �� !� � �� ����� ��

1136 Sheeran M.: Hardware Design and Functional Programming: a Perfect Match

1

TA TA TATA

Tal(n−1)

n−2 n−12

n n n n 00_ _

9�� �� �7 ��� ,��� �� ��!�� ���� ���� � � ������ ���!�� �� ��� ����� ����

�� ����:���

�-0%� ���� $�� � ���� ���>� '������ � ���� ���>3 ��� � ������ �� �� ������:

��� ���� ���>�� D�� � �� � ��� ���� !�� � ���� !�������� � �4������ �

� ��� � *������� ���!��� �� �� E�� ���� ��� �� �� �� �� �9* � ��

����� �� ��� ��� ����� �� ���� �� ��� �� � ����� ����� *��<�� ��F�-��&��

����� 6�� �4�������� !��� ��� ������ �� ���! �� �� �����!�� B � �� ����

���� ����� ��� � ���� � ��� �� ����� �� � ����� ��� �� �� �� �� ���:

�� $'����� � ���� ����37

��� � 9*� �� ����� ��������� ����� !�� ��������� � < � �� ���

�� ���� �� �� ������ � ����� ��B ���� �� � ���� �� � 9* ������� ���

� 9* ������ �� �G�� � �� ����� �� ����� �� � �� ���� !� �� ��

����� � �� �������� B ��2��� "��� �� ��� � � !��� � �������� ���� �

!�� ����� !���� �� !�� �� � !� �� �� ��� � � !�� �� � � ��

����� ��2�� � ������ � �4���� �� �� �:H�! !� �� �� ����� ��

����� � �� �������� ���� !�� �� � � �� � ���� ��� � !�� � ����

��� �� �� � ���������� !� �� �� ������

$� � �3

9��� �� �4������� ����� � ��� ������ �� ��� ����� � �����:

��� �� !�� ������� ����� ���������� �� � �� �� �� �� ���������

�� I� � ��B ����� � �� �� �� ������ �� !� �� �����6��� ��:

��� ����������� ��� ��� ��� � ��� �� �� ����� ��2 �� � ��

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

������� �� � ����� �������� # �� ���� ��� � ���� �� ���� ����� ����

1137Sheeran M.: Hardware Design and Functional Programming: a Perfect Match

� ��� �� ������� �� ����� �������� D���� �� �� ���� � �4����� ��

H�! �� �� � !� �� �� ��� � �� ����� �� � ���� �� �� �� � ��:

B ����� � �� �� ����� �� ����� � � � 9* ��� ��� ���! � �� ��� �

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

# �� � ���� �� � � � �� �9* !�� ��� � �� ������ � � ����� �4����� ��

� ��� �� �� �� �� �� �������� �� � � �:����� ��� �� �� !�� � �� �����:

��� ��� %� ��� D��� $,������ � ���� ���+3 �� *������/� �! ����:����� �����

��� �� !��� ��� ��� �� ������� � ��� # !�� J���� )��� �� 5��� % 2

!�� !��2�� ������� !� � �� *������ ���� �� � � ���!� ���� �� ��� � ��

���� ����� ��� ��� ��� ����� ����� ��� ����� �� � �������� $% 2 � ���� ����3�

��� � ���� � < � �� !��� ���� � �� ��� �� �� ��� ��� � �� ���<��

�� �� �� ������ ��� �� *������ �� ������ ��! �� ����� ��� K � ��<��

�� ���2 ��� �� ��������� -�!����� �� ������� �� �� # ������� � ���� �� �

�� ����� �� ��� ��� ����� �� ���� ����� ��� � �� � �� �� �� �� �� �� !� �

���� �������� !� � ������� ����� ��� � ��� ����� 5� ����� � � �4������

!� � � ���� ���� ��� ��� �� ���� ��� ��� ����� ���� �� �� ���

�� ������ ��� �� ������ ����� � � ��� $% 2 �� )���� ����� "������ �����

)��� �� "������ ����3� ,� !��2 � ��� ��� ������ � �� �� �����������

� ���� � ���������� � � ����� �� � � ���� !�� ������ ���� �� � ���

D�� ����� �� ������� � ��� !�� � !��2 !� � "� �� "���� �� ������ ��

�� �� E�� �������� � �� ��������� �� � ���� ���� ���� ����� �� ����6:

�� �� ��� �� ��� 9*J��� %����

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

�������

# %���� � !���� � �9*: �� % � ��:��2� ��� ��� �� �������� � �� � �:

���� ���������� ��� ��� -��2��� $'<���� � ���� ����� ������� � ���� >���3�

�� ��6� �� �� �� ���� ��

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

# �2�� � ��� �� �� � �� �� � �� ���� ��� � ��� �� �� � �� � � � C�!� ����

�� ��� �� ���� � �� ������� ���� ���� � � ����� !� �! �� �� �� �� ����

� ���� � � �����:���2�� ��� ����� ��6� �� ���� ��� �� ��� � � �� �� �� ��

� �� :� ����������� � � ����4��� !���� � ��� ���� ����� � �� !�� !� ��

��� �� -�!����� ��� �� � B � � �� � ������ ���� �� � � ���� � ������� ���

� � ���� � ��������� 5�� �� ���� ������ !�� !� !� � ����� ����� �

� � :��� �� �� !� � �� ���� � ������� �� !� � �������� �� � ��� 64��

1138 Sheeran M.: Hardware Design and Functional Programming: a Perfect Match

��A��� � ���� �� � �������� ������� � �� �� �� ���� � ����� �� 64�� ��A���

���� ������� � �� �� �� �� ��������� � ����� � !��� � ���� �� ����� �

��� �� � � ��� ����� �� ����6�� �� ����� ��� ����� � ��� �� �� !�

���� � !� � ��� �������� � � ����� � ��� �� �� ���� �4��� � "�� � %���� ��

!�� � � -��2��� ������� � ����� � � � :��� � �� ��� �� !�� �� � ������� ��

�� �� � :��� � ����� ���� ��� �� � ��2� � ����� ����� �� ��������� � �

��� ����� � � �� � � ���� ��� ��� ��������� ��� !�� �� ����� ��� ��������

�4����������� �� ���� �� �� � !��� �� !� ��� � ������ �� !�� !� � �� ��

!��2 � %����

����� ��� ���� �� ��� � ����� � �� �:� � � �� �� ������� � �� ���� � �

.� ���� ��� �� �� �� ������� �� �� ���� � �������� ��� ������� �����:

���� 1-0% ������� ���� !���� ������� �� ��B ���� ������� ��� ������ ��

���� �� �� � �� ���� !��� ����� !� ������� ������ ������� ��� ��� ��

������ � ��� :��2� ���� � ������� � �� �� ���� � �� ���� �� ��� ���� ���

�� � �� � � ��� �� !���: ���� ���� �� � �� ���� ����� !�� ��� �� �� ������ �

����6�� ��� �� !� !��� ������� ��� � �� �4 ��� ��� "����� �� �� ����:

��� �� �� 6�� ���� � ���� �� �� �� ���������� ��� ��� ��� � !�� � ��

����� �� �!���� ��� ��� ��A� ���� � ��� �� � ����� � ������6�� ���

��� �� ��� � � � ��� �������� �� !� ������ � ��� ��!����� ��� �����:

���� � � ����� !���� !� !� � ���� � �� �� ��� ���� �� ������ ��� ��� �

� � ���� �� �:� � ����� �� �� 6�� ��� � � ���� �� � ��!��� �� �����

"��� ����� � �� ����� ��� �� < � !�� �� ������ �� �� ������� �� �� ��:

������ �� ����� � !���� ��� �������� �� ���� -�!����� ��� � � �� �����

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

��� ��G��� �� �4 �� ��� ���� � �� �� � �� ������ � �� � ���� � !����

!� ��2 � � �������� �� �� �������� ��� � � � ����� ����� H�!�

�� ���!������ �� ���

. � �������� � �� ������� �� �������� ���� � ������ ��� ��� ��� � ���:

��! ���� �� ������� � ���������� ���� � � �� � �� �� ������� �

�������� $-���!���� � ���� ���&3� ��� �������� ����� �� � �� � �� �� � ��

� � � �� �� ���� � ���� ��������� �� ���� ��� � ����� '����� � � ��

��� �� ���� ������ ������ '� � �� ���� � �� �� �������� �� �� ��B � ����

�� �� ���� � �� �� � ������� ������� � �� �� �� ������ �� �� �� ���:

� � �� �� �������� �������� � < � �� ���� !�� �� ��� � ������� ���� � �

5� ��� ��� �� ���� ���� �� ������� ���� ����� ��� �� � "��:�������� ��

!� ���� ��������� ������� �� ������ ����6�� �� �� ���� $"����� � ���� >����

'<���� � ���� ����3� ��� �����!�� ���� ����� �4����� ��� � �� �� �� ����� 5�

���� ������� � �! � ��:����� ���� � � �� !� �� ��2� � ����2 �� � � ������� �

�� �� ���� �� �� � �� � � ��:������ ��� �������� ���� ��� � ����� � � ������

!" �� !� �� � "��:������ �!���� �� ������ �� �� � � �� ����!!� � �����

1139Sheeran M.: Hardware Design and Functional Programming: a Perfect Match

�� � �� ���� �� ������ '���� �� ������ ��� �������� ���� � ��� � ���:

� �� � 0#,��" ����� �� ����� ��� � �� ��� ��� � �� ��� !� � ��

�� ���� �� �� ����� � 5� ���� ������� ��2� � � ��� ����6�� �� ����� ��� ���

",1 $,�,����� ����3 �� 1#" $'��� �� F�E� � ���� ���L3�

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

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

����!"���#$$ �� ������� ��������� �������� ��� � ������ �����!"���#$$ ��� � !�����

��% � �� ����� � ����#$$ ��� �� &�'� �������� ����#$$��! � ��% (�� ��

)��� ���* ����!"���#$$���*� +++ ���,+%� -���$+

C� � �� ��� �������� ��� ����!� �� ����6�� �� �� ���� � ������ ���� �

������� �������� � ����6�� �� �� �� ��� � � ����� ��� ����� �� �����

���� �� ���!�� � ���� � � ����� �������� ���������� �������� !���� ��

�4����� � ���� �� ����� � �� ������ ��� $9� A�� ���2� >��&� ��������� >��(3� 9��

� ����� ������� �� �� � �� ��� � -���!��� 0������ �� �� 1���6�� �� ��

�������� �� �� � *"% �� %���� ��� $�4����� � ���� >��+�3�

��� �������� � ������ ����6�� �� � ��� �� ��� � %��� H� �� �� � ���

���� � ������ ���2�� �� ����6�� �� ����� # !� �� �� � ���� �� � �4�����

���� ������������ ����6�� �� �� ����� !���� !� �� � ��� � ���� �������� ��

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

�" #��������� �������� �� ���

# ��������� ������ ���� � �� !� ��2� �� �� ������ ����� � � ��� �� �����

������ ��������� ��������� 9�� �4������ ���� ��� �� ��6� ��� �� !� �� ��

���� �� �� ��� �� ��� � �� � � %���7

����� �� � �$����� ������������ � ���� � � ����� �����

�����. � ���� � ����� ���������� � �����

��� � � �� #!� !�� �������� � ��� �� ���� � � � ������ ��� �� ������ ���:

���� �� �� �� ���� !���� #!� !��$ �������� ������ �� �� ���� ���� � �

# �� ���� ���� � � ������ � !� �� �� ���� ���� ���� ���� � 6�� ��6� �

���� �� �� ��� �� �� �� � !� � �� � 4 �� ������ ��� �� ��� ��

����:!���� �� ������ � � �� ���� � �

1140 Sheeran M.: Hardware Design and Functional Programming: a Perfect Match

�� ��� ������ ���� �� �� �� �� �!�� !���� ��2�� � ����� ����� �� !�:

�� � !�:� � ������ �� ��� � � !� ��� ��� �� ���� ��2� � ������:�����

����� ����� ���� � ��:������7

���#$$�� ��$$ �� � �� �� �������� ������ � �� ��$$ �*��� ���

��� �� �� �� � ��� �� ����� �� �� � ���� �� !� ����� ����6�� �� 6�� �

����� ����� ���� ������ ��� �����:� ���� �� ���� ��� � ��:����� ��

������� � �� �� �� �� ��� �� � �:�� � � � � ���� � ��� � !���� ��� �

�� �� ����� �� �� �� � � �� �� C� � �� ��� �� � ������ ��6� ��� 5��

!� !� � ������ � � ��� �4����� ��� ����6�� ��� !� � � �� � �� � � � �

64�� ��A� �� ����� � ��������� � �������� �� �� 9�� � ���� � �� �� �� ��

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

����� ��� �������� $������� � ���� >���3�

�$ %��&�������� �������������� '�� ������� �������� �� ���

5� ��� �� %��� �� � ������ �� � �� ��6� �� �� �� ����� ������ &������

� ��� � ����! �� �� �� ����� � � ��:����� ������� � ���� � ���� �

����! �� ��� ��� �� �:� ����� ������ � �� ����� � ���� � ��������

9�� �� ���� !� �� ��6� � � ��:����� �� ����� �� � � �� � � � ������7

�#$$/ ��%�� � �� �0�� �%�� � �� �0�� ��%��� ��0�� � ������������

� � ��� ��%���%� ���� �� ��� � ��0���0����� � ��� ��%���%� ���� �� ��� � ��0���0��

�/ �� ������� /���������� /��� ������ /���� � ������� /��� ������ /����/ �� � �#$$/ � ,� ,�%,�%,�%,�%,� ��

)��� �������� ����#$$�� �/� ���������� %, �,�,��� ,�0,�1,�2,�3,�4,�5,�6,�%,,�%%,�%,,�

��� � � �� %��' ��� ��4 ���� ���� ������ ��� !���� ����� �� ����� ��� ����

�� �� ��4 �������� �� �� ���� �� � � � � ��� ������ �� �� �� ���

� ���� �� � !��� :���� ������� ���� �� ��� � � ����� �4����� ��� !�� ��G���

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

�� �� ���� �� C�:" ����� # ����� � �� �C"#� $)��� �� C������ ���(3 K

���� � �4����� �� � ����� �� �� � � � �����!�� �� � ���� ���� ���� ���:

������� ��� ��� ��������� ����� !�� ���� �������� ����� !��2 � ���

C"# � ���� � ������� $"���� ���>� % 2� ����3 � # ���� �� �� ���� �� � ���

���� ��� �4���� � ��� "���6�� ������� ���� ��� ���� � � � ���� ��:

� ���� � ���� ����� � �� ��������� �� ���� �4�������� ��� ��� ����

�� �� �! ���������� � �� ������������ ��H�� �� �� ���� ���:�!�������

# ��� � ��� � � ���� ����� � �� � ���� �� ������ �� �������� � ��

�� � �� �� � ��� � $E������� � ���� >��(� "����� �� *�� � )���� >��>�

1141Sheeran M.: Hardware Design and Functional Programming: a Perfect Match

J� �� � ���� >��&� ,����� �� "����� >���3� ����� ��������� � !��� ����!

���� ���:���� ��������� �� ����� ������� � ��� �� ����!��� ������� ��

��� ����� �� !��� ����! � � �� ���� !� � C"#� %� �� � ��� ������ # ���!

�� C"# �� �� ��� � ��� �� �� � ���� ���� ���� � ����� ���

�( )��� ���� �� �� ����*

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

��� ������� ������ �� ���� ���� ���� � ����� � ���� ���� ,� ��<�� ��

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

����� �� �� ������� �� �� ����!� �� ������� � � !��2 ��� ��� ��

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

�������� ����� �� ��������� # �� ���� !��2� # ���� ����� � ������� ����

��� ���

��� ������� �� # ���� ����� � ������� �� �� ��� � �2� ���� �� �:

� � ���� ���� � ������ ��� �� �� �� ��!�� ��� �� ��� ����� � �� ������

��� ��� ��� �! ����� � ��� ���� !�� ���B � �� � � �� �� #',/� 5������

F����� � � ��� �� ��2 � �-�F,D >��& $F������ >��&3� # ��� � �� �� ����

������� ��� �� �� ��� �� ������ � �� ��2� � # ���� ������ � ���� �� � !���

� ����! �:� � ���� ������ ��� � ����� ��� ��� �� �� ������� �� # ����

� �� �� � �� �� ��= 9�� �� ���� ��! ���� !� ����� � � ���� � !����

������� �� ���� �� � �� ����� � � � �� ������M -�! ���� !� ��2�

����� ��� �� ���� �� ���� � � �� ���� � �� �� �4 � !���� ��� ���

������M 9���� ��!��� � ���� B �� ��� ��� � � � � �������� �� �� � ��

�� ����� ������ � ��2�� ���� �������� ���� �� � ��� ����:�G�� � ���� ��

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

��� �����!�� ��� ��� ��� � �� �� �� ���� �� �4������� �� 6�� � ��� �!����

� ����� � ��� �� �2�� ���� �� �:� � ���� ������ ����

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

� ����� �������������� �� ��� ��� �������� ����� ������ �� � !�� ���

�� ��� � � � �� !��� � ����� �� ������ ��� ����� �� ���� � �� ��� ���

2�! �� �� �������� ���64 ���� � � �� � �� ���� � �� �� �� ������� � ��� ��:

��� ���� �� ���� � �N �� ��� ����� ������� �� �� � ������ � �������� �����

��� � ����� � �� !��� 2�! �������� ���64 � !��2�� ��� ��� $"2���2�� ��L�3

�� $'�� �� E �� ���>3� �� ���� ��� ���� ��� ������ � �� 6��� �� ���:

� � ����� �� �� � ��� ��� ������ 6� �� � !���� ������� �� ��� ��� ����:

���� ���� � � $E�!���� ����� ��� � ���� ���>� O�� ������ �� C�2����� >��&3�

����� ���� �������� !� � � � ���� ���������� �� !� � ����!��� �����

���� 2�! �� ���64 � � �� �� ���� K ���� ��� �4������ ./0����/� !��2

� ������ �� ������ ��� �� � �������� ��� ������ �� $./0����� ���(3� ,���

1142 Sheeran M.: Hardware Design and Functional Programming: a Perfect Match

x1

yny1

xn level 0

level 7

�!

p1

p2

�!

9�� �� >7 ��� ��� ������ ���64 � � � �� ��� ��� � � �� �� � �������� ���64

���� � �� ������� �� �� !� ������� � �� ���� � �� �� �� �>�

���� ��� -�A� ��� � ���� �� ������� �� ���� � � ������ � � ����� �� �� ����

� ���� ����� � �������� ���64 � !��2� $-�A�� >��(3�

J��� � �� �� ��� ��� � � � � ��� �� ������� �� � ����� � ���� � �� �2��

���� �� � �� ���� ��� �� � � � � �� P ��� �� P �� ��� �� P �� �� ���

� � � �� P �� Æ � � � Æ ��� !���� Æ �� � ���� ���� ������� ��� �� � ����������

���� � ���� ����� ����� ��� .� �������� ��� �� �� �� ����� ����� �����

���! ������ ������ � 9�� �� >���� #� ���� ��� � �� �� �� �� ���� � �

!� � �� ���� ����6�� �� ���� ���� � �� ��� � 0� � H�!� ���� �� �

�� ��� �� !� ���� �� �� � ���� �� ������ �� �� ���� � � ��� ����� ���

� �� �� !� � ����� A��� � �� ��� � ����� �� ���� ������� �� �� � �����

������� �������� �� Æ ����� ��� � � � !� �� �� .� �� �� �� � �����

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

�� ��� ���� ��� ������ �� ��� ���� �� ��� � ��� ��!��� ���� ��� �

� � � �� �� �� ���� �� ��� ���� ���� # ��� ���� ���� �� � � �

���� � ������� ��� ����! �� � �� ���� �� �� ���� -���� � ����� A����

���� �� � ������� ��� ������ � ��� ���� !��� � �� ������ �� � ���� ���� ��

� ���2� ��� ������� ���!� � ������:����� � � � ��� ��� ���� � ���! �� ���

? ����� �� �� �� ���� � �� �� ��� ?� # � ��!�� ����� � �� ��� �� �� �����

?� �� �� ���� � ��� ����� ?� ��� ��:� �� � ��� �� � � � :������� # ���

�4������ ��� � �� ���� ��� ��� ���� ��:� >� �� �� !���� ���� � �� ����

� ���� ��:� >� D4����� �� ������ ���64 � � � �� � 9�� �� >���� !� ���

�� � ���� �:A��� ����� ��� �� �� �� ��� ���� ���� �� ��� � ���� 5�

��� � ���� �� � �4������ !��� � ����� �� ������ �������� ���64 ���� � �� �

!���� ���� �� �� ���� �� �� ��� � � ���� ������ �� �� ���� �� ����

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

9�� !� �� �� ���� �� ��� �� ��������� !�� � ��� � � � ���64 ���� � �

1143Sheeran M.: Hardware Design and Functional Programming: a Perfect Match

�! �!

9�� �� &7 ��� � �������� ���64 ��� � � �� ��� � ���!���� �� � ���2!����

��� ��� ��� ���� ��� � � �� !� � �� ��!�� ��� ���� ���2 �� �� ������ !����

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

����� "� ��� '�� :E � ��� � � �� ��� &> �� ��

��� �� ���� �� �� ����� ��� *������� ���64 ���� � � �� ���� �� ������ ��

�������� !� ������� � �� ���� � �� �� ���! � 9�� �� >���� F���� �� �����:

�� �� �� ��� �� �� ��� �� ���� ����� ���� ��� �� ������:����� ���� � ��

!� ���� ������� ����

9�� >� @ � �� �� �� �� �� ��:������ ���!���� �� ���2!���� ����� ��

���! � 9�� �� &���� 5� ���� � �������� ���64 ���� � �� ��� ���� � ����� � ��

�4���� �� � �� �� �4 �� ��:� � � ����� ����� � �� ������ �� �� ���� � �

�� �� ����� �� ���!��� ���2!���� ��� � �� ������ �� ���! � 9�� �� &����

�������� �������� ��A�� ������ ����� �� !���:2�! '�� :E � ��� � �:

�� $'�� �� E �� ���>3 ���! � 9�� �� (�

� ������!�� �:�� �������� ���64 ���� � �� �� �� ���� �� ��� �� ��:

� ����� "2���2� ��� � � ��� !���� ������� �� ��� � � �� !� ������ � ��>:

�� �������� ���64 ���� � � $"2���2�� ��L�3� �� ���! � 9�� �� +� # �� !�� �

� %��� ��

�!����!7 �� ���� � ���� � ��� � ����!����!7 � ��� � ����!����!7 � �� � ��!����!7 � 8 9�� � ��!����!7 ��� ��

����� 9�� � � ������ � ����:��� � ��� � ���

1144 Sheeran M.: Hardware Design and Functional Programming: a Perfect Match

.. ....... ...

pp pp

�!

�!

9�� �� +7 ��� ��� ��� ����� "2���2� ��� � � �� ��� "2���2� ��� &> �� ��

!� � ��:� �?�

-���� � �� ����� �B � ��� �� "2���2� ���� � �� ��� � � �� �� ��������

!� ������� �������� ���64 ���� � �� ��� ���� �� �� �� ������ �(� ��������

!� �������� ���64 ���� � � �� ���! � 9�� �� >���� � � ���� �� ��2�� � ��

�� �� !� � �:���� � � ���� ����� � � ���� �� �� �� ��

)!� ! �2�� � �������� ���64 ���� � !� � � �� �� �� ��2�� � ��������

���64 ���� � !� � � @ � �� �� �� ������� �� 6�� �� !� � ���� �� ��

� � � �� � ��� 9�� �� L� ��� 6�� �� �� !� ������� ���� � � �������� ���

�(� �� ������ � ��� ����� ���� �� �� "2���2� ��� � � ��� !���� �� ����� ��

)!� ! ������� � � �� � � �:���� � � ��� ��� � �� ��� ��� � � �� �� �������

�� ��� �� �� ������!�� ��������� ��� ��!:���� �� �� "2���2� ��� � � ��

�� �� � ��� ���� ��:� � ��� E����:" �� ��� � � ��� !���� ��� ��:�

�� ��� >� ���� �������� ���� � ������� ��� �� � � �� �4���� �� � �����

���� �� ����� ��� �� ��� !���� $E���� �� " ��� ��?&3�

�� +��������� �����&��,� ������� �������� ���!- ��������

� �:�� ���64 ���� � �� ��� � �� ��A� �� ���� � �� ��������� ������ ��

@ P >�� >� .� ���� �������� ���64 ��� � � ��� ���� ���� ������ ��� ��

1145Sheeran M.: Hardware Design and Functional Programming: a Perfect Match

. ...

... ...

pp

pp

..

9�� �� L7 ��� ��������� �� �� �� "2���2� ��� � � �� ����������� � ��

%��� �����

������ ���64 �� ��� �:��A� �� ����� 5� ���� ���� ��� �� �� ����� �� �� ��� �:

��A� �� ���� ���� � � �� � ���� � 6� � ���� ���������� �� !�� ���� ��

����� ���� ��� �� !���:��� � �� ��:� � ���� � ���� � � �� �� �� ������� ��

�� ���64 ��� ���� ������ ��� � � � � � ���� ���������� ���� ���

������� �� ����� ���! � 9�� �� &���� ��� 6�� �� ��� �� ���2�� ���

�� 6�� ��� � ����� (� �� !� ��� �� � ��� �������� (� # � ��� � � ��

���� �� �� � ����� +� ��� �� �� �� ���� � ��� ��� � �� 5� ���� �� ����� �

!���� �� ��� � � �� ���� �� ������ 5� ���� �� ��G����� �� !�� �����

�� �������� �� ���� �� �� ���� � � � �������� ���64 ���� � !� � !��� � ��

�������� ������ �� � @ P >� � >� ����� ������ � �� ������ ��A� �� ����� �

�� � � ������ ���� !�� ���� ����� � � �� �� ��G��� �� $%� � ���� >��&3�� '� �

�� �� �?:�� ������ ���! � 9�� �� & ���� !��� �� �� ��A� &�N �� �� �

��� !��� :��A� �� ����� ��� ������� �� ��� � 9�� �� >���� �� !� !��� :��A�

�� ���� ���� � � ����� � �! !��� :��A� �� ���� ���� � !���� !��� �� �� � �

�� �� !��� � �� � � ������ �� 5� � � ���� �� � !��� :��A� �� ���� ���� �

!���� !��� �� �� ���� �� � � ��� � ��� � ���� ��� ��� �:��A� �� ����� ����

����� � �� � ��� ��! � � ��� � ��� �:��A� �� ���� ���� � 7 !� ��� �� �������

� ������ �� !��� :��A� �� ���� ���� � � � � �� � !�� �� �� ��� � �� ���� � /�

!��� �� �� ���� �� � � ��� �� "�� � � ��� � ��� � � ���� � � !� � � �������

� !��� :�� ������ !���� !��� � ��� ���� ����� � � ����� �@�� ��� � ����� ����

� � � � �� D��� ����� ��� �� ���� �� ��� �� � �� ��������� �� �� ��� ��

�� �� ���!���� �� ���2!���� ���� � � �� � �� �� �� � �� ���� � ��� �

���� � �4���� ��

#� !� ��� ��� ��:� � >� �� � �� ����� ���! � 9�� �� &���� �� �� ��� �

�� ��2� � �4 ���� ������ �� '�� :E �� # �� ���� �� � �������� ������� !� �

�� ��A� �� �� ������ �������� �� �� ���������� ��� 9�� �� ?� ���� ���� �

1146 Sheeran M.: Hardware Design and Functional Programming: a Perfect Match

9�� �� ?7 �������� !��� :�� ������ � ��2� � ��� �:��A� �� ���� �������� ���64

���� � !� � ��:� >� # ��� (? �� �� ��� � � �� �& ����� ����

9�� �� �7 � !��� :��A� �� ���� ���� � ��� !��� ��� �� ������� ������ ���64

!� � �� ���� ��:� �

��� � ������� ����� ��� �� �� ������ ���� ��2� � ������� �� �G�� ��

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

���� ������� ����� �#� �� !�� �� ����� ������� �� �G�� �� ��������� ���

����� �� � ��� �������� ���64 ���� � ��

����� ������ ���� � ���� ��� �� ��� !�� !� ����! ��:� � �������

����� ��� ����!�� �� ���� ���� �� �� ��:� ����� ���� � � �� �� �� �� ���

����� ��� � �� !��� :��A� �� ����� -�!����� ��� � ������ ���64 ��� � � ��

� �� ���!��� ���� �� ���� �� ��:� � �� ���2!���� ���� �� ���! �

9�� �� �� ����� � !��� :��A� �� ���� ���� � � ,�������� ��� ��� � � �� �� ��

��� � �� ����� � �� ����� ����� �� �� ������ ���64 ��� � � �� ��

���� ������ �� ��� � � �� ( � �: ����� !���� ���� !��� �� ��:� � ( �� ����

� �: ���� � �� ��!�� ���� ����� !� � ��� 2�!������ !� �� !�� � � � � ��

�� ��� � � � � ����� !� � � ���!��� ��� �� ��� � �� �� ���� ���2!����

��� �� ��� � �� ��� � ���� ��:� � � � ��� ��� �� !� �� �� ��:� ���� ��

�� > � �� ���2!���� ��� ����!� � � ��2� ������ ���� ��� � ���� ��� ��

��� ����� ��� �� �2� � �� ��� �� � �� �������� ��� �� ��B ���� ��� ��� ���

����� � � � � $ ��� � �������� � � � � $ ������ � �� �� ����;�

������� � ����� � � � � $ ����� � ��� ����� � ���� ����;����;� � � ��������� � ����� � � � � $ ��;�����

1147Sheeran M.: Hardware Design and Functional Programming: a Perfect Match

0�� � "������(� 5D( O( -( , %Q0

� (?:?> (?:L( (+:L? (>:+? (+:L> ++:??

� ?&:��( L+:��> L�:�� +�:�? L&:�? ?�:�+

�� ��+:�?� ��&:�&� ��:�(+ ��:��� ��:�>> �L:�&+

�> >�>:((� >�+:>�L >��:&�& ���:>(& �LL:>&& �?�:>(>

�( L�>:���> (&�:+�> (&�:L>� &L(:(�� &��:((& &��:((L

����� �7 ��� ���� �� �� � �� �� �� ��������� �� ���� ��� �:��A� �� ����

���� � � ��� � �����6� ��� �

��� ��� ����� ��6� ��� �� �� ���!���� �� ���2!���� ���� ��� ����� �� ���2��

� !��� � � �� � �� � � ���� � ��� �� ������� ���

C�!� !� �� ��2� � ��� �:��A� �� ���� �������� ���64 ���� � !� � ��� � �

�� ��:� % �� �������� ���#� � ����� %� ��� � ����� ���� � � ���� 9��

��� � � �� ��:� (� �� ��� � �� ���! � 9�� �� �� 9�� !� �� � �� �� ����

!� ���� �� �! ��� � � �� ��������� !���� � �� �� ��:� � -���� !� ����

���! ��! � ��� � � �� ���� � !� � �� ������ �������� ���� �� �� � ���

� ���� ��� � �� ��:� � �� ��2� ���� � � �� �� ���� ��� �� � !� � ��!��

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

��� � � !�� �� ��������� ��� �:��A� �� ����� ��

��� ������ � ��� 2�! ��� �:��A� �� ���� ��� � � �� ��� ��:� ( ��

��� � � !���(� !���� �� �� �2� L? �� � $%� �� -����� >��(3� ����� � �!����

�� ���! ���� $%� �� -����� >��(3� !� � �� ���� �� �� 6� ��� ��� � � �! ���:

� � � �������� �� �! ��� � � �� !� � �� ��� ������ ��� 2�! ��� �:��A�

�� ���� ���� � �� ��� ��� �� �� ���� ��:� (� !���� �� !"# ���� ��:

� ��� �� ��:� ��� ������ C� � �� !� ���� �������� ����������� � ��� 2�!

��� �:��A� �� ���� ��� � � ���� ��� ���� !� � ��� ��� �� ��:� �

# !� �� ���� ����� �� �� "����� ��� � � �� �� ���� � �� ������� ��

� � ��� �:��A� �� ���� ����� � ���= � !��� �� �� ��� �� ��7 ���� ��� �:

���� �� ����� ���� ��� � �� � � ����2 !�� ��� �� � ��� ��� ��� � �

���� ���� !� � � ��� ���� � � ��� ���� �� ���� �� ���� �����������

��� ��� ��!�� ��� �� ��� �� ��� ��� ���� ��� �� �� 1%"# ����� � :

�� �� � �������� �� *���� *�� %�����:D������ � ��������� ��� ������� ���

������ ����� � �� "������(� ��� � � �� �!���� �� ��� ��� ���� �� ��

��������� ��� � �� � !��� ������� �������� ������ ��� �� ��� � � ��

���� � $-� �� ������� ���?3� !���� �� � ������ �� '�� :E � �� E����:

" ��� .� �� �� ��� �� !��� ���� ���� ���<�� ������� �� � ������� ��

���� ���� � !��� �� ��� � �� � �� � � �� >��+� 5� �!�� �� ��� � �

!� � � ���� �

# �� ���� � ���� �� � ���� !� � ������ �� ��:� � 9�� ��� � �� ��:�

1148 Sheeran M.: Hardware Design and Functional Programming: a Perfect Match

9�� �� �7 � �! �������� �� �������� ������� !� � ?> �� �� ��� � � ��

��:� (� 5� ���� ��� ��� � � �� "������(��

����� �.� � ��� � �� ��:� +� �>� �� �������� ���64 ���� � �

�� + �� � � � �� �� �� !���� ��:� �� � � �� ��4�� � �� ��� � � ��

�� ��� ������� �� �� �� 9�� ��� � �� �������� ��:� � + �� � � � �>�

�� �� !���� ���� !��� �� � ���� �� � ���� ���� ��� ��� � �� ���� � �� ���!

� 9�� �� ��� # ��� ��� �4��� ��� >(+ ����� ���� '� ���������� �� "2���2�

��� � � ��� ��� �>� �� �� ��� ((� ����� ��� �!� � ��� � ? �� ��:� L+��

#���� ����� �� �� :�������� �� ������ �� �������� ���64 ���� � � ���! �

��� ����� ���� ��� � ��� ������ ���� ��� ���� %��� ������� ���� � �:

� ����� � ����� � �� �� 6�� ��� � �� ��� ������ �� ��� �� ���� � � :

!��2 �� � ����� -��2��� ������� �� ���� ��� R6� �� � ���� �� ������ ��

�� 2�� �� ���� !���� ������� �� �� ���� � �� � � � � ���� ��� ����

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

��� �������� ���64 ��� � � ��� �� !� ���� < � ��������� ���� � ������

�� ��� ���� �� �� �� �� �� ��� ���� � �� � ��!��� ������� ��� ����� � !��

�� �������� �� ��������� # ���� ������ # ���� ���� � ������� �� � ��

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

���� � � �� ��� ������ ������� ��� ���� !�� ��� � � ���� ���� !� � � �������

�� ���� ���������� ��� ��� �� ���� � �� -� �4������ ��! !�� � �� � �G �� �

��� ��� ����� ���� � ������� ���� �� ���� ��� ��� �� �� ���� ��! ��� �� ��

������ �� ��� ��� ��� �2�� ���� �� ���� �� ���� �:� � ���� ������ ���

�� ����� � �� �4�� �� �4 � !���� ���� ���� �� ������� ' � ���� ��

6�� ���� � ��� ���� ���� ������ � � � ���� ��� ��� ���� ��� ��� �� !� ��/

� ��� �� ���� ���� � ����� �� ���� ��� �4������� �� ���� ������� # ������

������ �� �� �� ������ B �� �� �� ��! � ����� � ���� � � �� ���� � ����

1149Sheeran M.: Hardware Design and Functional Programming: a Perfect Match

�� �4 �� ����� ���� � � ��� �� ���� ��� ���� � � �� �������� ���� ��� � �

�! ���������� ������ !���� # ���� ������ �������

5� ���� ��� � ������� �4������ ��! �� ��� �� �� �� ���� � ��� �:

���� � � ��� ���� ��� � � ��6� ������ ������ ���� � � ���� �� ��6� �� ��

�"���"* ��� �� ����� �� ��� ����� ��� -��2��� � ����� � �� ��� �� :

������ �� �� ��� � ����� � ���� � � :��� � ��� � �� ��6� �� �� #!� !��$��

# ������ ������� -��2���:����� ������ ������ ��� ������ !� � ���� � :����� �:

� � �� � � �� �� ��� � �� ��� ���� � ����� ��� ��� �����!:��� ��

�� �� �� !�� ���� ������ �� !� ������� # � 6�� ������� ��� # �������

� �� �����! !����� �� ������ �� ��� ����� �� �� ��� �� � �� ���� �

!����� �� ��� ��� ������ �� � ����� � ����� ���� � � ���� ������� ��� ��

��� ��� $"������ >��&3� ��� �����! ��� �� �� ������ �� ������� �� ������ ��

������� �� ������ �� # � ��������� �� �� ����� # ��� �����! ��� �� �

��2� ������� ��� ���� � ��� � ��� �� ����� �� �� � � ������ ��� � ��

���� $"������ >��(3�

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

-���� # ����� �� ������ ���� � � � �� ����� ���� � ������� ����� � ������:

�� ��� �:� � ���� ������ ��� �� ��� ���� ������ �� ��� �� �����

� ���� � �� ��� 9�� �4������ 9�� �� �� ���!� � L(:�� �������� ���64 ���� �

�� �� !��� ���� �� � � � �� ����� ���6��� !���� �� ������ �� �� ���� �

��� � �� ���� ��� �4����� �� �2� ���� !��2 � "������ � �� ������ ��:

����� �� � �:��:���� � � ���� � � $O������� �� ���� >��&3� ���� �4�����

��� � ������ �� ����! ������ � �� ��� � �� � "2���2�:��2� ��� � � �� � ��

���� �

�� ������ � � � �� ������� ���� � ��2�� ���� � � ��� ������ ��� �� !��2

� ���� �� ���� � � ��� � ��� �� ���� � ����� ����� 9�� �4������ �� � � ��

&��� ������� ���� � �� �� �������� ���� � � �������� � � ������� � ��

� � �����! ��� ���

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

����� ������ � ��*�� �� �������� � ��*�� ����� ��� �� ��

���� �� !�� � � ��� � ������� � �������� ���64 ���� � �� � ��6� � �� ��

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

������� ������ "��������� �� �� ������� �� ��G����� �� !�� ��� � ��

�������� ���� � �� �� �������� ��� ��� ��� �� ���� ��� ����� 9������ ��

�� ������ !���� � ����� �� ������� �� !�� ���� !� ��� � � ������� ��

������� ���� ��� !���� �� �� #!� ������ ���

1150 Sheeran M.: Hardware Design and Functional Programming: a Perfect Match

64 lines, 23 stages, 26 max fanout, horizontal wirelength is 79, 137 operators.

9�� �� ��7 � �������� ���64 ���� � ���� �� � � ������ ����� ���6�� � ��

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

�$��� � � � ��� � $ ��� ���� ��� ������< ! ����� !� ������ !� 8 ! (� ����++����� ������� � � $�' ������� ���

���� �� � ����� ����$= ������ � � � � $ ++++����� �� � ����� $���������= ������ � � � � $ ++++

9�� �� �� ���!� !�� ������ !�� �� �� ����������� � � ��� �� ���

��� �� "2���2� ��� � � ��� 5� ��� �� !� ��� � �� �:���� ��� �����

�� � ��!:��:� ��� �� �� ��� ������� � ��� ��� �� �� �4����� �� �� ��

�������� ������ ��� �� ������� �� �� �� �4 � �� �� �� ����� � �� ��

�����! ��� ��� �� ������ !���� �� �� ���� ������ 9�� �� �> ���!� �� ��� �

��� � � ������ ����� ���6��� !���� � 9�� �� �& ��G��� ������� ���� ��� �����

� ������� � � ������!�� ���6���

# !� �� �� ���� � �� � 6�� ������ �� �������� � �� ���� �� �� �� ��

�����! ��� �� �� �� ��� �� ����� ��� -���� �� �������� !�� �� ��� ��

�� �� ��� �� ���� �� ����� �� ������� # �� < � � B �� �� �� ��� ���

�� ��B ���� �������� � � ��� � �� �:� ����� ������� �� �� ����� ����

"��������� � !� �� �� �������� � ��� �� �� �������� �� !����� �� !� ��� �

� � ������ ��� � �� ��� ����� �� $"������ >��(3� �� � ���� ���� �� ��

2�� �� �� ����� ��� !���� !� �� �� ��� � � �� ����� �� �� �������

C� � �� �� ��� �� �! �4������� ���� �� �������� ���� � � �� ��! �

������ �� !�� ���� ���� �� < � � 6�� � ��� � ��6�� � � ���� ������:

���� �� � �� � ��������� �G�� ���� -�!����� !� ���� �� !� �� �� �� ��� E��

������� ��� ��� �� � � �������� ��2 � ��� �:��� �� ������ ���� # ��� ��

�� �������� � ���� - ����/ ����� ��� �� ��������� �� ��������� �� ��� �:

��� �� ������ ��� $- ����� ���+3 � �� �������� �� ����� �� ���� � � ��

��� ��� ��� � � ���� �:� � ���� ������ ���� ���� �� �� �� ��� �����:

� � ��� �����:��� ����� �� �� !�� � � ���� ���������� �� ����!��� ��:

���� ���2�� ���� ���� ���� !��� ��� ��2��� ���� � � � �� ������� � ��

1151Sheeran M.: Hardware Design and Functional Programming: a Perfect Match

64 lines, 25 stages, 4 max fanout, horizontal wirelength is 69, 105 operators.

����� ��� � ��!:��:� ���� ��� �������� ���64 ��� � � ���

64 lines, 12 stages, 4 max fanout, horizontal wirelength is 120, 115 operators.

����� ��� � �������� ���64 ���� � ���� �� � � ������!�� ����� ���6���

�� �����! ��� �� "��� ����� � !��� ��2� ���� � ���� �� �����! ��� �� !� �

!����� �� !� ���� ��� ����� � � � ��� ����� �� �����! ��� �� !��� �� ��2��

� �� ���� � � ���� ������ !���� ,�� � ���� �� B �� ��� ����� � ��

���� ��� ���

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

# ��� �� >��� # ����� �� �� �� ��!�� �� �� ���� �� �� �� ��������

� �� !�� �� �� ���� � ����� ���� � � �� �� �� ������� �� �������� ���64

� ���� �� � �! ������ �� �� � � ���� ��� ��� ���� � ���� � ������� ��

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

�������2 ���� �� ����� �� ��� ���� ������ � ���� ���� �� ����� �4����� ��

���� �� !�� � �� �! ������ # �� ������� �� ��� �4����� �� !� �� ����

��� ���� ��� � � �� � ����������� � � ���� � ����� ����!��� ������� ��

��� ��� � �� �� 1-0%�

C�4 � # ���!�� ��! �� ������ �� �� �:� ����� � ����� � �� ��

������ ���� � � ����� � �� ��� �� !�� �� ����� ��� ��� ���� � � �� ���� �

1152 Sheeran M.: Hardware Design and Functional Programming: a Perfect Match

���� �� �4 �� �� �� �� #� ����� ����� �� �� �� �������� ��� �� �4��:

��� �� �������� ���64� �� �� ��� �� � ������ ��� ��� �� �� �:� �����

������ !� �� ���� �� �� �� �� ���� � � !� !��� ����� �� ���� ����� � �� �

�������� �������� � �� ������� �� ���� �� �������� �� ���� � � !� � ��G���

�:� � ���� ������ ��� � �� �� ������� ������ � ������� �� � ����

� � ���

"� ���� # ���� ��� ��������� � �� ��� ��! ����� �� ��� ��� �� � ���� � ��:

���� �� !�� �� ������� �� �� # ��� ���� �� ���� ��� ��!��= 5� ��� �����:

��������� � ��� �� ��� ���� � ����� �� �2�� ���� �� �� �G�� � �� !����

�� ���� ������� ��� ���� ��A�� �� ���� ��� $�4����� � ���� >��+�3� ��� ��:

����� ��� ��� ���� ����� ���� ����� !���� ���� �� ����� ���� �� ������� !��2

!� � J���� )��� � F �� ��� ���������� $)��� �� "������ ����3� ��� ��

�� ���� ��� ����!� � ��� �� 2�� �� ������ ���� �� � � ���� �:� �����

� ����� � �� �� ��� ��� ���! ����� � ���� ������� ���� �������� � �4:

����� �� � �� � ������� �� F�:����� �� ��� ��� � !���� ����� ��� ��� �� H�!

� �� ����� ��� �� ������ ��� ��� �� � �� � ���� . � ��� �� � ��2� ���

��!�� ����� �� ����� �� ������� B ��2�� �� ������� �� � � 6�� ��� � � ���

��������� -���� ����� !� ���� �� !� !��� �� ���� � �������� � ����� ��

���� ��� �������� ��� �� � ��� �:��� �� $- ����� ���+3� 5� ��� ��� �� :

����� � ���� �� � !��� � ����� � ���� � � !� � ��! �!� ���� �� ��� �� �� !�

���� � ������� �! �� ���� �� ����� �� ��!:��!�� ���� � ��

5���� ��������� � � ��! ����� ���� � ����� ��� ����� � � !� !��� �

����� �� �������� ����� �������� ���� !� 6� �! ����� �� ����6�� ��

�� ���� �� !��2 ������� � �� ����� �������� � ������ ������ �� ��� ��� ���

� ����� � B �� �� �� 8�� �� �� ���� ��������� � ��� ����� �� ���

� ������ ������ �� ��� ��� ��M;� ,� � � ��� ��!�� �� �� ���� ��� ������

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

D�� � �� ����� ������� !� ��� � ��� ����� !� � �� ������� ������� �� ��!

� �� �:� � ���� ������ �� ������ ��� ��� �� ������ � !��� �� �����

�� �������� �� ��� �� ����!������ ���� ��� �� �� �����! ��� �� �� ��

����� � # �� ������� �� ���� ��� ��� ���� !�� �� � �� �����������

*��������� ��� ��� ����������� ���� � �� � �� ��� � �����

�� ��� ��� B �� �� �� 8�� !� ��2� ��6��� !��2M;� D���� !��2 �

��6�� ��� ����!��� ����� ��� � �� � ���� ��� �4������� � ��� �� �� ��:

��� $)��� �� "������ ����� ./0���� �� F ����� >��(3� C�!� ���� "����

�� ��� ������� �� � # �� ���� ������ � �� �� #01 ��� �� K # ���� �� 0����

!� � 1���6�� �� $"����2��� >��(3� # ����!� �� ��6��� �� � ����� ������ ����

����� ����� ��� �� !�� � ������� � �� � �� ������� !� � ����� ������:

�� �� � �� ���� � ��� ��� � �������� �� ������� �����6�� ��� ��� ���:

���� �� �� �� � ��� ����� H�! �� ���2� �� �� !� � � ������� �

�� � �! H�! �� � � �� ������� � ������ �� � ��� ���� �� � ������ :

1153Sheeran M.: Hardware Design and Functional Programming: a Perfect Match

��� �� �:� � ���� ������ ��� � �� �� ���� �� ��!�� ��� �� ��� ��

����� ��� �� �������� ������� ����� �� !���:������� !��� �� ��� ����

��� �� �� ������ �� #01 �� � �� ��� � �� ��H�� ��� � � ���� ��� ��� F�:

9%�� $J� �� � ���� >��&3�

9�� � �������� !�� ��� �������� � ���� � �� � �� � ��� ��� #01

�� �� � �4�� �� �� � �� �� ��� # ������ ��� B �� ���� �� � � �� � !� �

� ���� ����� ��! ����� �����6�� ��� !�� ��� �� �� � �� � �� �� � M� -�!

�� !� ����� �����:����� �� � � ��2�� ����� �������� ����� � �� ��� �� ��

�:� � ���� ������ ���M �� �� 2�� �� ���������� �� ��� ������� �� !��

� ���� � -�!2 $,� ��!� �� %� ��� ��� ����3 �� ���� � !��2 � ���� ��:

����M �� !� ��2� �� �� 1 ������/� ����� !��2 ��2�� ���� � � �� �:

���� $1 ������� ���(3 � �� ����6�� �� �� ��� ��� �� ���� � �M �� !� ���� !� �

J������� �������� � %������ "������ � ��� ���� � ����� � �� � �����

� � ���� � !��2� � ����� ������ �� ��� �� �������� �� ����� ����� ��

����!��� �����M �� !� 6� ���� !��� � �� �� �:�� � ����� �� ���� D���:

���� "�� �� %���� 0���� ��� ���� ��2� "�� ��� $."�#� >��+3M 5�� �!

����6�� �� �������� �� ����� �� !� ��� � ����� �� ����� �� ��� ��� �� �

!���� ����� �������� ��� ����M ��� � ��� ������ �� #01 !��2� � 64��

��A� �� � �� ��� �� ���� � �� ��� ������ ������ B �� �� �� 8�� !� ����� ��:

������� � ����� ����� �� ����6�� �� �� ����M;� - /� !��2 � ����� ��

����6�� �� ��� �� 0�%:D1�% ��� ��� $'���2 �� - )��� ���?3 �� ���

���� !��2 �� � ���� �� � ��� ���� � �� �� ��� �� ' � �� ������ �

�� ���� -�!� ��� �� ���� �� !� ��2� �� �� �� �� ������������ ����6�� ��M

#���� � ���� � � ���� ���������� �� !��� �� ���� � ��� �� �� � ���� ���

������ ������� !��� �� � ���� ���� � ���� � ��������� ���� ���� ����� �� �:

��� �� ����� C�!� !� ��� � ����� ��� �� ����� ��� ���������� �� ���

�� ��� �� 64��:��A� ������ ������� � ��� �� �� ����� �� ���� � �� ,�

���� �� �� �� ��� �� �� ����� ��� ��� � � � ��� � �� ���� !�� �� ��

���� � � ��������� !��� ��� �� ��� � � �� �� �� �������� �� � ��� �������

,��� �� ��!�� ��������� ������6�� ����� �� ���� ����� � ������

� �! 2�� �� 8 ��� �� �����; � �� ��� �� !�� ���� ����� �� �� � ���� �

���� $,��� �� ��!��� ����3� ��� ��� !�� � 8���� !� � ������4� � ��� ��

�������� � �� ����������� ������6�� ���; $��!��� >��&3� # ����� � �� ��

� �� ��� � �� � � ���� ������ �� � � ������ # ��2 !� !��� ��� �� ���

2�� �� ��� �� ������ !�� �� ��� �� ���� ���� ��! ����� ����!��� �����

� ���� ����� � � ���� ����������=

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

���2� � D��� �4����� �� "� �� "��� ��� ���� � �� �� �� ����� �

� � ������� ���� �� ��� ������ ���� !��2 �� � ���� � ��� � �� �� "!�����

1154 Sheeran M.: Hardware Design and Functional Programming: a Perfect Match

F������� �� ���� 1� ��2����S��� � ,�� ��2� � F������ ,���� �� ,�� �

, ���� �� !�� ���� �� �� ����� � � � ����2 � �� '��A���� "������ �

� *��������� %�� ����� >��+� �� � !�� � ��� ��� �� ������

!�"�������

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

-������� .������� � � /������� � � ��� �������� ���� �� �� ��� ����� ���� ������ ��������� ���� �(((�

"#����� � ���� �$$'�& #����� � (�� 0������ � 1�� � � ,����� � +� �$$'�!� 2����3����4����� ������ ����� � � �� �� �� ��� ����� ��� �!������ ��"������#���� �� �$$� � 5����� 6�� � 0����� ,��� ��� ,��� ����

"������� 789:& ������� ;� 789:!� 0� �������� � �� �������� ��� �� � 6��4�� ����<3 � �� �� �� ���� � � �� ������� � �������� ������������� �� �"#��� �7 :!37�'=7:$�

"��� ��� � ���� 788$& ��� ���� #� ,�� 0 ���� �� /�� � � .�� � >� (� 788$!� # ����� ������� �� ���� ������ �� ������ � � �������� � �� $ ����� ������� ��8=�9:� ?�� ���4-���� � ��

"�)���� � ���� 788:& �)����� ?�� 0������ � 1�� ,����� � +�� � � ,� ��� ,� 788:!� 5���3-������� .���� � -������� � ��� �������� ���� �� �� %�������� � �� �������� ��%�� ����� 79%=7:%� #0+�

"���� � � ���� 788�& ���� �� .�� ?���� @�� -���� .�� 5���������� 1�� � � +����?� 788�!� ����� .������ � -.5�� ��� �3 0 �� ����� /������ ����� & '���� ���$� �� 8 �!3'% = ���

"���� 78:%& ���� @� 78:%!� A� �� �� �� ������ � � ���� �������� ���������� � ������ ������� (� ��� #� �' 7!3�9=���

"���� � @�1� � ���� 788�& ���� � @�1�� -������>�.�� ,� ���� �4/� �� ����� #��,�� B�� A�� #B�B� #�� 0�� �� ,� 4��� (������� ,�� 1����� ,�� 1����� C�� ?����#�� D������ ,�� @� )� � @�1�� ,������� ,�� ,������ ��@�� ,����� >�� � � /����� >� 788�!� /�,3 � ����� �� �������� � � �� ������ � @�)��� #��� � � ����� #�-� B� ���� ������ � ������� �� �" ���"�" ��� �������� ���� �� �� ���$� #��� �!������ �# � ����� 77$� � ��� )��� �� ���$� ������ �����%�:=%��� ,��� ����

"��� � � 1� �� 78:�& ��� � @� � � 1� �� -� 78:�!� # ������� ���� �� ��������������� ���� ' ���������� �� ���$� �� 04�73��$=��%�

"���� � � -� ;��� 7889& ����� �� � � -� ;��� 2� 7889!� ��� .E#54(/#5-������� .������� 5� ����� � � �� E�� � �� A���� ,�������� � � /����4��� � �� A+8$$7 +����������� %� ��� ��"��� �� ����� ������ 77 7!397=7$%�

"0�� � ���� 788�& 0�� � ?�� ,������ +�� ������ � 0�� � � F����B�)�� /� 788�!�.���� F����B�� � 0����4,��� #����� � � ���� 0����45������ #����� ��4� � +���4���� �� �� .� ���� ?������� �� ���� ' ���������� �� ���$� ��%7 :!38�$=8�$�

"0�� � ���� 788�& 0��� C�� .�������� .�� .����� ;�� -���� A�� ��������� +�� @��� 0��F���� >�� ;� � � ��� � � @����� +� 788�!� ����� .������ � -.5�� ��� 730.5 ����� ��4-.5� ����� & '�� �� ���$� �� 8 �!3�8 = :7�

"0������ � ���� �$$7& 0������ � 1�� ,����� � +�� � � ,� ��� ,� �$$7!� ��� .���� � � /������� � � ,��� 0��� � �� �� �� ��� ����� ��� �!��������"���� ��#���� ����� �7%% � ��� )��� �� ���$� ������ ����� �''=��8� ,��� ����

"0 ���� �$$�& 0 ���� 5� �$$�!� 5� 0 ���G� @���������� ?�� ���3 ,��� �F���� ��3HH�����������������H�����H� ���H@���������������

1155Sheeran M.: Hardware Design and Functional Programming: a Perfect Match

"A�B������� �$$�& A�B������� �� �$$�!� ����� ���� #�� �����* # +��!� ������� �� �� ����� �!������� ,� ����� � ��

">�� �� � ���� �$$�& >�� ��� ;�� +������ ��� � � FG5����� ;� �$$�!� # ��I������� �� �� �� ����� �� �������� ����� � � ����� ���� �� @������� @���?@>4@@4$�47�� ?������� � @������� >���� F���� E ������� 0���� � 5��4����� ��3HH�����������������H��������H���H>�� ��4�$$�4@A5�����

"-�������� � ���� 788�& -��������� 6�� 5�� ���� A�� � � @��� �� ?� 788�!� ,� 4��� �� �������� � � �� �������� � ������� ������� � '"� � ���� ����� ��#��, ��� ��"������� ��� ������ '�"������� #�#�'-./� 2������ � 0���4� �� ����� :�=8�� ,��� ����

"-� � � 0���� � 78:9& -� � �� � � 0���� � .� 78:9!� A�� #���4(��� /5,�#������ � ���� ���$���� �� ���$� # ��"����� �(((�

"-� B�� �$$%& -� B�� @� �$$%!� # ������� � ��� �� � ���"������ �� � �� ������� ������ ����� �7�' � ��� )��� �� ���$� ������ ����� 7:�=�7$�,��� ����

"-������ 788'& -������ ;� 788'!� ��� .���� � � ?���4��� � � 5������� � #������� %�������� � �� ������� ����� 8�' � ��� )��� �� ���$� ����������� '�=8�� ,��� ����

"-� ;��� 78:'& -� ;��� 2� 78:'!� %�012�� # �!� ��� �$ ����� � ?�. ��4���� E ������� � ����� � #��� �

";� � � 78:%�& ;� � � ,� 78:%�!� #��������� �������� � � � ������ ����� �� � ����$�� �� � �� ������ �������� ����� �7:=��9� #0+�

";� � � 78:%�& ;� � � ,� 78:%�!� ����"��� �� ������� ����� � �� �� ����3������� +�� ?�����

"; �� � � ,����� � 788$& ; ��� >� � � ,����� � +� 788$!� 0����� ����� � @����� ,�� ����� ;�� ����� %� ��� ��"��� �� ��� ������ ����� 7�=9$� 6��4-��� ��

"; �� � � 6����� � 788%& ; ��� 6� � � 6����� � A� 788%!� #����� � ������� 3# ���� ���4����� � �� ������ � ������� � ����,��4 �� ����� �� ���$� ������ ����� '�9=���� FE?�

"1������ � ���� �$$%& 1������� F�� ,����� 1�� � � ����� 2� �$$%!� # ��������� �� ���� � ������� ���� ����� �������� � %� �" ��� �������� ���� �� ����,��� ������ 5���6%'7� ����� �%8=�':� #0+ ?�����

"1 ����� 7888& 1 ����� ,� 7888!� # A����� � #������ ���� ���$� �� ���$� # ��"����� ����� �99=�:%�

"1��� � � , �� 789�& 1���� ?� � � , �� -� 789�!� # ?������� #������ �� ��(��� ,��� � � >� ���� 0���� � @������ �� (J��� �� ���� ' ������������ ���$� �� 04�� :!39:�=98��

"5���� 78:$& 5���� .� 78:$!� #������� � � � A� �� �� ?������� � 5� ����� -������� ,� ������ +����G� ������ E05#�

"5� � � -���� �$$%& 5� � C�40� � � -���� ;�42� �$$%!� # �� ������� � 4����� � ����� �������� ����� ������� ��� ����� ����� (� ��� �� �� ���� ������� �,�� ���$����� �% 7!389=7$9�

"5� � ���� �$$�& 5� � C�40�� -��� C�4-�� � � 5��� 0�41� �$$�!� 0 ����� � -%� �A�� .���4,�B� F����� ?������� ?���� 0������ '" (� ��� �� �$ ���$������% �!3�98=�$%�

"5��� 788$& 5��� 2� 788$!� # ����� � ����������� ����� � �� 4�� ���� � �����4�� � � ��� �������� ���� �� �� #$$����������$��!� # �� � ����� �� �����7��=7%%� �((( 0����� ,���� ?�����

"5�� � � ; ��� 78::& 5��� 2� � � ; ��� >� 78::!� A�� ��������� ����������� ������������ � +�� �� >�� ����� '" ����� �� "� ��� ����� ���� �!������� 6��4-��� ��

"5�� � ���� 788$& 5��� 2�� ; ��� >�� � � ,����� � +� 788$!� 0�����4����� ���� ������� ����� ����� � � �������� � �� $ ����� �� ����� ':8='8:� ?�� ���4-����� ��

1156 Sheeran M.: Hardware Design and Functional Programming: a Perfect Match

"+����� � � 5�� ������� 7888& +������ ;� � � 5�� ������� ;� 7888!� (���� 4��� +������������� #������� � ��� �������� ���� �� �� ���$� �#��� �!������� ����� 7��� � ��� )��� �� ���$� ������ ����� �::=�$$�,��� ����

"+�+���� � 7888& +�+���� � 1� 7888!� # ��"������� �� "� ��� � �!������ �������$��������� ���� �"�4���� 0��� ���

"+��� � � 0 ���� 78:$& +���� 0� � � 0 ���� 5� 78:$!� ��� ������� �� ���������� #���� 42������

"+���� � ���� 78:'& +���� � ;�� ?���� �� 6�� � � ����� �� 78:'!� ��� .���� @�� ��� � (55#� � -������� .���� � � .������� 5� ������ � �%�� 8�"��� �������� ���$���� �� ���$� �� ��� ��� �$���� ������� ��� �"� #$$���������� ����� �$�=��$� 6��4-��� ��

"+���� � � ,����� �$$7& +����� #� � � ,����� @� �$$7!� -������� �� ����� ��4� � ��I � � �������� ������� ����� � � ���� ���� � � ������� �� �" ���"#������ ��� �" 9� 4��� ���� �� �� �� �� �� ��� ����� ��� �!������� ��"���� ��#���� ����� �7%% � ��� )��� �� ���$� ������ �����7�=�8� ,��� ����

"FG. ���� 788%& FG. ���� ;� 788%!� # ����� ��� ��� � �������� ��� � �� ����� ������� ��� �� % �!3��8=��:�

"FG. ��� � � @�� ���� �$$%& FG. ���� ;� � � @�� ���� >� �$$%!� .������ �� 5�������� ���� 0���� 5������ #���� 0������ (� ��� �� %�������� � ��� ������� 7% �!3�89=97��

"FG. ���� 78::& FG. ���� ;� �� 78::!� -����3 -������� �������� � � A� �4� �� 5� ����� ��� � @������ (J��� � � � -��� F���� 0��� � � A���� � +�� �� >�� ����� '" ����� �� "� ��� ����� ��� � �!������� 6��4-��� ��

"F,0�� �$$'& F,0� �$$'!� ������ :�� ������ �� �� ������ F�� ,����0� ������� ��������������

"?��� � ���� 78:'& ?���� .�� ,������ +�� � � (�������� +� 78:'!� ���3 # � ��� 4�� �� �� ����4����� ��������� � � ������� � � �� ����� � �������� ���������� %�������� � �� ������ ������� ��� ���$� # �"���� � ����� �$7 ���� )��� �� ���$� ������ ����� ��:=�''� ,��� ����

"@�� ��� �$$�& @�� ��� 2� �$$�!� 2�� �� ��� � �� @�5 -��B �� +�����4����� � � ,���� .���� <� � ���� ���� � �� �� �� ��� ����� ��� �!��������"���� ����� �:�$ � ��� )��� �� ���$� ������ ���� 7� ,��� ����

",����� � � ?�� ; ��� �$$�& ,������ �� � � ?�� ; ��� ,� �$$�!� ������������������ � �� -������� � 0���������� +� +� ��� ����� #�� ��;��#)���4�� 9� 4�"�$� ����� 7=7�� #0+ ?�����

",����� � 78:�& ,����� � +� 78:�!� �A?� � ��������� /5,� ����� �� ������ .� ?����������� ?������� � @������� >���� F���� E ��������

",����� � 78:%& ,����� � +� 78:%!� ��A?� # 5� ����� �� /5,� .���� � � ������� %�������� � �� ������� ����� 7$%=77�� #0+�

",����� � 78::& ,����� � +� 78::!� @���� � � � ,���� � @���� � +�� �� >������� '" ����� �� "� ��� ����� ��� � �!������� 6��4-��� ��

",����� � �$$�& ,����� � +� �$$�!� A� �� � ���������3 �������� � � � � ����� � ���4���� �� ��� ���� �������� � �� �� �� ��� ����� ��� �!������ ��"������#���� ����� �:�$ � ��� )��� �� ���$� ������ ����� %=7:� ,��� ����

",����� � �$$%& ,����� � +� �$$%!� >� ���� � ��� ���������� ��� � ������ ��������� %� ��� ��"��� �� ���$� �#��� ������ %��#�� ����� ��7� � ��� )��� �� ���$� ������ ����� �=�$� ,��� ����

",����� � ���� �$$$& ,����� � +�� ,� ��� ,�� � � ,K�������� >� �$$$!� 0����4� � ,���� ?������� E�� � � ���� � � � ,#�4,����� � %� ��� ��"��� �����$� �#��� ������ %��#�� ����� 78'% � ��� )��� �� ���$� ������� ����� 7$:=7�'� ,��� ����

",� ��� 788�& ,� ��� ,� 788�!� 0����� # ������ �� 6 4,� ���� � ������� � �

1157Sheeran M.: Hardware Design and Functional Programming: a Perfect Match

�������� �� �� �� ����� ����� #4' � �%�� ' ����������� ����� 778=7�:� 6��4-��� ��

",��� ���� 78�$& ,��� ���� ;� 78�$!� 0 ��� ��4��� ����� ����� ��� ' ���� ����� ��� ���$��� (0483���=��7�

",�������� �$$%& ,�������� >� �$$%!� F���� ���� � � ������ ��� � ������ � ����� ������ � �' � � � ��� �� � ���� ���� � ����� ��� '�� �� � �$ 5�#'�7������ �=�� �(((�

"/����� � ���� 78::& /������ .�� ;�� ��� ?�� 0������ � 5�� � � .� +� � -� 78::!�A���� ���� �J��� �� ?��� � 0���� ��� � ?��������B�� -������� ��� � 0�4��� ��� ?������� � ��� ������ �� � +�� �� >�� ����� '" ����� �� "� ��� ����� ��� � �!������� 6��4-��� ��

"/������� � 788%& /������� � ;� 788%!� F ������� � � ������� ���� ' ������������ ���$� �� %�3:3:�:=:98�

"L������� � � ��� � �$$�& L������� � @� � � ��� � .� �$$�!� F����B�� �� 4����� � ���4�4������� � '"� �������" #������ ���� �� �� �������� ������� ��� ���$� �� ����� :�9=:9�� �(((�

"L��� ���� � � 6������ �$$�& L��� ����� @� � � 6������ �� �$$�!� ?���4?������ �� F����� �%4�� 0����45������ #������ � :.�" � �$�� ������������ ���� ���� ��� �������� ����� ��7=��%�

1158 Sheeran M.: Hardware Design and Functional Programming: a Perfect Match