Reconfigurable Computing (EN2911X, Fall07)

Slides:



Advertisements
Similar presentations
Convolutional Codes Mohammad Hanaysheh Mahdi Barhoush.
Advertisements

Convolutional Codes Representation and Encoding  Many known codes can be modified by an extra code symbol or by deleting a symbol * Can create codes of.
Decoding of Convolutional Codes  Let C m be the set of allowable code sequences of length m.  Not all sequences in {0,1}m are allowable code sequences!
Error Control Code.
Reconfigurable Computing S. Reda, Brown University Reconfigurable Computing (EN2911X, Fall07) Lecture 10: RC Principles: Software (3/4) Prof. Sherief Reda.
Maximum Likelihood Sequence Detection (MLSD) and the Viterbi Algorithm
Lecture 15 Hidden Markov Models Dr. Jianjun Hu mleg.cse.sc.edu/edu/csce833 CSCE833 Machine Learning University of South Carolina Department of Computer.
Cellular Communications
EEE377 Lecture Notes1 EEE436 DIGITAL COMMUNICATION Coding En. Mohd Nazri Mahmud MPhil (Cambridge, UK) BEng (Essex, UK) Room 2.14.
ECE 559 VLSI – Design Project Viterbi Decoder VLSI Design Project Spring 2002 Dan Breen Keith Grimes Damian Nowak David Rust Advisor: Prof. Goeckel.
Coding and Error Control
Reconfigurable Computing S. Reda, Brown University Reconfigurable Computing (EN2911X, Fall07) Lecture 17: Application-Driven Hardware Acceleration (3/4)
Reconfigurable Computing S. Reda, Brown University Reconfigurable Computing (EN2911X, Fall07) Lecture 18: Application-Driven Hardware Acceleration (4/4)
Figure 6.1. A convolutional encoder. Figure 6.2. Structure of a systematic convolutional encoder of rate.
Reconfigurable Computing S. Reda, Brown University Reconfigurable Computing (EN2911X, Fall07) Lecture 16: Application-Driven Hardware Acceleration (1/4)
ECE 559 VLSI – Design Project Viterbi Decoder VLSI Design Project Spring 2002 Dan Breen Keith Grimes Damian Nowak David Rust Advisor: Prof. Goeckel.
Viterbi Decoder: Presentation #1 Omar Ahmad Prateek Goenka Saim Qidwai Lingyan Sun M1 Overall Project Objective: Design of a high speed Viterbi Decoder.
Reconfigurable Computing S. Reda, Brown University Reconfigurable Computing (EN2911X, Fall07) Lab 2 presentations Prof. Sherief Reda Division of Engineering,
Joseph L. Lindo Algorithms and Data Structures Sir Joseph Lindo University of the Cordilleras.
296.3Page :Algorithms in the Real World Convolutional Coding & Viterbi Decoding.
Viterbi Decoder Project Alon weinberg, Dan Elran Supervisors: Emilia Burlak, Elisha Ulmer.
CSCE350: Data Structures and Algorithms Instructor: Dr. Jianjun Hu Fall Department of Computer Science and Engineering.
Lecture 10: Error Control Coding I Chapter 8 – Coding and Error Control From: Wireless Communications and Networks by William Stallings, Prentice Hall,
CS3502: Data and Computer Networks DATA LINK LAYER - 1.
Threshold Phenomena and Fountain Codes Amin Shokrollahi EPFL Joint work with M. Luby, R. Karp, O. Etesami.
Data Link Layer: Error Detection and Correction
Design of a High-Throughput Low-Power IS95 Viterbi Decoder Xun Liu Marios C. Papaefthymiou Advanced Computer Architecture Laboratory Electrical Engineering.
CS3505: DATA LINK LAYER. data link layer  phys. layer subject to errors; not reliable; and only moves information as bits, which alone are not meaningful.
Outline Transmitters (Chapters 3 and 4, Source Coding and Modulation) (week 1 and 2) Receivers (Chapter 5) (week 3 and 4) Received Signal Synchronization.
Error Correction Code (2)
A simple rate ½ convolutional code encoder is shown below. The rectangular box represents one element of a serial shift register. The contents of the shift.
Wireless Communication Research Lab. CGU What is Convolution Code? 指導教授:黃文傑 博士 學生:吳濟廷
Dr. Muqaibel \ EE430 Convolutional Codes 1 Convolutional Codes.
Convolutional Coding In telecommunication, a convolutional code is a type of error- correcting code in which m-bit information symbol to be encoded is.
1 Lecture #13 EGR 277 – Digital Logic Sequential Counters Counters are an important class of sequential circuits. Counters follow a predetermined sequence.
Sami Khorbotly, Ph.D., IEEE member Assistant Professor
Discrete Systems I Lecture 10 Adder and ALU Profs. Koike and Yukita.
FEC decoding algorithm overview VLSI 자동설계연구실 정재헌.
V. Non-Binary Codes: Introduction to Reed Solomon Codes
CSCE 771 Natural Language Processing
296.3:Algorithms in the Real World
DIGITAL SYTEM DESIGN MINI PROJECT CONVOLUTION CODES
Error Detection and Correction
The Viterbi Decoding Algorithm
Part III. Data Link Layer
Chapter 5. Greedy Algorithms
CS434/534: Topics in Networked (Networking) Systems Wireless Foundation: Inter-Symbol Interference (ISI): Wave Shaping, Equalization, OFDM Yang (Richard)
Communication Networks: Technology & Protocols
Advanced Computer Networks
SLIDES FOR CHAPTER 13 ANALYSIS OF CLOCKED SEQUENTIAL CIRCUITS
What is this “Viterbi Decoding”
CS 352 Introduction to Logic Design
Lecture 16 Arithmetic Circuits
Diversity Lecture 7.
Pipelined Architectures for High-Speed and Area-Efficient Viterbi Decoders Chen, Chao-Nan Chu, Hsi-Cheng.
COS 463: Wireless Networks Lecture 9 Kyle Jamieson
Subject Name: Information Theory Coding Subject Code: 10EC55
Error Correction Code (2)
Error Correction Code (2)
Error Correction Code (1)
Error Correction Code (1)
Error Correction Code (2)
COS 463: Wireless Networks Lecture 9 Kyle Jamieson
Arithmetic Circuits.
Homework #2 Due May 29 , Consider a (2,1,4) convolutional code with g(1) = 1+ D2, g(2) = 1+ D + D2 + D3 a. Draw the.
Error Correction Coding
IV. Convolutional Codes
Reconfigurable Computing (EN2911X, Fall07)
Reconfigurable Computing (EN2911X, Fall07)
Reconfigurable Computing (EN2911X, Fall07)
Presentation transcript:

