1EE290C - Spring 2004Advanced Topics in Circuit DesignHigh-Speed Electrical InterfacesLecture 12ComponentsViterbiDecoderBorivoje NikolicMarch 4, 2004.2OutlineViterbi decoderHow it worksWhat is it used forDigital implementationsAnalog implementations23Viterbi AlgorithmExample of dynamic programming [Bellman’57]Invented by A. Viterbiin 1967Explained by Forney in 1972,1973Used for:Decoding convolutional codesDecoding trellis codesMaximum likelihood detectionSpeech recognition, etc.Types:Hard-input, hard-outputSoft-input, hard-outputSoft-input, soft-output 4Jared’s Trip to Berkeley35Jared’s Trip to Berkeley6TrellisStates + edgesNo loopsWeights in minutesMountain ViewPaloAltoMilpitasUnionCitySan MateoHaywardOaklandSan FranciscoBerkeley515101515 151520 202040204047Shortest Time to Get to Berkeley?What is the best path to take to:Union City?Hayward?Mountain ViewPaloAltoMilpitasUnionCitySan MateoHaywardOaklandSan FranciscoBerkeley515101515 151520 2020402040Choose the minimum cost at each point (state)8Shortest Time to Get to Berkeley?What is the best path to take to:Union City?Mountain ViewPaloAlto(5)Milpitas(15)UnionCity(20)San MateoHaywardOaklandSan FranciscoBerkeley5151015202059Shortest Time to Get to Berkeley?What is the best path to take to:Hayward?Mountain ViewPaloAlto(5)MilpitasUnionCity(20)San MateoHayward(35)OaklandSan FranciscoBerkeley515151520 20204010Shortest Time to Get to Berkeley?Mountain ViewPaloAlto(5)MilpitasUnionCity(20)San MateoHayward(35)Oakland(50)San FranciscoBerkeley(65)5151515 151520 20611Digital Baseband Transceiver12Convolutional CodesAdding redundancyD D++didi-1di-2Channel01101+D21+D+D201110100(00, 11, 10, 10)Generators:G1= 101G2= 111713State Transition Diagrams001101100/001/110/011/100/111/000/101/0114Error Sequencesa = 00b = 01d = 11c = 100011000110011011ab cdaw=2w=2w=0w=1w=1w=1w=1Minimum distance error event is 4 bits815Decisions at Each Step00011011ii+1 i+2State (path)metricsBranchmetricsIn Gaussian channel:bm = (yk– sk)2In BSC:bm = dH(yk, sk) = |yk– sk|dHis Hamming distanceIf received yk= 10dH(10, 00) = 1dH(10, 01) = 216Trellis Diagram00011011ii+1 i+2Time-indexed state diagrami+3 i+40/001/110/001/110/111/00917The Viterbi AlgorithmIllustrated by 2-state trellissmn11−smn21−smn1smn2timetn−1tnbm1bm2bm3bm4()( )sm sm bm sm bmsm sm bm sm bmn n nn n n1 1 1 2 32 1 2 2 41 11 1= + += + +− −− −min ,min , AddAddCompareSelect18Viterbi DecoderImplements Viterbi algorithmThree main componentsBranch metric calculationPath metric accumulation (add-compare-select recursion)Survivor path decode1019Viterbi DecoderDBranchmetrics unitAdd-Compare-SelectSurvivorpath decodeBranch metrics unitCalculates the distances between the received signal and the ideal signalsAdd-Compare-Select unitAccumulates path metricsSurvivor path decodeKeeps track of the path through the trellisInputsDecoded bits20Calculating Branch MetricsAssume G1and G2both output a 0Soft decoder inputs are 0.1 and 0.25 insteadBranch metrics:bm00= |0 – 0.1| + |0 – 0.25| = 0.35bm01= |0 – 0.1| + |1 – 0.25| = 0.85bm10= |1 – 0.1| + |0 – 0.25| = 1.15bm11= |1 – 0.1| + |1 – 0.25| = 1.651121Calculating Branch MetricsEuclidean distances (AWGN channel)bmi= (yk– sk)2skare usually integersbmi= yk2-2Ciyk+ Ci2Since ykterms are common to all branch metrics they drop out in ACS comparison, and can be eliminated.Ci2 are precomputedand 2Ciykare shifts and adds.22Conventional add-compare-select unitAdd-Compare-Select RecursionEight state trellis1223Add-Compare-Select RecursionAdderAdderSubtractor2:1 MultiplexerRegistersm1sm2bm1bm2MSBDecisionNew State Metric558 88 8824Add-Compare-Select Recursionsm20bm20sm21bm21sm22bm22sm23bm23sm24bm24sm25sm26sm27+++++++++−−−−−−−−+++++++sm10sm0sm1sm2sm3sm14sm4bm10bm11bm12bm13bm14sm15sm5sm16sm6sm17sm7diff1325Add-Compare-Select RecursionBit1 234 5670SelectRegisterRegisterTimeAddCCCCCCCC26Radix-4 add-compare-select unitAdd-Compare-Select RecursionOne step lookaheadapplied to an eight-state trellis1427Add-Compare-Select RecursionAdderAdder Subtractor4:1 MultiplexerRegistersm1sm2bm1bm2MSBDecisionNew State MetricAdder Subtractor Subtractorsm3SelectMSBMSBbm3Adder Subtractor Subtractor Subtractorsm4bm4MSBMSBMSBInhibit sm 3Inhibit sm455558 8 8 88 8 8 884-way ACS:2 additions + 6 comparisons28Add-Compare-Select RecursionConcurrent add and compareSridharan, Carley, JSSC’001529Add-Compare-Select RecursionRetimed ACSFettweiss, Globecom’9530Parallel compare-select-add unitAdd-Compare-Select Recursion1631Area comparison of various ACS structuresAdd-Compare-Select Recursion32Power comparison of various ACS structuresAdd-Compare-Select Recursion1733Extreme ACSsLSB-first computation MSB-first computationFettweiss, Meyr, TCom’90Yeung, Rabaey, ISSCC’95Drawings by Haratsch34RNS-Based ACSsi∈ {0, 1, 2}, and are two-bit encoded as si∈ {00, 01, 11} ∑−==102wiiisSsmx0,y0bm0s0co0 sx1sy1smx1,y1bm1s1co1 sx2sy2smx2,y2bm2s2co2sx7sy7smx0,y0bm7 = 0s7co7sx0 = 00sy0 = s0normalizationc61835Bit-Level Pipelined ACSADD3 ADD3ADD2 ADD2ADD1 ADD1ClkADD0 ADD0ADD3ADD2SEL3 SEL3SEL2 SEL2SEL1SEL0Yeung, Rabaey, ISSCC’9536Analog ACSFukahori, ISSCC’981937Interleaved Analog ACS38State metrics smiand smjrepresented on a number circleMetric Normalization20390123nn−1n−2n−3n−4n−54-state trellis exampleSurvivor Path Decode40Register
View Full Document