IP Library Granted Patent US 8,255,780
Granted Patent B2
US 8,255,780 · App. 12/708,323 · Granted Aug 28, 2012

Scalable VLIW processor for high-speed viterbi and trellis coded modulation decoding

Assignee: Saankhya Labs Pvt Ltd.
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 8,255,780
App. No.
12/708,323
Granted
Aug 28, 2012
Kind
B2
Abstract

An application specific processor to implement a Viterbi decode algorithm for channel decoding functions of received symbols. The Viterbi decode algorithm is at least one of a Bit Serial decode algorithm, and block based decode algorithm. The application specific processor includes a Load-Store, Logical and De-puncturing (LLD) slot that performs a Load-Store function, a Logical function, a De-puncturing function, and a Trace-back Address generation function, a Branch Metric Compute (BMU) slot that performs Radix-2 branch metric computations, Radix-4 branch metric computations, and Squared Euclidean Branch Metric computations, and an Add-Compare-Select (ACS) slot that performs Radix-2 Path metric computations, Radix-4 Path metric computations, best state computations, and a decision bit generation. The LLD slot, the BMU slot and the ACS slot perform in a software pipelined manner to enable high speed Viterbi decoding functions.

Claims (41)

1. A method of performing a high speed Viterbi and Trellis Coded Modulated (TCM) decoding for a Multi-Standard support in an application specific processor, said application specific processor comprising:

a Load-Store, Logical and De-puncturing (LLD) slot that performs at least one of a Load-Store function, a Logical function, a De-puncturing function, and a Traceback Address generation function to generate decode bits;

a Branch Metric Compute (BMU) slot that performs at least one of Radix-2 branch metric computations, Radix-4 branch metric computations, and Squared Euclidean Branch Metric computations;

an Add-Compare-Select (ACS) slot that performs at least one of Radix-2 Path metric computations, Radix-4 Path metric computations, best state computations, and a decision bit generation; and

specialized register file components, said specialized register file components comprising an optimized number of at least one of read ports and write ports that enables a faster processing of said Viterbi decoding functions, wherein said specialized register file components comprising at least one of a De-puncturing Register File, a General Purpose Register file, Primary and Secondary State Metric Register files, and Primary and Secondary Branch Metric Register files, wherein said method comprising:

loading channel symbols in an input buffer based on instructions received as a fetch packet;

de-puncturing said channel symbols based on a puncturing code rate, said puncturing code rate is at least one of a ½, ⅔, ¾, ⅚, and ⅞ rates convolution codes;

storing de-punctured channel symbols in said De-puncturing Register File; and

extracting bits from said De-puncturing Register File to said General Purpose Register File.

2. The method of claim 1 , further comprising computing at least one of Radix-2 branch metric values, Radix-4 branch metric values, and Squared Euclidean branch metric values for said de-punctured channel symbols in said BMU slot.

3. The method of claim 1 , further comprising computing at least one of Quad Radix-4and Dual Radix-4add-compare-select values in said ACS slot, wherein said ACS slot is a 4 way Single Instruction Multiple Data (SIMD) slot.

4. The method of claim 3 , further comprising generating decision bits based on said add-compare-select values and storing said decision bits in a trace back buffer.

5. The method of claim 1 , wherein said de-puncturing said channel symbols is enabled using DEPUN instructions.

6. A method of generating a trackback address of high speed Viterbi and Trellis Coded Modulated (TCM) decoding for a Multi-Standard support in a Traceback buffer, said method being implemented in an application specific processor, said application specific processor comprising:

a Load-Store, Logical and De-puncturing (LLD) slot to perform at least one of a Load-Store function, a Logical function, a De-puncturing function, and a Traceback Address generation function;

a Branch Metric Compute (BMU) slot that performs at least one of Radix-2 branch metric computations, Radix-4 branch metric computations, and Squared Euclidean Branch Metric computations; and

an Add-Compare-Select (ACS) slot that performs at least one of Radix-2 Path metric computations, Radix-4 Path metric computations, best state computations, and a decision bit generation, wherein said method comprising:

loading a base pointer with an InitTraceback pointer;

obtaining a best state index based on said best state metric computations from said ACS slot using a general purpose register;

selecting an appropriate bit from said best state index based on a threshold indicator bit index, wherein said threshold indicator bit index is stored in a CPU control register (CCR);

obtaining a next InitTraceback pointer, wherein said next InitTraceback pointer is obtained by multiplying a constant value constant scaling factor to a value of said appropriate bit being indexed from said best state index using said threshold indicator bit index and adding a base address;

performing at least one of a post-increment offset indexing or a post-decrement offset indexing in said Traceback buffer;

extracting N decision bits based on a state metric computation, wherein said N bits are extracted using a decision vector loaded from a location by said InitTraceback pointer;

appending said N decision bits to derive a Next Best State Index, wherein said N decision bits are appended on a most significant side of said best state index to derive said Next Best State Index for a Traceback in forward Trellis;

wherein said N decision bits are appended on a least significant side of said best state index to derive said Next Best State Index for a Traceback in reverse Trellis;

shifting N bits of said Best State Index, wherein said N bits are shifted from a least significant side of said Best State Index for said Traceback in forward Trellis;

wherein said N bits are shifted from a most significant side of said Best State Index for said Traceback in reverse Trellis; and

obtaining decoded bits by concatenating said N bits being shifted.

7. The method of claim 6 , further comprising:

loading a base pointer with said next InitTraceback pointer being obtained;

obtaining a best state index based on a result from said next best state index;

wherein if said Traceback buffer is not fully traversed and said decoded bits are not extracted, said method further comprising:

selecting an appropriate bit from said best state index based on a threshold indicator bit index;

obtaining a next InitTraceback pointer, wherein said next InitTraceback pointer is obtained by multiplying a constant value constant scaling factor to a value of said appropriate bit being indexed from said best state index using said threshold indicator bit index and adding a base address;

performing at least one of a post-increment offset indexing or a post-decrement offset indexing in said Traceback buffer;

extracting N decision bits based on a state metric computation, wherein said N decision bits are extracted using a decision vector loaded from a location by said InitTraceback pointer;

appending said N decision bits to derive a Next Best State Index, wherein said N decision bits are appended on a most significant side of said best state index to derive said Next Best State Index for said Traceback in forward Trellis;

wherein said N decision bits are appended on a least significant side of said best state index to derive said Next Best State Index for said Traceback in reverse Trellis; and

shifting N bits of said Best State Index, wherein said N bits are shifted from a least significant side of said Best State Index for said Traceback in forward Trellis;

wherein said N bits are shifted from a most significant side of said Best State Index for said Traceback in reverse Trellis; and

obtaining decoded bits by concatenating said shifted N bits being shifted.

Assignments (2)
MERGER Recorded Dec 6, 2024
From: SAANKHYA LABS PRIVATE LIMITED; SAANKHYA STRATEGIC ELECTRONICS PRIVATE LIMITED
To: TEJAS NETWORKS LIMITED
Reel/Frame 069583/0674 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 18, 2010
From: SAHA, ANINDYA; MALLAPUR, HEMANT; BILLAVA, SANTHOSH; BMV, SMITHA
To: SAANKHYA LABS PVT LTD
Reel/Frame 023958/0590 →
Priority Claims (1)
IN 346/CHE/2009 · Feb 18, 2009 · national
Continuity (1)
Related Publication 20100211858A1 · Aug 19, 2010