Reconfigurable Computing (EN2911X, Fall07) Lecture 17: Application-Driven Hardware Acceleration (3/4) Prof. Sherief Reda Division of Engineering, Brown University http://ic.engin.brown.edu

Viterbi algorithm A dynamic programming algorithm for finding the most likely sequence of hidden states, the Viterbi path, that results in a sequence of observed events. Originally devised by Andrew Viterbi in 1967 as an error-correction scheme for noisy digital communication links. Widely used in decoding the convolutional codes for both CDMA and GSM digital cellular, dial-up modems, satellite, deep-space communications and 802.11 wireless LANs. Also used in speech recognition, computational linguistics, and bioinformatics.

Viterbi decoders in digital communication systems

1. Encoding using convolution codes + u1 u0 u-1 u-2 + O2 Each input bit is coded onto 2 output bits. The 2 outputs bits are produced by using modulo-2 adders. The selection of which bits are to be added to produce an output bit is called the generating polynomial O1 = (u0+u1+u-1+u-2)mod 2 O2 = (u1+u0+u-2) mod 2

Example Assume the input sequence is 1011 What is the output? 11 11 01 11 01 01 11 Example by C. Langton

Truth table presentation

State transition graph representation O1O2=00 O1O2=11 O1O2=00 O1O2=00 O1O2=01 O1O2=10 O1O2=01 O1O2=10 de Bruijn graph. Not all outputs are shown

