Presentation is loading. Please wait.

Presentation is loading. Please wait.

Reconfigurable Computing (EN2911X, Fall07)

Similar presentations


Presentation on theme: "Reconfigurable Computing (EN2911X, Fall07)"— Presentation transcript:

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

2 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 wireless LANs. Also used in speech recognition, computational linguistics, and bioinformatics.

3 Viterbi decoders in digital communication systems

4 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

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

6 Truth table presentation

7 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

8 Tree representation

9 Trellis diagram Not all transitions are shown

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

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

12 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

13 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

14 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

15 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

16 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

17 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 What is runtime using SW on a general-purpose CPU? What is the runtime using an FPGA?

18 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

19 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)


Download ppt "Reconfigurable Computing (EN2911X, Fall07)"

Similar presentations


Ads by Google