Top Banner
--&KLFRDQG(0DFLL(GV3$7026/1&6SS± 6SULQJHU9HUODJ%HUOLQ+HLGHOEHUJ $Q$V\QFKURQRXV9LWHUEL'HFRGHUIRU/RZ3RZHU $SSOLFDWLRQV %-DYDGL 01DGHUL +3HGUDP $$I]DOL.XVKD DQG0.$NEDUL 'HSDUWPHQWRI&RPSXWHU(QJDQG,QIRUPDWLRQ7HFKQRORJ\ $PLUNDELU8QLYHUVLW\RI7HFKQRORJ\+DIH]$YH7HKUDQ,UDQ ^MDYDGLQDGHULSHGUDPDNEDUL`#FHDXWDFLU ,&'HVLJQ/DE'HSDUWPHQWRI(OHFWULFDODQG&RPSXWHU(QJ8QLYHUVLW\RI7HKUDQ .DUJDU$YH7HKUDQ,UDQ DI]DOL#XWDFLU $EVWUDFW 7KLV SDSHU SUHVHQWV D UREXVW DQG ORZSRZHU 9LWHUEL 'HFRGHU GHVLJQHG EDVHG RQ DV\QFKURQRXV DUFKLWHFWXUH 7KH GHVLJQ LV EDVHG XSRQ 4XDVL 'HOD\,QVHQVLWLYH4',WLPLQJPRGHOZKLFKOHDGVWRDUREXVWIXQFWLRQDOLW\IRU WKH GHFRGHU 7R ORZHU WKH SRZHU FRQVXPSWLRQ RI WKH GHFRGHU IXUWKHU DQ RSWLPL]DWLRQ WHFKQLTXH WR UHGXFH WKH SRZHU GLVVLSDWLRQ LV DSSOLHG WR DGG FRPSDUHVHOHFW$&6XQLWRIWKHGHFRGHU7KHVLPXODWLRQUHVXOWVVKRZVD UHGXFWLRQ LQ WKH SRZHU FRQVXPSWLRQ IRU WKH DV\QFKURQRXV GHVLJQ FRPSDUHG WR WKH V\QFKURQRXV GHVLJQ LQ µP &026 WHFKQRORJ\ ZLWK D SRZHU VXSSO\ RI 97KHWKURXJKSXWIRUWKHFLUFXLWLV06V ,QWURGXFWLRQ Many of digital transmission and storage systems use Forward Error Correction (FEC) techniques for correcting errors occurring during the transmission, storage, or retrieval of data. Viterbi Algorithm [480,2] belongs to a large class of FEC known as convolution codes which are used in a wide range of applications such as wireless communications, digital mobile telephony, digital TV broadcast, CD-ROMs, and magnetic disks. The basic idea behind the Viterbi decoder is to maximize the correlation between received vector and the table of possible codewords while sequentially performing the opposite operation of the encoder. The Viterbi decoder operates by finding the maximum likelihood of the decoding sequence. The quality of a Viterbi decoder design is mainly measured by three criteria: coding gain, throughput, and power dissipation [3]. High coding gain results in low data transfer error probability while high throughput is necessary for high-speed applications. The design of Viterbi decoders with high coding gain and throughput is made challenging by the need for a low power circuit implementation. This requirement mainly stems from the fact that the Viterbi decoders are often placed in communication systems running on batteries where the power reduction is a must. Several attempts for reducing the power dissipation in the Viterbi decoder have been
10

An asynchronous Viterbi decoder for low-power applications

Apr 25, 2023

Download

Documents

Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: An asynchronous Viterbi decoder for low-power applications

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

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

+����.�����������'%���,���'�%�/�������01�*(23������� ����2���4-�%�

�5'!�%6/' 6��0���/!36'%�� &��� ��7 0�%/�6� ��'� �*�&8�

�/%4�-%�9 .'%�68��0��'� �*�&8��,�0'1��.'����'�%� ��7%� ������������������� ���������������������

�7��5'�& ���-���5'!�%6/' 6��0��*'6%�*�� ����/!36'%�� &���9 .'%�68��0��'�%� �

2�%&�%��.'����'�%� ��7%� ����������������

��� ��� �� ���� !�!'%� !%'�' 6�� �� %�-3�6� � �� *�:(!�:'%� )6'%-� 5'��'%�'�& '��-��'��� ���8 �%� �3���%�6'63%'����'��'�& � ��-��'��3!� �;3��5'*�8�7 �' �6.'��;57��6/ &�/��'*�:���*'����6����%�-3�6�03 6� �*68�0�%6�'� �'��'%�� ��� *�:'%� 6�'� !�:'%� � �3/!6� � �0� 6�'� �'��'%� 03%6�'%�� � �!6/1�6� � 6'� <3'� 6�� %'�3'� 6�'� !�:'%� ���!�6� � �� �!!*'�� 6�� ���(�/!�%'(�'*'6�������3 6��0�6�'��'��'%����'��/3*�6� �%'�3*6�����:������=%'�36� � � 6�'�!�:'%�� �3/!6� � 0�%� 6�'���8 �%� �3���'�& ��/!�%'�� 6�6�'��8 �%� �3���'�& � ����>µ/������ 6'� �*�&8�:6����!�:'%� �3!!*8��0��>)����'�6�%�3&�!36�0�%�6�'�%36���>����?��

�� �� ��� ��

Many of digital transmission and storage systems use Forward Error Correction(FEC) techniques for correcting errors occurring during the transmission, storage, orretrieval of data. Viterbi Algorithm [480,2] belongs to a large class of FEC known asconvolution codes which are used in a wide range of applications such as wirelesscommunications, digital mobile telephony, digital TV broadcast, CD-ROMs, andmagnetic disks. The basic idea behind the Viterbi decoder is to maximize thecorrelation between received vector and the table of possible codewords whilesequentially performing the opposite operation of the encoder. The Viterbi decoderoperates by finding the maximum likelihood of the decoding sequence.

The quality of a Viterbi decoder design is mainly measured by three criteria: codinggain, throughput, and power dissipation [3]. High coding gain results in low datatransfer error probability while high throughput is necessary for high-speedapplications. The design of Viterbi decoders with high coding gain and throughput ismade challenging by the need for a low power circuit implementation. Thisrequirement mainly stems from the fact that the Viterbi decoders are often placed incommunication systems running on batteries where the power reduction is a must.Several attempts for reducing the power dissipation in the Viterbi decoder have been

Page 2: An asynchronous Viterbi decoder for low-power applications

������������+����.���'6��*�

reported in the literature [4,5,6,7,8,9]. These research activities may be categorized intwo following groups. The first group is based�� ��� & &�6�'��'��'%��%�6'63%'6��%'�3'�6�'�!�:'%�:�*'� 6�'��'� ��&%�3!�36*1'���00'%' 6�%36� /!*'/' 6�6� 6'� <3'��6��/ /1'�6�'�!�:'%����!�6� ���/� &�6�'�/'6����� �6�'�0%�6�&%�3!�� '�� �/' 6� �6�'��*6'%�6� ��0�6�'��%�6'63%'�0�%�������/!�%'��'*'6�������3 6@��>A�� �� & &� 6�'� /'/�%8� /� �&'/' 6� /'6���� @BA�� � �� �*6'% &� 6�'� 6%�'(-�4%36� @�A���C�/!*'�� � 6�'��'� ��&%�3!� *3�'������� &*'�' �'������� 6%� ��6�%��&�� /!*'/' 6�6� �@#A��� ��6�'��'*0(6/'��%36� /!*'/' 6�6� �@ A���C'!6� 0�%6�'�)6'%-��'��'%�-��'��� ��'*0(6/'���%�6'63%'���6�'%��'�& ���%'��8 �%� �3�����7 � 6��� !�!'%��:'� !%'�' 6� � � ��8 �%� �3�� �'�& � 0�%� ��)6'%-� �'��'%� -��'�� � ;3���5'*�8�7 �' �6.'��;57��6/ &�/��'*��7 �6���/��'*�� ��� �6%� �� �6�'��'*�8�0�6�'�%36�'*'/' 6�'C�6��'C'!6�0�%�6�'�����%�0�%4��@��A��� �6�'%���.� 6�&'��0;57� 0�%� D��� �!!*�6� �� �� 6�� %�-3�6� 03 6� �*68� 0�%� ��:�'� %� &'� �0� !�%�/'6'%.�*3'��� ���� !�!'%� �� �%&� 1'�� ��� 0�**�:��� 7 � �'6� � ��� 6�'� � .' 6� �*� )6'%-�'��'%� �� �'�%-'�� :�*'� 6�'� !%�!��'�� �'�& � �0� 6�'� �'��'%�� ��8 �%� �3��8 6�'��� � �� �!6/1�6� � 6'� <3'�� 3�'�� 6�� %'�3'� 6�'� !�:'%� ���!�6� � �%'!%'�' 6'�� ��'6� ����D �**8���'6� ���� 6� �� 6�'� %'�3*6��� �� 6�'�� *3�� ��06�'�:�%4�

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

��-%'0��'�%!6� ��0� 6�'�)6'%-��*&�%6�/���&.' � � 6����'6� �:�'%'����'6�*'�� '�� �-'�0�3 �� �@�A�����/�**��8�6'/������' � 6�� **3�6%�6'� 6�'�)6'%-�' �� &� ���'�� &�!%�'������'��*&�%6�/�3�'��-8�6�'�)6'%-�5'��'%�-'*� &��6����*����0� �*&�%6�/�� 4 �: � ��� � .�*36� � ��'��� ��'� %�6'� �0� 6�'� � .�*36� � ��'%� ��'0 '�����6�'� 3/-'%��0� !36�-6��6��6�'��36!36�-6��

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

�� 68!�*� ' ��'%� �� �'!6'�� � D&�� �� :�'%'� 6�'� %�6'� �0� ' �� &� �� �?��� �'�� 6�'�8�6'/�' ��'���� !36�-6�6�����36!36�-6��

"�������+*�4���&%�/��0�6�'�)6'%-�� ��'%�

7 � �%�'%� 6�� ' ��'� -6� ����� 0%�/� 6�'� !36� �6%'�/�� 6��� ' ��'%� %'�6'�� 6:�� -6�� �/'*8�������� ��������3� &� 6�'� *��6��� !36�-6��� �'�����(�������(����� ����������'' �� &�-6���%'�!%��3'��0%�/�6�'�0�**�: &�'<3�6� �������������������E������F����(���F����(���/����� ��������������������E������F����(���/����� ���

Page 3: An asynchronous Viterbi decoder for low-power applications

� ���8 �%� �3��)6'%-�5'��'%�0�%���:(��:'%��!!*�6� �������������

��'� 3/-'%��0�-6��3�'�� 0�%�' �� &�� '�-6� ���**'����������� � ����� ���� � � 6����'� �� E� ���� � �� 6�'� '<3�6� �� 6��6� �'�%-'� 6�'� ' �� &� �%'� �**'�� � � ��������������

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

�6� 6�'� �'�6 �6� �� 6�'� �'��'%� 36*1'�� 6�'� �� ���� ����� � 6�� �'��'� 6�'� %''.'��6%'�/�-8�0 � &�6�'��'<3' '�:6��6�'�/�C/3/�*4'*�����@���A��D&�������:��6�'6%'**����&%�/��0�6�'�' ��'%� �D&��������� ��'� �6�'�6%'**����&%�/��' �6'��� '�0�6�'�0�3%�!�6' 6�*�!�%������(�������(�����0�6�'�*��6�6:���'��'��-6�����'�6%'**��� -'��'' ������0*�:(� 6%�*���&%�/�:�'%'�'��� ��'�%'!%'�' 6�����6�6'�� ��6%� �6� ���!!' ��'!' � &�� � 6�'� !36� �6%'�/��D%�/�� 8� ��'�:'�� �/�4'��� 6%� �6� � 6�� '��0�6:���6�'%� ��'���%%'�!� � &�6��%''. &������%��������-6�������6�6�'� !36���'�:�8�6�'�6%'**����&%�/���� �6%36'���'!' ���� �6�'�� �6%� 6�*' &6��-36� �6�� 6�'�&' '%�6�%�!�*8 �/�*�����'�6:�� 3/-'%�����: �� �'.'%8�6%� �6� � �6�'�0&3%'�%'� 6�'� %'�3*6�� �0� 6�'� �-�.'� 6:�� &' '%�6�%� !�*8 �/�*��� ���� ��� �� :��� ������6'��:6��� '��'��'��-6�� ��6:��' ��'��-6����/!%�'���0���(�� ��'��

��

��

��

��

��

��

��

��

��

��

��

��

��

��

��

��

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

���������

�������

"��������:���6�&'���0�6�'�6%'**����&%�/�

��'%'�:**�-'� 6�%''���6 6� �6'!�� 0�%� 6�'� /!*'/' 6�6� ��0� 6�'��'�� &��*&�%6�/���'�0%�6��6'!����**'��������� �����*3*�6� �:�'%'�6�'�%''.'����6���8/-�*���%'�/!�%'�� 6�� 6�'� �'�*��36!36���0� 6�'�' ��'%� 0%�/� 6�'� 6%� �/66'%����'��'� ���6'!��**'�� ���� � ���� �/!36�6� � :�'%'� 6�'� !�6�� /'6%�� �0� �� �6�&'� �� �*3*�6'�� -8��� &� 6�'� -%� ��/'6%�� �����6'�� :6�� 6�'� %''.'�� �8/-�*� 6�� 6�'� !�6��/'6%�0%�/� 6�'� !%'.�3�� �6�&'� �0� 6�'� 6%'**�� ��&%�/����'� 0 �*� �6'!� �� ��� ����� !%�'���:�' �6�'��3%..�%�!�6���6�'�!�6��:6��6�'��&�'�6� *4'*������� ��6�'��36!36���6���%'�' 60'��

Page 4: An asynchronous Viterbi decoder for low-power applications

������������+����.���'6��*�

���7 � 6�'� 0%�6� �6'!�� 6�'� -%� �� /'6%� 0�%� '��� �8/-�*� �0� 6�'� !36� �'<3' '� �&' '%�6'�� -8� �*3*�6 &� 6�'� ,�// &� ��6� '� -'6:'' � 6�'� !36� �8/-�*� � �� 6�''C!'6'���8/-�*�0�%�'���� '6� ��0�6�'�6%'**����&%�/����'�,�// &���6� '��6�'� 3/-'%��0�-6��:���6:����':�%����%'��00'%' 6��76�� �-'�%'�*1'��-8�G�H��� �� ����'%��7 �6�'��'� ���6'!��6�'�!�6��/'6%����*3*�6'�����'��*3*�6� ��!'%0�%/'� �6����6'!��� �6636'���/�I�%�!�%6��0�6�'��%6�/'6��!'%�6� ��!'%0�%/'�� ���)6'%-�'��'%��7 �6����6'!��6�'��'��'%�/�4'��3�'��0���������� �� � ���������/��3*'������: � � D&�� ���� �����3 6� ���� �� !36��� �/'*8�� 6:�� -%� ��/'6%�� ����� � ������� ��6:��!�6��/'6%������ ��� ����� ����� ��6:���36!36��� �/'*8��6�'� ':�!�6�/'6%� ���!"#�� � �� 6�'� $ ����� ���� ��'� �'�� � -6� �� 6�'� /��6� /!�%6� 6 0�%/�6� �&' '%�6'��-8�6�'������76� ��6'��6��6�:����3/�-'6:'' �� � !36�!�6�/'6%� � �� ��-%� ��/'6%� &' '%�6'�� 6�'� �/�**'�6� %'�3*6� � ��:��� �'*'6'�� ��� �36!36!�6��/'6%� �%� �����%�� ����**� �'�� � -6�� &' '%�6'�� �6� � '� �6�&'� �%'� ��.'�� � �6%�'(-�4�/'/�%8�� ��*�6'%�3�'��0�%�6�'�6%�'(-�4��!'%�6� �

"����'�����(��/!�%'(�'*'6�3 6�@#A�

�06'%� %'!'�6 &��6'!���� � ���� 0�%� 6�'��'�%'���'!6���0� 6�'� 6%'**�� ��'6'%/ '��-8� 6�'/'/�%8�� ����'�&� �%'<3%'/' 6�����6'!���:**��6�%6�0�%���-�4(6%�'�!�6��� ��0 �6�'����&���� ������!�6��:6��6�'�-'�6�/'6%������6�%6�6����!'%�6 &�:'� ''��6�'�6�6'�:6�� 6�'�/ /3/�!�6��/'6%������ �6�6'� �� 4 �: � ��� 6�'�������%�� ��� ��'6%�'(-�4��!'%�6� ��6�%6��0%�/�6�'�&*�-�*�: '%��6�6'�� ��6%�'� 6�'�/'/�%8�-��'�� �6�'�*��*�: '%� �6�'��6.'��6�6'��0�'����6�&'����'�-*�4���&%�/��0�6�'�)6'%-�'��'%������: � �D&����

�����'�&*�-�*�: '%��'6'6� ��� �6� ''�'�� �'����6�&'��0�6�'�/'6%��/!36�6� �76��3*��-'��� '�-��'��� �6�'��'!6���0�6�'�/'/�%8�� ��6�'�6%�'(-�4�3 6��+'�3�'6�'� !�6�� /'6%�� �%'� ��' � &� 6'&'%� 3/-'%�� 6�'8� /�8� �.'%0*�:� � �� � �3��63�6� �6�'�&*�-�*�: '%��'6'6� �/�8�0 ����0�*�'�: '%����'�0�*�'�&*�-�*�: '%:**��3�'���/�*03 6� &��0�6�'�6%�'(-�4�3 6�*'�� &�6��� � �%%'6��36!36����''��' 6�*��!'%�6� �6��6����3*��-'����'��6��6�'��6� ��%��&*�-�*�: '%��'6'6� ���6�'�' �(��%� �� ' ������ �6� 6�'� ' �� �0� 6�'� 6%�'(-�4� �6'!�� 6�'� �3%..�%� !�6�� :**� -'�'6'%/ '��� ��6�'��36!36���6����%'� �6%36'����%� &�6��6�'�6%'**����&%�/�

Page 5: An asynchronous Viterbi decoder for low-power applications

� ���8 �%� �3��)6'%-�5'��'%�0�%���:(��:'%��!!*�6� ������������>

�����

�����

������

�����

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

������

���

������

���

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

"����(��+*�4�5�&%�/��0�6�'�)6'%-�5'��'%�

��'�����������) �� ��

D.'� �6�&'�� �0� 6�'� 6%'**�� ��&%�/� � 6�'�)6'%-� �'��'%� �� ���: �D&�� >�:�'%'� 6�' !36�-6���%'�%''.'���6�6�'�6�!�� ��6�'��'��'%�&.'��6�'��36!36��'��'��-6���6�6�'-�66�/������-*�4� �6���0&3%'���� �����3 6����'�����'��* '���%%'�!� ��6��6:�(:�8��//3 �6� ����'���6�'�*'06��6�6'��' ���6�'�!�6��/'6%�6��6�'�%&�6��6�6'��:�*'6�'�%&�6��6�6'��' ������& �*�6��6�'�*'06��6�6'��3% &�6�'�-�46%�4 &�!%�'������7 �6'��� �0� �� �%'6� /!*'/' 6�6� � �0� 6�'� ��&%�/� ���: � � D&�� >�� �� /�%'� ��6'00'6.'� ��*36� ��3*��-'� 6�� /!*'/' 6�:6���� �/�**'%� 3/-'%��0� �6�&'��� �� %'3�'6�'/� �'.'%8�8*'����'��36!36�/'6%��0�6�'�*��6��6�&'�� �-'��6�%'�� ���%'&�6'%�6�-'�3�'��-8�6�'�0%�6��6�&'� �6�'� 'C6�8*'����'��/!�%�� �%'�3*6���0� 6�'��6�6'��� �*���-'��'*�� �6�'�%'��6'%��6��6��%'�3�'��-8�6�'�-�4(6%�'�*�&�

������� ���

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

"����*���6�&'���0�6�'�)6'%-��'��'%���E��������-*�4���� �����3 6�

��'� !�6�� /'6%� 3 6� �3*�� -'� /!*'/' 6'�� � *8� � � '� �6�&'�� ��� �-6� � �&�'%6�%�3&�!36��� � '� �3*�� 36*1'� /�%'� �6�&'�� 6�� �/!36'� 6�'� /'6%�� 0�%� /� 8� !36�8/-�*�� �'���8*'��0�%36��!'%�6� ����'� 3/-'%��0�-6�� 0�%� 6�'�/'6%�� �� � /!�%6� 6� !�%�/'6'%� :�'%'� �� *� &'%� /'6%� �3*�� *'��� 6�� �� �&�'%� �'�� &!'%0�%/� '��6����&�'%�/!*'/' 6�6� ���6����'�*��6�!�%�/'6'%���%'�6�'��'!6���0�6�'6%�'(-�4� 3 6� � �� 6�'� 3/-'%� �0� �'��'�� -6�� � '��� 6%�'(-�4� �6'!�� ��'�'!�%�/'6'%���:����'6'%/ '� 6�'�)6'%-��'��'%���%�6'63%'�:**��� &'� 6�'��!''�� ��6�'��'�� &�!'%0�%/� '��0�6�'�%36�

Page 6: An asynchronous Viterbi decoder for low-power applications

��B���������+����.���'6��*�

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

7 �6����'6� ��:'��'�%-'�6�'��%�6'63%'��6�'��8 6�'����� ��6�'��!6/1�6� ��0�6�')6'%-��'��'%��'�& � �6���:�%4��5'� &�� �6�'�!�%�/'6'%��6��6��%'�'C!*� '���6' ���0�!%'.�3�� �'6� �:'� 0 ���3%�)6'%-��'��'%� �%�6'63%'�� 7 ��3%��'�& �� 6�' 3/-'%��0��6�&'��0�%�6�'�!�6��/'6%��/!36�6� ���6:��:�*'�6�'��'!6���0�6�'�6%�'(-�4��'6� ���0�3%�� ��6:��-6���%'��'��'�� �'����6�&'��D&��B�� ��0&����� 6� �6�'��'6�*'���'�& ���0�6�'���6���'6%�9 6�� ��6�'��%�'(+�4�9 6��0�0&����� ���'!�6��/'6%���%'�#(-6�:�'�:�*'�6�'�-%� ��/'6%���%'��(-6�:�'�

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

��� �

�������

�������

��

���

"����+����6���'6%�9 6�

��� �

�������

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

"����,���%�'�+�4�9 6�

'����������������)�� �����

D�%�6�'�/!*'/' 6�6� ��0�6�'��'��'%��:'���.'�3�'��6�'���8 �%� �3���'�& ��68*'�7 � &' '%�*�� 6�'� ��8 �%� �3�� /!*'/' 6�6� � ���� �� &%'�6'%� !�6' 6�*� 0�%� *�:� !�:'%�!!*�6� ����*6��3&��6�'��8 6�'���6��*���%'�*'����.�*�-*68�0�%�6����'�& ��68*'��7 �3%��'�& ��� ���8 �%� �3��%!!*'��%%8����'%���36*1'�� �6�'�����3 6��� '�6�' 3/-'%���0�-6��0�%�6�'�-%� ��/'6%�� ��6�'�!�6��/'6%��%'��00'%' 6��6�'����'%�� *8�����6�'�%'<3%'��-6�����'���8 �%� �3�����'%�� �3/'��*'���!�:'%��/!�%'��6��6�'�8 �%� �3���3 6'%!�%6��3'� 6�� 6�'� 0�6� 6��6� 6�'�/'6%���%'� �/�**� 3/-'%��� �/��6��'���� ����' '����*�%&'�!�%6��0�6�'�%36��� �6��6.'��� �6�'%���.� 6�&'��0�3� &6����68*'�0�%� 6�'��'��'%� �� 6��6� � 6�'� 6%�'(-�4�� *8�� '�3 6�:6� �'����6�&'� �

Page 7: An asynchronous Viterbi decoder for low-power applications

� ���8 �%� �3��)6'%-�5'��'%�0�%���:(��:'%��!!*�6� �������������

%'<3%'�� 6�� -'� �6.'�� :��� *'��� 6�� *�:'%� !�:'%� ���!�6� � � 6�'� ��8 �%� �3�/!*'/' 6�6� ������8 �%� �3���'�& �/86��*�&'�� �%'� *���0'��-��'��� � 6�'� 6/ &�/��'*� -' &3�'�� � �� /�8� -'� �6'&�%1'�� 6�� -�3 �'�(�'*�8� � �� �'*�8� �' �6.'� /��'*�� @��A���'�'� 6:��/� ��6'&�%'����.'�/� 8��3-(/��'*�����'�-�3 �'�(�'*�8�/��'*����.'6/ &�� ��'%�6� ��/*�%�6��6�'��8 �%� �3���'�& �6'� <3'��:6��6����00'%' '6��6� 6�'� *�4� �� �6� 3�'��� ��'� �'*�8� �' �6.'� /��'*�� 3�'� �� ����4 &� 0�%� 6�'�8 �%� 1�6� � �0� 6�'� ��6�� 6%� �0'%�� ��'� /!*'/' 6�6� � �0� !3%'� �'*�8( �' �6.'%36����.'%8��/!*'C�� ���������& 0� 6��.'%�'�������%'�3'�6�'��/!*'C68�� �6�'��.'%�'����� '� ''���6��6�*'%�6'���/'�6/ &�� �6%� ���� '��0�6�'�/��6�!�:'%03*:6��/ /3/�6/ &�� �6%� �/��'*����;3���5'*�8�7 �' �6.'��;57��/'6����6��6:��� 6%��3'��-8������%6 �@��A����J'� ��.'� 3�'��;57�/��'*� � ����%6 � �8 6�'���/'6���� � �'�& � �0� 6��� %36���%6 � �8 6�'��� /'6���� � .'%6�� �� �'�%!6� � �0� %36� � ���� ���//3 �6 &�'<3' 6�*� �%�'���� �%'6*8� 6�� ����� �6'��� �0� � .'%6 &� 6� 6�� �� &�6'(*'.'*�'�%!6� � ���/� 8� �8 �%� �3�� �8 6�'��� 6��*�� ���� D�%� 6��� %'�'�%��� ��/'� �0� 6�'�8 6�'��� �6'!�� :'%'� �8 6�'�1'�� 3� &� 6�'� 6��*�� �'.'*�!'�� -8� 6�'� ��8 �%� �3��'�& �&%�3!��0�@��A�:�*'�6�'�%'�6�:'%'��8 6�'�1'��/� 3�**8����,'%'��6�'��'�& �:���-��'��� �6�'��3�*(%�*�' �� &�0�%���6��6%� �0'%�� ��6�'�0�3%(!���'� �� ����4 &� !%�6��*� 0�%� 6�'� �//3 �6� �� -'6:'' � 6�'� %36� '*'/' 6���� 8��0�6�'�03 6� �*�-*�4���%'�-��'��� ���D+���%'(���%&'�D3**�+300'%��6'/!*�6'@��A��J6�� 6�'�'� -*�4��� 6�'%'� �� �� ''�� 0�%� -300'%�� -'�3�'� 6�'8� ��.'� � � 6'% �*-300'%�

'�������-)�!� ���.� ��

���/' 6� '��-'0�%'�� �� *�%&'�!�%6� �0� 6�'� !�:'%� �� � �3/'�� � 6�'�����3 6�� � ��6�'%'0�%'�� 6�'��!6/1�6� ��0� 6�'�'�3 6��� �%'�3'�6�'� 6�6�*�!�:'%�� �3/!6� ��06�'�%36����������� ��6���0�6:������� ��� '��/!�%'��!'%�6� ����� ��'% &��-*�4��0�6:������ '&�-�%�� �-366'%0*8��%�6'63%'�@�>A��'���-*�4�� ��6���0�0�3%#(-6� 6���(-6����'%�� �� 6:��#(-6��/!�%�6�%�?�'*'6�%��:�'%'� 6�'�!�6��/'6%�����#-6�� :�*'� 6�'� -%� �� /'6%� ���� �� -6��� 7 � @�A�� �� %'(�%%� &'/' 6� �0� 6�'� -366'%0*8�!'%�6� ����!%�!��'��6��%'�3'�6�'� 3/-'%��0��!'%�6� ��������%�6'63%'������: � 0&�� #� :�'%'� � 6��� 0&3%'�� +�� � �� ��� �%'� +%� �� �'6%� � �� ��6�� �'6%�%'�!'6.'*8����� ���-� ��6'� !36��� ������� ��������:��6:��!���-*'�!�6��0�%��� ��������36!36�����%'(�%%� &'/' 6�%'�3'��6�'�%36�6��6:���(-6��3-6%�6�%���� '�#(-6��3-6%�6�%��6:��#�6���(-6��/!�%�6�%�?�'*'6�%���� ��6:��#�6���(-6����'%����' '���� ��'%�-*'�%'�36� � �6�'�!�:'%���C'!6�0�%�6�'��/!�%�6�%����**�6�'��/!� ' 6��%'�/!*'/' 6'��3� &�;57�/'6������'���8 �%� �3��/!*'/' 6�6� ��0�6�'��/!�%�6�%��3� &�;57�/��'*�*'����6��*�%&'�%'��� ��!�:'%�� �3/!6� ���������3'�6��6�'�0�6�6��6�6�'8��%'��6.'��*/��6��**�6�'6/'��� ���**�6�'� !36�-6���%'�3�'�� �6����!'%�6� ������&.'��%�'�6����%�6�'%�*�%&'!�:'%� � �� �%'�� �.'%�'��� 0�%� 6�'� �%/�*� �3�*(%�*� �� &� � ;57� �'�& �� � ��6�'%'0�%'�� 6�'� 6:�� �/!�%�6�%�� �%'� /!*'/' 6'�� 3� &��%�(�!'* '�/'6���� @�BA�:���������*�:'%��.'%�'������'��%�(�!'* '������� �%/�*�03 6� ��.'%'��-8���'*�8( �' �6.'���8 �%� �3��� 6%�*�%36�

Page 8: An asynchronous Viterbi decoder for low-power applications

��#���������+����.���'6��*�

(� /��� ��������������

J'�3�'�����FF�!%�&%�/� 6�� �/3*�6'� 6�'�-'��.�%��0� 6�'��'�& �� �� 6��/'��3%'� 6�'�� &�&� � ��'�� &�!'%0�%/� '���0� 6�'��'��'%���06'%� �'�& &� 6�'� %36�� 6�'��6��0*�:�:����/3*�6'��3� &�)'%*�&����'���%6 �/'6����:���3�'��6���8 6�'�1'�6�'�'��'%� 6�� �:6�� *'.'*� �'�%!6� � @��A�� ��'� �'�%!6� � :��� � .'%6'�� 6�� ����%36� /!*'/' 6�6� � 3� &� �� ���>µ/� 6'� �*�&8�� ���� -*�4� :��� �/3*�6'� �'!' �' 6*8� 3� &� ��7��� 6�� �-6� � 6�� 6/ &� -'��.�%� � �� !�:'%� � �3/!6� �D �**8��6�'�' 6%'�%36�:����/3*�6'�� ���7���

���'%�

���'%���/!�

��/!��3-�

�3-�

�3-�

����

��

������

���

���

��

���

��� −

��

���

��� −

���

��

������

���

���

���

���

�� ��

���

"����0��H'(�%%� &'��-366'%0*8�����@>A�

��-*'� �� ���:�� 6�'� '�6/�6'�� !�:'%� � �3/!6� � 0�%� 6�'� %36� -8� ��� &� �**� 6�'-*�4��!�:'%�� ��6�'�!�:'%�� �3/!6� �0%�/��/3*�6� ����'�%'�3*6�����:�6��6�6�'!�:'%�� �3/!6� �����*0��0�6�'�:�%�6(��'�'�6/�6� �������6�6�'��.'%�&'���*0��0�6�'%36�-*�4���%'� �6.'��3% &� �%/�*�03 6� �*68��0�6�'�%36�

1����������7����/3*�6� �%'�3*6�

�����%�2&)���� ��

���3'�'� ���3��*�

J�%�6(���'���6/�6� ��+*�4��/3*�6� � ���#> ����>

��6�*��/3*�6� ���BB ���#>

���6�'�6�-*'������:���-�36���*0��0�6�'�!�:'%���� �3/'�� �����3 6����!6/1 &6�'�!�:'%��0�����3 6��� � %'�3'� 6�'� 6�6�*�!�:'%�� �3/!6� ��0� 6�'�%36����'%'�36� � �6�'�!�:'%�� �3/!6� ���'.'��0�%�6�'�%'�%%� & &�6�'������6%363%'� 6�'�!%�!��'��/��'*��/!�%'��6��6�'���/'��� &'� �6�'�� .' 6� �*�-366'%0*8������&.' � ���-*'���

Page 9: An asynchronous Viterbi decoder for low-power applications

� ���8 �%� �3��)6'%-�5'��'%�0�%���:(��:'%��!!*�6� ������������

�����'� �/3*�6� � %'�3*6�� ���:� 6��6� 6�'� ��8 �%� �3�� �'�& � ����/�%'� !�6' 6�*� 0�%*�:(!�:'%� �!!*�6� ������� �� �3'� 6�� 6�'� � 6�'� ��8 �%� �3�� /!*'/' 6�6� �� 6�'-*�4�� �%'� � *8� �6.'� :�' � ''�'�� � �� ��� 6�'� �6.68� 0�6�%� �� *�:'%� 0�%��8 �%� �3��%36��*���� � @�A� -8� ��� &� �� &*6�� %'�36� � *�&�� �� %'�36� � �0� �=� � 6�'� !�:'%���!�6� �:����-6� '��:�*'�6�'�*�6' 8�:��� �6��� &'���6�����6��0��=� %'��'� 6�'��%'���/!�%'��6��6�'�����3 6� 6%��3'�� �D&��#��� '�6�'�;57�6/ &�/��'*����1�%�(0%''�/��'*�@��A��6�'%'��� �� ''��6��6�'�&*6��%'�36� �*�&�%36�

1��������H'(�%%� &'��-366'%0*8������%�6'63%'�%'�3*6�

����� �� �� 1������� ��� !� ���.� ��

�8 �%� �3��-366'%0*8�����@>A ��# µ/ >�) ����=

��8 �%� �3��-366'%0*8�����@����:�%4A ���> µ/ ��>) ��=

�����-*'��� ���:�����/!�%�� ��0� 6�'�)6'%-��'��'%���0� 6���:�%4�� �� ��/'��6�'%*�:(!�:'%�)6'%-��'��'%��%'!�%6'�� �6�'�*6'%�63%'����'�!�:'%�� �3/!6� � �6�'��'� �0� 6�'� �!6/1'�� �'��'%� :6�� �� !�:'%� �3!!*8� �0� ��>)� �� *�:'�6� �/� &� 6�'�'��'%���0���-*'��������%36��3*���!'%�6'�3!�6��>����?��

1�����'����/!�%�� ��0�)6'%-��'��'%��'�& ��

������ 1������� ����%�& �����%�2&�8 �%� �3��H'0'%' '�@ A ���>µ/ ?� ����8�6�*��%%�8�@�A ��> µ/ ��� �#�����@#A ���> µ/ ��> ##�'*0(�/'��@ A ���> µ/ ?� ������:�%4 ���> µ/ ��� �BB����:�%4 ���> µ/ ��> #>����:�%4(�!6/1'����� ���> µ/ ��� �� ����:�%4(�!6/1'����� ���> µ/ ��> B�

*� )����������-������

��'� �'�& � � �� /!*'/' 6�6� � �0� �� *�:(!�:'%� ��8 �%� �3��)6'%-� �'��'%� :��!%'�' 6'�����'��'�& �:���-��'��3!� �;3���5'*�8� 7 �' �6.'� �;57�� 6/ &�/��'*:���� �-'�3�'��0�%�%�-3�6�%36���76�:������: �6�'�����3 6�� �3/'���-�36���*0�0� 6�'� !�:'%� �0� 6�'� �'��'%� � ��� �' '�� 6�� %'�3'� 6�'� !�:'%�� � � �!6/1�6� 6'� <3'� :��� �!!*'�� 6�� 6��� 3 6�� ��'� �/3*�6� � %'�3*6�� �0� 6�'� �!6/1'���8 �%� �3���'��'%����:'������=�%'�36� � �6�'�!�:'%�� �3/!6� ��/!�%'�6��6�'��8 �%� �3���'�& � ����>µ/������6'� �*�&8�:6����!�:'%��3!!*8��0���>)���'%'0�%'�� 6�'� ��8 �%� �3�� )6'%-� �'��'%� �3*�� -'� �� &���� � ���6'� 0�%� *�:(!�:'%��!!*�6� ��

Page 10: An asynchronous Viterbi decoder for low-power applications

�#����������+����.���'6��*�

��4���������� ����'� �36��%��:��� 6�� 6�� 4�5%��+�-�4����'&�� � 0�%� ��� 3�'03*%'/�%4�� � �� ��3��� �� � �� 5%�� �'��� �'�&�� 0�%� ��� �'*!�� �-�36� ��7���/3*�6� ��� ��!�:'%�'�6/�6� �/'6�����

/���������

��� ���)6'%-���%%�%�-�3 ���0�%�� .�*36� �*���'��� ��� ���8/!6�6�**8��!6/3/��'�� &�*&�%6�/�� ��)))�#���*���(�������#� �����.�*������!!���B�"�B ���!%*�� B��

��� K��5�.��� ���%��D�% '8����'�)6'%-��*&�%6�/������ ������(��)))��.�*��B��� ������!!��B#"��#����%��� ���

��� G3 � �3� � �� ��� ��� ��!�'06�8/�3�� 5'�& � �0� �� ,&�(��%�3&�!36� ��:(��:'%� 7� >)6'%-�5'��'%�� �����*��(�$ �����&����������(*�+$��,��!!���B�"�B#���3 '������

��� ��,��H83�������2/�� ��5������� � ��,�J����%4�� � ��L��,����� &�����':���:'%���:'%)6'%-� 5'��'%� �%�6'63%'�J6�� K*6�� H'�36� �� � ����*� �(� �� � -���� �)))� �����(�����(*���������.�!!��#�"#B���3&��� �

>�� ��(L &���3��H���2����' &��� ������ &����:�!�:'%�����3 6��'�& � 0�%� 6�'�)6'%-�'��'%�� �����*��(��� ��)))�����*�������&���������� ����!!�����"������ �

B�� 2��,3����5����*�:'**����)6'%-�5'��'%��'/�%8��� �&'/' 6��8�6'/�9� &�D�%:�%��%�'-�4�� ���**(���6���%�'-�4�� �����*��(� ���*����(*��������&� ��)� ���������!!�B#"B ��� �

��� 5�� ��/��� �� ����� �1�%/� '���� � �� 2��� ,����� )��7� 5'�& � �0� �� )6'%-� 5'��'%3� &��8�6�*��%%�8�0�%��%�'(+�4��!'%�6� � ���>3 µ/������� �����*��(��/����������(*����)� �*�)��*����-%1��7%� ��!!��>��">������8������

#�� 7�� +�&�� �� ��� �3/3 6'� 3�� ����� 7.'8�� ����� �''��� � �� ��� ��:'**�� ��:'%� H'�36� �'� <3'�� 0�%� ��)6'%-�5'��'%� 7/!*'/' 6�6� ��)��0$��///� +)&��� �� 0�%���% �����' � (��� )� ������� ���� �� $ ���,� #���� ��� ������� 1��������� H�!�**��� 76�*8�7�+�� �(>��B(��B(B��!!��#"�#���3*8�����

�� �����H�'%'3C�������+%�4' -3%8������3/!�6'8�� � ����+��D%3-'%������:(��:'%��'*0(�/'��)6'%-�5'��'%�� �����*� 2��� ��� ������� ����*� ��� ����������&�����&��� ������ ��.�!!���>"���������

���� ��������%6 ���%�&%�// &� �)��7��D%�/���//3 �6 &��%�'��'��6��5'*�8(7 �' �6.'�%36��� �"#� 3 �� �(� ���������� �����&� � ��� ����&�� ��� ���������.���� ��� H�,��%'��������������� (J'�*'8��!!���(B���� #

���� ��� H� !�%�� � �� ,�� 5� &� ��/�� �� *�:(!�:'%� )6'%-� �'��'%� �'�& � 0�%� :%'*'���//3 �6� ���!!*�6� ��� �����*���������*��)))����*�����4�!�����(*.�!!�����(�#���'!��� �

���� ��66�,�34����8 �%� �3��5'�& ��'6����*�&'������� ������(��� ��)))��.�*��#��� �����!!��B ( ����� ��� >�

���� �66!�??'��36���%?��8 ����� �������%6 ����8 �%� �3��5�6��!�6���� ��6�'�5'�& ��0�� ���8 �%� �3�����'%��-����

� ������������ ��$ �����.�*����� ������!!���� (������3*8�� ���>�� 7�� 2� &� � ����� ���J**�� �� �� ����/J�� ����� 4-!��� %E�?��� 4E � )6'%-� 5'��'%�� � ��

����*��(��)))�������!!��B��(B�B��� ���B�� 7������36�'%*� ����%�!!'* '�������&��������(��� ������.�*������ ���B��!!�����(��#�

�3 ��� # �