Tree representation

Trellis diagram Not all transitions are shown

Output of the encoder for various inputs Encoder output 0000 00 00 00 00 00 00 00 0001 00 00 00 11 11 10 11 0010 00 00 11 11 10 11 00 0011 00 00 11 00 01 01 11 0100 00 11 11 10 11 00 00 0101 00 11 11 01 00 10 11 0110 00 11 00 01 01 11 00 0111 00 11 00 10 10 01 11 1000 11 11 10 11 00 00 00 1001 11 11 10 00 11 10 11 1010 11 11 01 00 10 11 00 1011 11 11 01 11 01 01 11 1100 11 00 01 01 11 00 00 1101 11 00 01 10 00 10 11 1110 11 00 10 10 01 11 00 1111 11 00 10 01 10 01 11 How can we devise a good generating polynomial? Let’s say we receive 01 11 01 11 01 01 11. It is not one of the possible 16 sequences. How do we decode it?

2. Decoding received sequences using the Viterbi algorithm Let’s decode the received sequence 01 11 01 11 01 01 11 000 001 010 011 100 101 110 111 01 11 cost 00 1 11 1

2nd step Let’s decode the received sequence 01 11 01 11 01 01 11 000 001 010 011 100 101 110 111 01 11 cost 00 00 3 11 11 1 11 1 00 3

3rd step Let’s decode the received sequence 01 11 01 11 01 01 11 000 001 010 011 100 101 110 111 01 11 cost 00 00 00 4 11 3 11 11 10 2 01 11 3 11 4 00 00 1 01 2 10 5

4th step Let’s decode the received sequence 01 11 01 11 01 01 11 000 001 010 011 100 101 110 111 01 11 cost 00 00 00 00 min(3, 6) 11 10 11 00 01 11 3 11 11 10 3 01 11 4 11 4 00 00 3 01 1 10 3 A any step, there is only one path from the initial state to any state. In case more than one path converge to a node, always pick the minimum

5th step Let’s decode the received sequence 01 11 01 11 01 01 11 000 001 010 011 100 101 110 111 01 11 cost 00 00 00 4 11 11 11 4 11 11 11 10 10 5 01 01 01 01 11 1 11 11 4 00 00 00 11 3 11 01 01 10 4 10 10 01 3

6th step Let’s decode the received sequence 01 11 01 11 01 01 11 000 001 010 011 100 101 110 111 01 11 cost 00 00 00 4 11 11 11 1 11 11 11 10 10 4 01 01 01 01 01 11 4 11 11 4 00 00 00 3 11 11 01 01 10 5 10 10 01 3

Finally 000 001 010 011 100 101 110 111 01 11 cost 00 00 00 1 11 11 11 11 11 11 5 11 11 10 10 6 01 01 01 01 01 11 6 11 11 3 00 00 00 11 5 11 01 01 10 3 10 10 01 4 Winner path is 000, 100, 010, 101, 110, 011, 001, 000 with input sequence 1011000 What is runtime using SW on a general-purpose CPU? What is the runtime using an FPGA?

Summary So far we have covered popular application-driven algorithms to accelerate in FPGAs FFT for signal and image processor as an example of divide and conquer algorithms Speech recognition applications Viterbi algorithm for digital communication as an example of dynamic programming algorithms Next time, we cover some popular algorithms for bioinformatics

Project updates 2nd project report extended until Sunday Dec 2nd. Make sure to add the new material to the content of the 1st report. The new report is worth 10 points. Main evaluation criterion is your progress on the project plan you outlined in the first report. How thorough and creative your ideas develop? How meticulous is the experimental setup? How do the carried out experiments serve towards the project goals? Make sure to also send me a couple of slides by Monday Dec 3rd to present on Tuesday Dec 4th (last lecture)