A software Defined radio (SDR) subsystem capable of supporting a multiple communication standards and platforms for modulation, demodulation and trans-modulation of an input signal is provided. The SDR subsystem includes a signal conditioning cluster (SCC) unit that includes a signal conditioning cpu adapted for sample based signal processing, a signal processing cluster (SPC) unit that includes a signal processing cpu adapted for block based signal processing, and a channel codec cluster (CCC) unit that performs a channel encoding or a channel decoding operation.
|
11. A method for modulating an input signal in a software defined radio (SDR) subsystem that is capable of supporting multiple communication standards, said method comprising:
performing at least one of a viterbi encoding, a reed solomon (RS) encoding, convolution encoding and a Low-Density Parity-Check (LDPC) encoding on said input signal to produce encoded bits;
performing a modulation, a framing, and a mapping on said encoded bits based on said multiple communication standards to obtain baseband signals using a signal processing cpu (SPROC cpu) adapted for a block based signal processing;
performing an up-conversion and a pulse shaping of said baseband signals to produce a digital IF signal using a signal conditioning cpu (SCON cpu) adapted for a sample based signal processing;
converting said digital IF signal into an analog signal; and
performing, using a complex arithmetic slot and a cordic slot of said signal processing cpu (SPROC cpu), said modulation, said framing and said mapping on said encoded bits.
1. A software Defined radio (SDR) subsystem capable of supporting multiple communication standards, for modulation and demodulation of an input signal, said SDR subsystem comprising:
a signal conditioning cluster (SCC) unit;
a signal processing cluster (SPC) unit; and
a channel codec cluster (CCC) unit that performs a channel encoding and a channel decoding;
wherein said SCC unit (i) receives a baseband signal from said SPC unit and produces a digital intermediate frequency (IF) signal for said modulation, and (ii) receives an IF signal from a tuner and produces a complex baseband signal for said demodulation; wherein said SPC unit (i) receives encoded bits from said CCC unit and produces said baseband signal for said modulation, and (ii) receives said complex baseband signal from said SCC unit and produces decision bits for said demodulation; wherein said CCC unit (i) receives said input signal and produces said encoded bits for said modulation, and (ii) receives said decision bits from said SPC unit and produces a decoded data for said demodulation.
8. A method for demodulating an input signal in software defined radio (SDR) subsystem that is capable of supporting multiple communication standards, said method comprising:
receiving from a tuner one of a zero intermediate frequency (IF) signal, a low IF signal, and a standard IF signal;
down converting one of said low IF signal, and said standard IF signal into a down converted IF signal;
performing a FIR filtering, an IIR filtering, an interpolation and a sample rate conversion filtering on said down converted IF signal to produce a filtered complex baseband signal using a signal conditioning cpu (SCON cpu) adapted for a sample based signal processing;
performing a demodulation, a channel estimation, a channel correction, and a de-mapping on said filtered complex baseband signal based on said multiple communication standards to obtain decision bits using a signal processing cpu (SPROC cpu) adapted for a block based signal processing; and
performing at least one of a viterbi decoding, a reed solomon (RS) decoding, and a Low-Density Parity-Check (LDPC) decoding on said decision bits to obtain decoded data.
2. The SDR subsystem of
3. The SDR subsystem of
4. The SDR subsystem of
5. The SDR subsystem of
6. The SDR subsystem of
7. The SDR subsystem of
9. The method of
10. The method of
12. The method of
|
1. Technical Field
The embodiments herein generally relate to modulation, demodulation, and trans-modulation of an input signal, and, more particularly, to a software defined radio subsystem that is capable of supporting modulation, demodulation and trans-modulation for multiple analog and digital communication standards.
2. Description of the Related Art
Typical demodulator solutions today which cater to communication standards such as Digital TV (DTV) standards and/or Analog TV (ATV) standards consist of separate pieces of digital signal processing hardware blocks which are standard specific. With the proliferation of medium specific and region specific communication standards, supporting all standards on a single chassis is becoming necessary to reduce the diversity cost of maintaining different production lines for different standards. If one were to make a system solution using different region and medium specific demodulators, the bill of materials cost would be very high for end customers. The process of developing a single chip to address such diversity using system on chip integration of signal processing hardware blocks leads to very large silicon area thus leading to prohibitively higher costs.
In addition, supporting such a multitude of standards using a single programmable processor would necessitate operating it at an extremely high frequency (e.g., several tens of Gigahertz) which would consume extremely high power thus making it unviable for consumer usage. Hence there is a need to develop a solution which is area inexpensive, that consumes lower power, and that also caters to a multitude of both digital and analog communication standards. Also, RF tuners which interface with various TV demodulators operate at various intermediate frequencies (IF), like a standard IF (36 MHz or 44 MHz), a low IF (4-4.5 Mhz) or a zero IF. This also requires different signal processing hardware blocks based on the IF type. Hence additional area and power would have been incurred if multiple tuners catering to various standards have to be supported on the same chip.
Further, DTV and ATV systems found in the market today are extremely inflexible. They cannot support field upgradeability, additional support of a non-implemented standard, or even support a new feature for an existing standard without mandating a device redesign. With more new DTV standards evolving today, such platforms would need to be redesigned from scratch, due to which a market opportunity window would be lost. There have been attempts made to address these requirements individually. One such approach to address the issue of demodulators interfacing to multiple types of tuners (e.g. standard IF, low IF and zero IF) is to build DSP hardware which is standard specific.
For interfacing to zero-IF tuners, typically two separate sampling paths obtained from an IQ ADC (Analog to Digital Converter) are required whereas for interfacing to a standard IF or a low IF tuner only one sampling path is required. Some implementations which can utilize a shared hardware for two standards can be envisioned, but they are not capable of handling more digital TV standards (ATSC, DVB-T, DVB-S, J.83A.J.83B, J.83C, ISDB-T, CDMB-T) and analog TV standards (NSTC, SECAM and PAL). One such architecture tries to perform symbol processing tasks on a DSP processor and signal conditioning stages like filtering and spectrum shaping in beginning stages within an optimized hardware accelerator. However, due to this, it is impossible for the architecture to interface to different tuners with differing intermediate frequencies.
In addition, a requirement for supporting different intermediate frequencies (e.g., 4.5 MHz, 36 MHz, and 44 MHz) and different types of tuners (e.g., a CAN tuner, a silicon tuner) requires multiple hardware signal processing chains working in parallel. Such a solution would inevitably be area expensive thus increasing cost of the demodulator.
Hardwired architectures are ideally suited for implementing standard specific demodulation. However they are not flexible and cannot be reused as they are more expensive. The hardwired architecture does not scale with addition of new features or standards. Receivers perform complex signal processing algorithms that need to be adaptive. Any minor changes force an expensive silicon re-spin. Further, as the number of standards to be supported increases, hardwired architectures need more ‘silicon real estate’. This results in higher recurring costs. In addition, moving hardware implementation blocks across product lines is difficult and expensive. A general purpose programmable DSP like the TI C6x can be an alternative to the hardwired architectures. However a general purpose DSP is targeted for a wide range of applications like MPEG decoding, graphics and others. This leads to a solution that is prohibitively expensive for consumer applications.
The hardwired architectures and general purpose DSPs are two ends of the spectrum. The benefits of both a hardwired architecture and a DSP can be met by an architecture based on Application Specific Signal Processors (ASSP). These ASSPs are designed specifically to solve a class of signal processing problems in an application.
An alternative implementation of a demodulator can be envisioned by integrating standard specific demodulators with separate paths in their receive signal processing chains. This could start from Intermediate Frequency (IF) processing which is done at sample rate, and end with demapping which is performed at a symbol rate, just before an inner and an outer decoding is performed. However such a demodulator that is constructed by integrating standard specific demodulators would be area and cost expensive, and would also consume significantly more power. It is extremely difficult to create a reusable-shared hardwired architecture to cater to all digital and analog TV standards due to a multitude of reasons. One such reason is that the sampling rate of IF signals obtained in various TV standards required for receiving them with minimum adjacent channel interference is different for each of the standards. The frequencies may range from 25 MHz to 80 MHz.
In addition, for zero IF tuners, there is additional processing required for IQ imbalance correction, which is absent in standard and low-IF tuners. Hence, it is impossible to supporting all types of tuners for several Intermediate frequencies (IF) using shared resources, since several replicas of hardware for IF processing tuned to respective standards are required. Further, some standards are based on a single carrier (e.g. ATSC, single carrier mode of CDMB-T, NTSC, PAL and SECAM) while some others like DVB-T, DVB-S, ISDB-T, multicarrier mode of CDMB-T are based on multi-carrier modulation techniques like OFDM. While demodulation of multicarrier standards is typically done using block based techniques, single carrier standards cannot be treated in a similar way. This typically leads to two different philosophies of hardware design which are impossible to merge and thereby support on a shared signal processing hardware.
Further, carrier and timing recovery methods used for different digital TV and analog TV standards differ because for single carrier standards (e.g., ATSC) there is a suppressed pilot or analog TV standards which have colour and sound carriers. For Multi-carrier standards (like DVB-T, DVB-S, ISDB-T, CDMB-T etc) the received signal consists of multiple tones. For Cable standards (ITU-T J.83A/J.83B and J.83C) the transmitted signal is pilot-less. Thus the carrier/timing recovery scheme required for supporting multiple TV standards on a single chip would require different signal processing hardware. This inevitably leads to a much larger area and increased cost. For instance, a Television (TV) communication standard is considered as an example. Further, other communication standards include a 3G standard, a Wi-Fi standard, a LTE standard, a Bluetooth standard, or any other such standards are also having same drawbacks discussed in the TV standards.
Equalization methods used across different standards to overcome multipath environments are also radically different. While most of the multi-carrier (OFDM) based standards estimate channel impulse response using frequency domain analysis (like FFT) or a combination of time and frequency domain analysis, most of the single-carrier based standards require a time domain equalizer with variable feed-forward and feedback taps. Again such a huge difference makes it impossible to share the same resource in a hardware based implementation. Thus supporting multiple communication standards would need disparate hardware to be integrated thereby increasing area significantly.
In view of the foregoing, an embodiment herein provides a Software Defined Radio (SDR) subsystem capable of supporting multiple communication standards for modulation and demodulation of an input signal. The SDR subsystem includes (i) a Signal Conditioning Cluster (SCC) unit (ii) a Signal Processing Cluster (SPC) unit and (iii) a Channel Codec Cluster (CCC) unit that performs a channel encoding and a channel decoding. The SCC unit (a) receives a baseband signal from the SPC unit and produces a digital Intermediate Frequency (IF) signal for the modulation and (b) receives an IF signal from a tuner and produces a complex baseband signal for the demodulation. The SPC unit (a) receives encoded bits from the CCC unit and produces the baseband signal for the modulation and (b) receives the complex baseband signal from the SCC unit and produces decision bits for the demodulation. The CCC unit (a) receives the input signal and produces the encoded bits the modulation and (b) receives the decision bits from the SPC unit and produces a decoded data for the demodulation. In one embodiment, the SCC unit (a) receives the baseband signal from the SPC unit and produces the digital Intermediate Frequency (IF) signal based on a first communication standard for a trans-modulation and (b) receives the IF signal from the tuner and produces the complex baseband signal based on a second communication standard for the trans-modulation. The SPC unit (a) receives the encoded bits from the CCC unit and produces the baseband signal based on the first communication standard for the trans-modulation and (b) receives the complex baseband signal from the SCC unit and produces the decision bits based on the second communication standard for the trans-modulation.
The multiple communication standards include analog and digital communication standards. The SCC unit further includes (i) a Digital Front End (DFE) unit, (ii) a plurality of Signal Conditioning (SCON) CPUs adapted to sample based signal processing and (iii) a memory sub system. The DFE includes a Numerically Controlled Oscillator (NCO) that operates at a sample-rate frequency and that performs a digital down-conversion of the IF signal into the complex baseband signal. The SCON CPU (a) perform a pulse shaping of the baseband signal from the SPC unit for the modulation and (b) perform a Finite Impulse Response (FIR) filtering, an Infinite Impulse Response (IIR) filtering, an interpolation, and a sample rate conversion filtering on the complex baseband signal from the NCO for the demodulation. The memory subsystem includes (i) a store-and-forward buffer or a cut-through buffer for storing the complex baseband signal or the baseband signal and (ii) a Direct Memory Access (DMA) unit that extracts data that corresponds to the complex baseband signal or the baseband signal from the store-and-forward buffer or the cut-through buffer based on a programmed threshold.
The SPC unit includes (i) a plurality of Signal Processing (SPROC) CPUs adapted for block based signal processing (ii) a Least Mean Squares (LMS) coprocessor that is coupled to the plurality of SPROC CPUs and (iii) a memory subsystem. The SPROC CPU (a) perform a modulation, a framing and a mapping on the encoded bits from the CCC unit to produce the baseband signal for the modulation of the input signal and (b) perform a demodulation, a channel estimation, a channel correction, and de-mapping of symbols on the complex baseband signal received from the SCC unit to produce the decision bits for the demodulation of the input signal. The Least Mean Squares (LMS) coprocessor performs an adaptive feedback and feed-forward FIR filtering, a coefficient or tap adaptation, and a high speed FIR filtering operation on multiple streams. The memory subsystem includes (i) an Inter-Cluster Buffer (ICB), (ii) a DMA unit that processes a transfer of a processed data to the CCC unit and (iii) a Shared Memory Subsystem (SHM) that is connected across the SPROC CPU. The SHM is used as a buffer for storing and exchanging of computed results between the SPROC CPUs. The SPROC CPUs includes (i) a complex arithmetic slot that performs at least one of real and complex arithmetic operations, wherein the operations include N-way Single Instruction Multiple Data (SIMD) operations, and (ii) a cordic slot that generates (i) sine and cosine values and (ii) magnitude and phases of complex signals, wherein the cordic slot is coupled to the LMS coprocessor to perform cycle efficient read and write operations during an equalizer operation. The complex arithmetic slot also supports Fast Fourier Transform (FFT) butterfly operations. The cordic slot further performs N-way arithmetic, logic and extract operations.
The CCC unit (a) receives the input signal and performs at least one of a viterbi encoding, a Reed Solomon (RS) encoding, and a Low-Density Parity-Check (LDPC) to produces the encoded bits for the modulation and (b) receives the decision bits from the SPC unit and performs at least one of a viterbi decoding, a Reed Solomon (RS) decoding, and a Low-Density Parity-Check (LDPC) to produces the decoded data for the demodulation.
In one aspect, a method for demodulating an input signal in software defined radio (SDR) subsystem is provided. The SDR subsystem is capable of supporting multiple communication standards. The method includes (i) receiving the input signal in a tuner and converting the input signal into one of a zero Intermediate Frequency (IF) signal, a low IF signal, and a standard IF signal (ii) converting the one of the zero IF signal, low IF signal and standard IF signal into a digital signal, (iii) down converting the digital signal into a complex baseband signal, (iv) performing a FIR filtering, an IIR filtering, an interpolation and a sample rate conversion filtering on the complex baseband signal to produce a filtered complex baseband signal using a Signal Conditioning CPU (SCON CPU) adapted for a sample based signal processing, (v) performing a demodulation, a channel estimation, a channel correction, and a de-mapping on the filtered complex baseband signal based on the multiple communication standards to obtain decision bits using a Signal Processing CPU (SPROC CPU) adapted for block based signal processing and (vi) performing at least one of a viterbi decoding, a Reed Solomon (RS) decoding, and a Low-Density Parity-Check (LDPC) decoding on the decision bits to obtain decoded data. Loading and storing of the complex baseband signal may be performed, using a load-store slot of the Signal Conditioning CPU (SCON CPU), to enable filtering operation. The FIR filtering, the IIR filtering, the interpolation and the sample rate conversion filtering may be performed using the filter slot of the SCON CPU on a complex baseband signal obtained from the load-store slot. Arithmetic operations required for filtering operation may be performed using an arithmetic slot of the SCON CPU. The demodulation, the channel estimation, the channel correction, and the de-mapping may be performed on the filtered complex baseband signal using a complex arithmetic slot and a cordic slot of the Signal Processing CPU (SPROC CPU).
In another aspect, a method for modulating an input signal in a software defined radio (SDR) subsystem that is capable of supporting multiple communication standards is provided. The method includes (i) performing at least one of a viterbi encoding, a Reed Solomon (RS) encoding, convolution encoding and a Low-Density Parity-Check (LDPC) encoding on the input signal to produce encoded bits, (ii) performing a modulation, a framing, and a mapping on the encoded bits based on the multiple communication standards to obtain baseband signals using a Signal Processing CPU (SPROC CPU) adapted for a block based signal processing, (iii) performing an up-conversion and a pulse shaping of the baseband signals to produce a digital IF signal using a Signal Conditioning CPU (SCON CPU) adapted for a sample based signal processing and (iv) converting the digital IF signal into an analog signal. The modulation, the framing and the mapping may be performed on the encoded bits using a complex arithmetic slot and a cordic slot of the Signal Processing CPU (SPROC CPU). The up-conversion and the pulse shaping of the baseband signals may be performed using a load-store slot, a filter slot, and an arithmetic slot of the Signal Conditioning CPU (SCON CPU).
These and other aspects of the embodiments herein will be better appreciated and understood when considered in conjunction with the following description and the accompanying drawings. It should be understood, however, that the following descriptions, while indicating preferred embodiments and numerous specific details thereof, are given by way of illustration and not of limitation. Many changes and modifications may be made within the scope of the embodiments herein without departing from the spirit thereof, and the embodiments herein include all such modifications.
The embodiments herein will be better understood from the following detailed description with reference to the drawings, in which:
The embodiments herein and the various features and advantageous details thereof are explained more fully with reference to the non-limiting embodiments that are illustrated in the accompanying drawings and detailed in the following description. Descriptions of well-known components and processing techniques are omitted so as to not unnecessarily obscure the embodiments herein. The examples used herein are intended merely to facilitate an understanding of ways in which the embodiments herein may be practiced and to further enable those of skill in the art to practice the embodiments herein. Accordingly, the examples should not be construed as limiting the scope of the embodiments herein.
As mentioned, there remains a need for a Software Defined Radio (SDR) subsystem that is capable of performing a modulation, a demodulation or a trans-modulation of digital and analog signals covering different mediums like cable, terrestrial, satellite and radio standards. The embodiments herein achieve this by providing the modulation, the demodulation or the trans-modulation of digital as well as analog signals using a software defined radio subsystem. Referring now to the drawings, and more particularly to
During the modulation, the CCC unit 806 performs a channel encoding operation on a packetized data to produce encoded bits. The SPC unit 804 (a) receives the encoded bits and performs a mapping of encoded bits to a baseband signal, (b) a framing operation that inserts data and carrier into the baseband signal, and (c) performs modulation on the baseband signal based on multiple analog and digital communication standards. The SCC unit 802 receives a baseband signal and performs an up-conversion and pulse shaping of a modulated baseband signal to produce a digital Intermediate Frequency (IF) signal.
During the demodulation, the SCC unit 802 receives an Intermediate Frequency (IF) signal from tuner and down-converts into a complex baseband signal and also performs a Finite Impulse Response (FIR) filtering, an Infinite Impulse Response (IIR) filtering, an interpolation, a sample rate conversion filtering on the complex baseband signal. The SPC unit 804 receives the complex baseband signal and performs a demodulation, a channel estimation, a channel correction and de-mapping to produce a decision bits. The CCC unit 806 unit performs a channel decoding operation on the decision bits to produce decoded bits.
During the trans-modulation, the SDR subsystem is capable of modulating the input signal in one communication standards among the multiple communication standards and capable of demodulating the input signal in another communication standard. For instance, a Television (TV) communication standard is considered as an example.
The SPC unit 910 may include (i) one or more LMS accelerators (a LMS coprocessor), (ii) a plurality of signal processing CPUs (SPROC CPUs) which is adapted for a block based signal processing and (iii) a memory subsystem that includes an inter-cluster buffer (SPC-ICB), a shared memory buffer (SPC-SHMB), a packing buffer, and SPC-DMA block. The SPC unit 910 performs one or more tasks such as symbol synchronization, a channel estimation, a channel correction and a demapping to bits to produce a decision bits. In one embodiment the decision bits may be a hard decision bits or soft decision bits. The SPC unit 910 receives the samples in the inter-cluster buffer to be used for further processing. The SPC unit 910 interfaces to the control cluster unit 912 via a bridge to the Inter-cluster buffer (ICB) memory of the Channel Decoding cluster unit 914 via a DMA block.
The overall scheduling and control of the entire software defined radio subsystem 906 is performed by the control cluster unit 912 which includes a general purpose processor with some general purpose peripherals such as a UART, a 2-wire interface and/or a boot ROM. The control cluster unit 912 accesses all individual clusters via the bridge. The channel decoding cluster unit 914 performs the tasks of a viterbi decoding, a Reed Solomon (RS) decoding, and a LDPC decoding along with a byte deinterleaver. The decoded data is finally pushed out as transport stream data in case of Digital TV Standards or CVBS and SIF stream in case of Analog TV Standards to interface to an on-chip/off-chip Digital to Analog Converter (DAC).
The mixer 1008 obtains a digitally synthesized waveform from the NCO 1006 and down-converts the IF signal to a baseband signal. The automatic gain control (AGC) circuitry 1010 ensures that the full-scale range of the analog to digital converter is used effectively. The digital front end 1002 includes an internal FIFO storing incoming sample converted to baseband. The signal conditioning CPUs 1012 may include (i) a filter slot 1016, (ii) a load-store broadcast slot 1018, (iii) an arithmetic slot 1020, and (iv) a logical slot 1022. In one embodiment, the signal conditioning CPU 1012 is capable of interfacing a high speed streaming input samples and implements a FIR filtering, an IIR filtering, and sample rate conversion filters.
In addition, the SCON CPU 1012 also performs carrier synchronization by implementing PLL's in software. The SCON CPU 1012 also performs the task of IQ imbalance correction when input samples are obtained from IQ ADC. The SCON CPU 1012 has a program memory 1024 which interfaces via the program memory interface. The SCON CPUs 1012 interfaces with its dedicated data memory signal conditioning cluster (SCC) data memory 1026, the digital front end 1002, the SCC FIFO 1028 and the SCC DMA 1030 through a data memory interface. The digital front end (DFE) 1002 interfaces with the SCON CPUs 1012 as a memory-mapped device on the digital memory data bus 1014.
The filter slot 1016 is capable of performing real multiply and real MAC operations (with 64 MACs). The filter slot 1016 includes one or more MAC unit that are capable of performing high sample rate FIR filtering and IIR filtering, a decimation operation, an Interpolation, a down-sampling and Up-sampling operation.
The load-store broadcast slot 1018 is capable of performing 128 bit or 8×16 bit sample load-store operations. To support interpolation features there is a load with extract feature which enables retention or rejection of samples from previous load operations and concatenation with incoming loaded samples. The arithmetic slot 1020 is capable of performing basic arithmetic functions such as an addition operation, a subtraction operation, an absolute finding operation, an exponent calculation and swapping of IQ pair of complex signals operation. In addition, the arithmetic slot 1020 also processes accumulator values either by a horizontal addition with post-scaling or just by moving scaled accumulator values into one or more general purpose registers. The logical slot 1022 is capable of supporting basic logical operations such as one or more Boolean operations and Compare operations.
The program memory 1024 is 128 bits wide. The bridge is used at a boot-up time to download each CPU's code into its program memory 1024. The bridge interface is used for transferring control information from a control CPU in the control cluster unit 912 to the SCC unit 908. The SCC data memory bus and arbiter 1014 is a 128-bit wide bus internal to the SCC unit 908 through which the SCON CPUs 1012 and the bridge (e.g., shown as bridge i/f in
After completion of processing by the SCON CPUs 1012, the data is written by the SCON CPUs 1012 over DMEM bus 1014 to the SCC FIFO 1028. The SCC FIFO 1028 serves either as a store-and-forward or as a cut-through buffer. The SCC FIFO 1028 is a 256 bit wide bus with programmable depth. Data is pushed into the SCC FIFO 1028 by writing to its push-address by the CPU. The attached DMA engine (i.e., a SCC-DMA 1030) pops out data from the SCC FIFO 1028 through a dedicated interface independent of data memory bus 1014 when a programmed threshold is reached.
The signal conditioning cluster DMA (SCC-DMA) 1030 is programmed and enabled to perpetually execute data transfers without any need for reprogramming. This is customized to handle bank-based and circular nature of an inter-cluster buffer. Before starting to write a new bank of data, the SCC-DMA 1030 first sends a bank request to the inter-cluster buffer and waits to receive a confirmation for that bank from the signal processing cluster-inter-cluster buffer. When the SCC FIFO 1028 indicates that it is ready with a block of data, the SCC-DMA 1030 starts reading from the SCC FIFO 1028 and writes it into sequential addresses of the Inter-cluster buffer in Signal Processing Cluster.
The SCC-DMA 1030 further samples the SCC FIFO 1028 ready status when it has completed the programmed transfer count (DMA Count) number of double-words. When a bank boundary is reached, the SCC-DMA 1030 communicates the status of current bank to the ICB (inter-cluster buffer) and requests for a next bank. The SCC-DMA 1030 is programmed with information about the range of ICB addresses over which it needs to maintain circularity. The SCC-DMA 1030 assumes the size of each bank as a predefined size to determine when a bank crossover occurs. Associated with the SCON CPUs 1012 is a message box (e.g., shown as SCC MSGBOX in
Special instructions for dividing complex signal by a real signal and Single depth trace-back for viterbi decoding are provided for channel estimation. The load-store slots 1102 are capable of 64 bit load and store operations. They support linear, circular and bit-reverse addressing. In one embodiment, few registers are marked in the register file as address pointers. In addition to load-store operations, the load-store slots 1102 are also capable of performing boolean, compare and extract operations. Additionally, the load-store slots 1102 are capable of executing arithmetic operations such as ADD, SUB and 2-way or 4-way SIMD variants of ADD and SUB operations.
The 2 load-store slots 1102 ensure that a high bandwidth memory interface is required for all symbol processing tasks. The complex arithmetic slot 1104 is capable of performing operations on complex signals. It supports complex multiply, complex conjugate multiply, complex MAC, real multiply, real MAC and real multiply and add operations. These operations may include either 2-way or 4-way SIMD operations. The complex arithmetic slot 1104 also supports very efficient FFT butterfly operations which enable low cycle count FFT operations. To enable division operations required by the channel equalizer, the complex arithmetic slot 1104 supports operations such as a 1-way or a 2-way SIMD complex number divided by a real number.
The cordic slot 1106 is capable of generating twiddle factors (e.g., sine and cosine operations) as well as non-normalized magnitudes and phases of complex signals. The cordic slot 1106 is tightly coupled with the LMS coprocessor 1110 which enables to perform a cycle efficient read and write operations during equalizer operation. The cordic slot 1106 also performs logic, extract, shift, packed extract, packed shift and single or multi-way add, subtract, add-subtract paired operations. The LMS coprocessor 1110 is a compute engine used for channel estimation in digital TV standards and high speed FIR filtering in analog TV Standards. It has efficient hardware structures to perform adaptive feedback and feed-forward FIR filtering, coefficient/tap adaptation based on least-mean-squared algorithm, and high speed FIR filtering operations on multiple streams.
The LMS coprocessor 1110 interfaces to the SPROC CPUs 1108 through either of the load-store slots 1102 (or Bridge) for a transfer of configuration parameters and a tightly coupled register-like interface for transfer of sample update and reading back the result value. A signal processing cluster inter-cluster buffer 1112 is a bank-based memory with wide data width meant for continuous transfer of processed signal from the signal conditioning cluster unit 908 to be consumed by the signal processing cluster unit 910. The signal processing cluster inter-cluster buffer bank 1112 can be written by signal conditioning cluster DMA (one bank at a time) and can be read (multiple banks at a time) by one of the signal processing cluster CPUs 1108. Banks are contiguous in address space and are used in a circular mode by signal conditioning cluster DMA because it is provided for transferring continuous signal data.
The inter-cluster buffer bank 1112 is used in a linear or a circular mode depending on the signal conditioning cluster DMAs parameters. Once programmed, the signal conditioning cluster DMA can carry on writing perpetually. The signal conditioning cluster DMA also incorporates a mode where it stops after transfer of a programmable block of data. A combination of hardware and soft-arbitration techniques are used for accessing the banks in the signal processing cluster inter-cluster bank 1112 amongst the different available masters like DMA, bridge and signal processing cluster CPUs. An error interrupt can be triggered if a non-owner tries to access a bank.
A signal processing cluster shared memory buffer 1114 is a bank-based buffer with a wide data path meant for storage and exchange of computed results between signal processing cluster CPUs 1108. Since the access paths to bridge are also required they could also have similar types of access schemes. There are specific registers for programming a signal processing cluster DMA (SPC-DMA) 1120, a deinterleaver buffer (DEINT BFR) 1118, and to select between different signal processing CPUs 1108 for ownership of the shared memory banks, to ensure that only one CPU has exclusive access. The access to the SPC Shared Memory buffer (SHM) 1114 and CPU-exclusive slaves (PIC, MSGBOX) are arbitrated between the SPROC CPUs 1108 and Bridge either using priority based or round-robin algorithms.
A signal processing data memory 1116 is used as a local memory by the SPROC CPUs 1108. The deinterleaver buffer 1118 assists in a data packing operation to be performed on data written by a SPROC CPUs 1108 before it is transferred by SPC-DMA 1120 to a channel decoding cluster. Specific packing modes for different digital TV standards (like ATSC, DVB-T, ISDB-T and CDMB-T) and analog TV modes exist, which are programmed using configuration registers. The packing buffer accepts data of a certain programmed data width from signal processing CPUs 1108 in a non-sequential order.
SPC-DMA 1120 waits for an indication that data block is ready along with the block size from deinterleaver buffer after which it transfers data to Inter-cluster buffer of channel decoding cluster unit 914. Here the channel decoding cluster unit 914 consists of accelerators performing the tasks of a viterbi and TCM decoder, a Reed Solomon (RS) decoder and a LDPC Decoder. In addition the byte deinterleaver is also present in this cluster. These processes act on the data in various phases as inner decoder and outer decoder. Additional processes such as an inner deinterleaver, an outer deinterleaver and a de-randomizer etc. are monitored in the channel decoding cluster unit 914.
The decoded data is finally collected in the transport stream output block. This contains a ping-pong buffer that accepts packets of transport stream after channel decoding steps are complete and sends them out in 8-bit parallel or serial mode outputs. In case of analog TV standards the processed data from the SPC unit 910 is bypassed through the channel decoding cluster unit 914. The video data (CVBS) is appropriately routed to the Video DAC and the audio data (SIF) is appropriately routed to the SIF DAC.
A time domain synchronization 1612, a Fast Fourier Transform (FFT) 1614, a frequency domain synchronization and a pilot processing 1616, a TMCC decoding 1618, a frequency & time domain deinterleaver 1620, a channel estimation 1622, a hierarchical multiplexer 1624, a channel correction and de-mapping 1626 and a bit deinterleaver 1628 are performed on the SPC unit 910 across one or multiple CPUs. The remaining processes constituting a Viterbi decoding 1630, an outer byte de-interleaving 1632, a reed-solomon decoder and de-randomizer 1634 are performed in the channel decoding cluster unit 914. The final transport stream packet is generated by the TSO module.
The output of the video low pass filter is fed to the LMS coprocessor 1110 which performs the group delay equalization filtering 1916 function. The output from this filter is further up-sampled on another CPU in the SPC unit 910. The output of the up-sampling filter is fed to an on-chip or off-chip CVBS DAC. The outputs from the SPC unit 910 are bypassed to the CVBS DAC and SIF DAC outputs through the channel decoding cluster unit 914.
This is done by interchanging the components of a FIFO, a DMA and an Inter-cluster buffer as compared to the previous (receiver) configurations across the clusters. Once the configuration are changed the signal path goes from channel encoding to signal processing and finally to signal conditioning. The signal processing cluster 2208 maps the encoded bits to waveform and performs a framing, IFFT for OFDM based standards or performs a required modulation as per the broadcasting standard. The signal processing cluster 2208 outputs a modulated baseband signal.
The modulated baseband signal is transferred to the signal conditioning cluster 2206 for spectrum shaping and filtering. The spectrum shaped signal is transmitted either by optionally up-converting using a mixer and NCO combination or as is at baseband from the DFE sub module of the signal conditioning cluster 2206. The up-conversion can be performed externally before transmitting spectrum shaped signal for a baseband signal. This data is passed through a digital to analog converter to transmit a baseband signal or an IF signal. In a similar manner the transmitter path of other digital communication standards can also be mapped and implemented using the software defined radio subsystem 2200.
In this scheme, the transmit path and receive path are shown. The transmit path includes outgoing data being processed via a channel encoding cluster 2306, followed by the signal processing cluster 2302A and finally sent out after being processed by the signal conditioning cluster 2304A. This outgoing signal is fed to a digital to analog convertor 2310 which is up-converted and sent via the transmit antenna 2314. The receive path includes incoming signals from an antenna 2316 which pass through the tuner 2318 to obtain Intermediate frequency or zero IF signals. These signals are digitized using an analog to digital converter 2320 to generate real or complex samples. As explained in previous sections the real or complex signals are processed by the signal conditioning cluster 2304B for sample processing followed by the signal processing cluster 2302B for symbol processing and finally de-mapped to generate bits. The generated bits are passed through a channel decoding cluster 2308 to remove errors process final data bits.
The SDR Subsystem is capable of supporting multiple communication standards (e.g., multiple analog and multiple digital communication standards) and has the ability to interface to Zero-IF, Low-IF and Standard-IF signals from the RF tuner. This capability is enabled by the presence of a Numerically Controlled Oscillator (NCO) which is switchable between the ADC subsystem and the signal conditioning CPU. For the case when the RF tuner generates a zero-IF signal the NCO is switched out of the path, thus allowing the IQ ADC's digitized samples to be directly consumed by the signal conditioning CPU. For the case when the tuner is either Low-IF or Standard-IF the NCO is switched into the path between the ADC and the signal conditioning CPU. The NCO is fed with the appropriate numerical value which enables the frequency translation of the spectrum of the input signal to a baseband frequency centred about zero. The resulting signal is now consumed by the signal conditioning CPU for further processing steps.
The combination of the various DSP Processors in single of multiple instances (namely the signal conditioning CPU (SCON CPU)) is optimized for high speed sample rate processing. The signal processing CPU (SPROC CPU) is adapted for a block based Signal processing. The process of optimizing the SCON CPU and the SPROC CPU enables to handle all the signal processing required for analog TV signal demodulation up to generation of Sound Intermediate Frequency (SIF) signal and Complex Video Baseband Signal (CVBS) and in case of digital TV standard demodulation up to de-mapper outputs. These generated bits can be subsequently fed to an Inner and Outer Forward Error Correction block to generate a Transport Stream. The Execution Units of the different cores and the unique partitioning of the different signal processing tasks enable to achieve demodulation of TV Standards as well as Radio Standards such as Amplitude Modulation (AM), Frequency Modulation (FM) and Digital Audio Broadcasting (DAB).
The architecture of the SDR Subsystem along with the flexible memory interconnects and multiple Signal Conditioning CPUs enables support of higher input sample rates thus allowing any kind of ADC rates to be supported. In addition, multiple signal processing CPUs enables support of arbitrarily high symbol rates. Hence this scalable architecture ensures support of all digital and analog TV standards. The SDR subsystem's components include the signal conditioning CPU's. The SCON CPU is a VLIW architecture consisting of 4 execution slots namely the arithmetic slot, logic slot, filter & scalar load-store unit with broadcast capability.
The SDR subsystem's components consist of a Least Mean Square (LMS) hardware accelerator which is used for both adaptive and non-adaptive filtering and is tightly coupled to the SPROC CPU's cordic unit for data transfer. The adaptive filtering is used for time domain equalizers in single carrier standards and long echo suppression in multicarrier standards. In case of analog TV standards this unit is used for additional FIR filtering at very high sampling rates. In combination with a channel encoder cluster which is capable of performing encoding function for RS, viterbi, LDPC and interleaving, the signal conditioning CPU and the signal processing CPU perform a transmit path or modulator function. The instruction set architecture of signal processing CPU makes it ideal for performing any modulation functions.
In addition, the Instruction set architecture of signal conditioning cluster makes it suitable for all kinds of filtering operations thus enabling it to perform spectral shaping and stage before the signal is transmitted. The combination of NCO and mixer up-converts the desired signal to required frequency band. Hence if the desired signal is passed through a digital to analog convertor, an IF or baseband output can be obtained. The SDR subsystem components of signal processing (SPROC) cluster and signal conditioning (SCON) Cluster can be reused for both transmit and receive functions to be effectively used for universal modulation and demodulation. When used in conjunction with a control CPU and channel decoding and channel encoding cluster functions this enables to build a universal modem for supporting digital communication standards.
The software defined radio subsystem 906 enables a single global TV chassis since it is able to demodulate all digital TV and analog TV standards. The system cost reduction for a global TV chassis is up to a 20% cost reduction per chassis on a $50 bill of material. Thereby, margins are maintained through feature addition. As an example, radio Standards such as FM, AM and DAB can be easily supported without any additional cost. This reduces cost by preventing additional redesigns or device re-spins. The software defined radio subsystem 906 allows support of future standards thus enabling faster time to market of TV OEMs. In addition, it is designed to demodulate all the broadcast TV standards for different types of media and regions. The modulation capability using these components may be further extended to design a universal modem.
The software-defined radio subsystem is a radio communication system where components that have been typically implemented in hardware are instead implemented by means of software on a personal computer or embedded computing devices. Significant amounts of signal processing are handed over to the general-purpose processor, rather than being done in special-purpose hardware. Such a design produces a radio which can receive and transmit widely different radio protocols based solely on the software used.
The software defined radio subsystem enables field upgrade of TV platforms based on region specific and terrain specific conditions, which is a not usually possible using fixed hardware solution. This reduces cost by preventing additional redesigns or device re-spins. For example if some channel conditions in Nordic countries are not met or some Brazil profiles are not met, there is a better chance of supporting it on such SDR subsystem using a software update. The SDR building blocks can be used as a minimum of 2 instances or more multiples, consisting of combinations of transmitter and receiver SDR to implement universal modem functionality.
While the foregoing description is exemplary of the preferred embodiments, those of ordinary skill in the relevant arts will recognize many variations, alterations, modifications, substitutions and the like as are readily possible, especially in light of this description, the accompanying drawings and the claims drawn hereto. The description describes exemplary embodiments particularly in relation to multiple Analog as well as Digital Television (TV) standards, however the SDR subsystem and the methods for modulation, demodulation and trans-modulation disclosed herein can be implemented for any other multiple communication standards as envisaged by a person of ordinary skill in the art. In any case, the foregoing detailed description should not be construed as a limitation, which is limited only by the claims appended hereto.
Padaki, Gururaj, Saha, Anindya, Naik, Parag, Hr, Sunil, Mallapur, Hemant
Patent | Priority | Assignee | Title |
11522600, | Aug 01 2018 | COHERE TECHNOLOGIES, INC | Airborne RF-head system |
11831391, | Aug 01 2018 | Cohere Technologies, Inc. | Airborne RF-head system |
8730079, | Jan 15 2010 | TELEFONAKTIEBOLAGET L M ERICSSON PUBL | Sampling rate converter data flow control mechanism |
Patent | Priority | Assignee | Title |
4866395, | Nov 14 1988 | General Dynamics Government Systems Corporation | Universal carrier recovery and data detection for digital communication systems |
5940438, | Feb 18 1997 | Mitsubishi Electric Research Laboratories, Inc | Universal modem for digital video, audio and data communications |
7061985, | Oct 26 2000 | STMICROELECTRONICS FRANCE | Universal modulator/demodulator |
8095173, | Aug 22 2005 | Intel Corporation | Wireless communication device with physical-layer reconfigurable processing engines |
20050041746, | |||
20100075611, | |||
20100124257, | |||
EP928084, |
Executed on | Assignor | Assignee | Conveyance | Frame | Reel | Doc |
Mar 29 2012 | PADAKI, GURURAJ | Saankhya Labs Private Limited | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 027963 | /0001 | |
Mar 29 2012 | HR, SUNIL | Saankhya Labs Private Limited | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 027963 | /0001 | |
Mar 29 2012 | MALLAPUR, HEMANT | Saankhya Labs Private Limited | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 027963 | /0001 | |
Mar 29 2012 | SAHA, ANINDYA | Saankhya Labs Private Limited | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 027963 | /0001 | |
Mar 29 2012 | NAIK, PARAG | Saankhya Labs Private Limited | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 027963 | /0001 | |
Mar 30 2012 | Saankhya Labs Pvt. Ltd | (assignment on the face of the patent) | / | |||
Jan 19 2014 | KAYARGADDE, VISHWAKUMARA | Saankhya Labs Private Limited | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 032907 | /0325 | |
May 10 2014 | MALLAPUR, HEMANT | Saankhya Labs Private Limited | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 033271 | /0671 | |
May 10 2014 | PADAKI, GURURAJ | Saankhya Labs Private Limited | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 033271 | /0671 | |
May 10 2014 | SAHA, ANINDYA | Saankhya Labs Private Limited | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 033271 | /0671 | |
May 10 2014 | KAYARGADDE, VISHWAKUMARA | Saankhya Labs Private Limited | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 033271 | /0671 | |
May 10 2014 | NAIK, PARAG | Saankhya Labs Private Limited | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 033271 | /0671 | |
May 10 2014 | RAMESH, SUNIL HOSUR | Saankhya Labs Private Limited | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 033271 | /0671 |
Date | Maintenance Fee Events |
Jun 09 2017 | REM: Maintenance Fee Reminder Mailed. |
Oct 12 2017 | M2551: Payment of Maintenance Fee, 4th Yr, Small Entity. |
Oct 12 2017 | M2554: Surcharge for late Payment, Small Entity. |
Feb 19 2021 | M2552: Payment of Maintenance Fee, 8th Yr, Small Entity. |
Date | Maintenance Schedule |
Oct 29 2016 | 4 years fee payment window open |
Apr 29 2017 | 6 months grace period start (w surcharge) |
Oct 29 2017 | patent expiry (for year 4) |
Oct 29 2019 | 2 years to revive unintentionally abandoned end. (for year 4) |
Oct 29 2020 | 8 years fee payment window open |
Apr 29 2021 | 6 months grace period start (w surcharge) |
Oct 29 2021 | patent expiry (for year 8) |
Oct 29 2023 | 2 years to revive unintentionally abandoned end. (for year 8) |
Oct 29 2024 | 12 years fee payment window open |
Apr 29 2025 | 6 months grace period start (w surcharge) |
Oct 29 2025 | patent expiry (for year 12) |
Oct 29 2027 | 2 years to revive unintentionally abandoned end. (for year 12) |