Book contents
- Frontmatter
- Contents
- Acknowledgments
- 1 Introduction
- 2 Channel-based asynchronous design
- 3 Modeling channel-based designs
- 4 Pipeline performance
- 5 Performance analysis and optimization
- 6 Deadlock
- 7 A taxonomy of design styles
- 8 Synthesis-based controller design
- 9 Micropipeline design
- 10 Syntax-directed translation
- 11 Quasi-delay-insensitive pipeline templates
- 12 Timed pipeline templates
- 13 Single-track pipeline templates
- 14 Asynchronous crossbar
- 15 Design example: the Fano algorithm
- Index
- References
15 - Design example: the Fano algorithm
Published online by Cambridge University Press: 26 February 2010
- Frontmatter
- Contents
- Acknowledgments
- 1 Introduction
- 2 Channel-based asynchronous design
- 3 Modeling channel-based designs
- 4 Pipeline performance
- 5 Performance analysis and optimization
- 6 Deadlock
- 7 A taxonomy of design styles
- 8 Synthesis-based controller design
- 9 Micropipeline design
- 10 Syntax-directed translation
- 11 Quasi-delay-insensitive pipeline templates
- 12 Timed pipeline templates
- 13 Single-track pipeline templates
- 14 Asynchronous crossbar
- 15 Design example: the Fano algorithm
- Index
- References
Summary
In this chapter we present the Fano algorithm, a convolutional code decoder, and its efficient semi-custom synchronous implementation. The algorithm is used in communication systems to decode the symbols received over a noisy communication channel. We also present an efficient asynchronous counterpart, which we will use to explore the challenges in designing asynchronous chips. Figure 15.1 gives a schematic view of a communication system.
The Fano algorithm
In communication systems a convolutional code is a type of error correcting code in which an m-bit symbol is decoded into an n-bit symbol, where m/n is the code rate (n ≥ m), and the decoding process is a function of the last k information symbols, where k is the constraint length of the code. The redundancy often allows convolutional codes to improve the performance of communication systems such as digital radios, mobile phones, satellite links, and Bluetooth implementations.
Background of the algorithm
The Fano algorithm is a tree-search algorithm that achieves good performance with low average complexity at a sufficiently high signal-to-noise ratio (SNR). A tree comprises nodes and branches and associated with each branch is a branch metric (or weight, or cost). A path is a sequence of nodes connected by branches and the path metric is obtained as the sum of the corresponding branch metrics. An optimal tree-search algorithm determines the complete path (i.e. from root to leaf) with the minimum path metric, while a good but suboptimal tree-search algorithm finds a path with a metric close to this minimum.
- Type
- Chapter
- Information
- A Designer's Guide to Asynchronous VLSI , pp. 313 - 335Publisher: Cambridge University PressPrint publication year: 2010