Decoding of Rate k/n Convolutional Codes in VLSI

  • V. P. Roychowdhury
  • P. G. Gulak
  • A. Montalvo
  • T. Kailath


A systematic procedure for an efficient VLSI implementation of the Viterbi algorithm for decoding convolutional codes is presented. This implementation is based on a network of simple processors, each performing an add-compare-select and branch-generation operation, that reside on a single die and are connected to execute the Viterbi algorithm in a highly parallel way. The chip area of such implementations will depend on the processor interconnections, which in turn depend on the state transition diagram of the convolutional encoder (or dual encoder). It is shown that for all rate 1/n convolutional codes generated by feed-forward FIR encoders the encoder state transition diagram, which is described by a de Bruijn graph, can be mapped by a simple equivalence relation to a well-known interconnection scheme in parallel processing referred to as the shuffle-exchange network, for which layout techniques that achieve a proven lower bound on implementation area in a VLSI medium have been established. These results are then extended to rate 1/n codes generated by (IIR) encoders containing feedback. Finally, in the case of general (feed-forward and feedback) rate k/n convolutional encoders it is shown that the state transition diagram of either the encoder or the dual encoder can be always mapped to the Cartesian product of de Bruijn graphs, and therefore of shuffle-exchange graphs; the point is that optimum VLSI layouts for the Cartesian product are easier to obtain and much less complicated than any direct VLSI layouts for the original state transition diagram.


State Diagram Product Graph Convolutional Code Viterbi Algorithm Optimal Layout 
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. [CK84]
    J. B. Cain and R. A. Kriete. A VLSI r=1/2, k=7 Viterbi Decoder. Proc. of NAECON, May 1984.Google Scholar
  2. [CY86]
    C. Y. Chang and K. Yao. Systolic Array Processing of the Viterbi Algorithm. Submitted to IEEE Transactions on Information Theory, June 1986.Google Scholar
  3. [For70]
    G. D. Forney. Convolutional Codes I: Algebraic Structure. IEEE Transactions On Information Theory, IT-16, No. 6: 720–738, Nov. 1970.Google Scholar
  4. [For73a]
    G. D. Forney. Structural Analysis of Convolutional Codes via Dual Codes. IEEE Transactions on Information Theory, IT-19: 512–518, July 1973.Google Scholar
  5. [For73b]
    G. D. Forney. The Viterbi Algorithm. Proceedings of The IEEE, 61, No. 3: 268–278, March 1973.CrossRefGoogle Scholar
  6. [GK]
    P. G. Gulak and T. Kailath. Locally Connected VLSI Architectures for the Viterbi Algorithm. IEEE Journal on Selected Areas in Communications, to appear in 1988.Google Scholar
  7. [Go182]
    S. W. Golomb. Shift Register Sequences. Aegan Park Press, 1982.Google Scholar
  8. [GS86]
    P. G. Gulak and E. Shwedyk. VLSI Structures for Viterbi Receivers: Part I- General Theory and Applications. IEEE Journal on Selected Areas in Communications, SAC-4: 142–154, Jan. 1986.Google Scholar
  9. [Gu184]
    P. G. Gulak. VLSI Structures For Digital Communications. PhD thesis, University of Manitoba, Winnipeg, Canada, Dec. 1984.Google Scholar
  10. [Kai80]
    T. Kailath. Linear Systems. Prentice-Hall Inc., Englewood Cliifs, N.J., 1980.Google Scholar
  11. [KLLM81]
    D. Kleitman, F. T. Leighton, M. Lepley, and G. L. Miller. New Layouts for the shuffle-exchange graph. Proc. of the 13th ACM Symposium on Theory of Computation, 278–292, May 1981.Google Scholar
  12. [Lei81]
    F. T. Leighton. Layouts for the shuffle-exchange graph and lower bound techniques for VLSI. PhD thesis, Department of Mathematics, Massachusetts Institute of Technology, 1981.Google Scholar
  13. [Omu69]
    J. K. Omura. On the Viterbi Algorithm. IEEE Transactions Information Theory, IT-15: 171–179, Jan. 1969.Google Scholar
  14. [PV81]
    F. P. Preparata and Jean Vuillemin. The Cube-Connected Cycles: A Versatile Network for Parallel Computation. Communications of the ACM, 24: 300–309, May 1981.CrossRefGoogle Scholar
  15. [RGK87]
    V. P. Roychowdhury, P. G. Gulak, and T. Kailath. Optimal VLSI layouts of de Bruijn Graphs. to be submitted to IEEE Trans. on Computers, 1988.Google Scholar
  16. [RGMK87]
    V. P. Roychowdhury, P. G. Gulak, A. Montalvo, and T. Kailath. Decoding of Rate k/n Convolutional Codes in VLSI. to be submitted to IEEE Trans. on Info. Theory, 1988.Google Scholar
  17. [SP84]
    M. R. Samatham and D. K. Pradhan. A Multiprocessor Network Suitable for Single-chip Implementation. Proc. 11th Ann. Symp. on Computer Architecture, 328–337, June 1984.Google Scholar
  18. [Sto71]
    Harold S. Stone. Parallel Processing with the Perfect Shuffle. IEEE Transactions On Computers, c-20, No. 2: 153–161, Feb. 1971.Google Scholar
  19. [Tho80]
    C. D. Thompson. A Complexity Theory for VLSI. PhD thesis, Dept. of Comp. Science, Carnegie Mellon University, Pittsburgh,PA, 1980.Google Scholar
  20. [U1181]
    J. D. Ullman. Complexity of VLSI Design. MIT Press and John Wiley Sons, Inc., 1981.Google Scholar
  21. [Vit67]
    A. J. Viterbi. Error Bounds for Convolutional Codes and an asymptotically optimum decoding algorithm. IEEE Transactions Information Theory, IT-13: 260–269, Apr. 1967.Google Scholar
  22. [VO79]
    A. J. Viterbi and J. K. Omura. Principles of Digital Communication and coding. New York: McGraw Hill, 1979.Google Scholar

Copyright information

© Plenum Press, New York 1988

Authors and Affiliations

  • V. P. Roychowdhury
    • 1
  • P. G. Gulak
    • 1
  • A. Montalvo
    • 1
  • T. Kailath
    • 1
  1. 1.Stanford UniversityStanfordUSA

Personalised recommendations