Journal of Universal Computer Science, vol. 11, no. 7 ...
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