A structure for a parallel cyclic redundancy check (CRC) structure in which the number of cycles in the loopback can be arbitrarily extended is provided. The parallel CRC structure includes a reweighting module in the feedback loop that is pipelined into multiple stages. The parallel CRC structure also includes multiple feed forward reweighting modules that correspond to the multiple pipeline stages in the feedback loop. The reweighting module in the feedback loop accumulates and reweights the contribution of all symbols in the message, while the N reweighting modules in the N parallel feed-forward paths provide the contributions of the symbols that are “in-flight” within the feedback loop to the final CRC checksum.
Legal claims defining the scope of protection. Each claim is shown in both the original legal language and a plain English translation.
1. An integrated circuit (IC) comprising: a cyclic redundancy check (CRC) circuit that receives a message and that includes: a loopback path comprising a plurality of pipeline stages; an exclusive-OR adder circuit; and a plurality of feed-forward paths, wherein each feed-forward path is coupled between the exclusive-OR adder circuit and a respective pipeline stage of the plurality of pipeline stages in the loopback path, receives input signals from the respective pipeline stage, and provides output signals to the exclusive-OR adder circuit.
An integrated circuit (IC) contains a cyclic redundancy check (CRC) circuit that processes a message for error detection. The CRC circuit includes a loopback path with multiple pipeline stages for processing data in parallel. An exclusive-OR adder circuit combines signals. Multiple feed-forward paths connect the exclusive-OR adder to different pipeline stages in the loopback path. Each feed-forward path takes input signals from its respective pipeline stage and provides processed output signals to the exclusive-OR adder circuit. This architecture enables extended cycles in the CRC calculation by feeding intermediate results back into the calculation.
2. The IC of claim 1 , wherein the message comprises a plurality of symbols, the CRC circuit further comprising: a reduce module coupled to an input of the loopback path, wherein the reduce module receives one symbol of the plurality of symbols per clock cycle, wherein the reduce module converts each symbol of the plurality of symbols into a symbol CRC checksum corresponding to that symbol to generate a plurality of symbol CRC checksums, and wherein the reduce module provides the symbol CRC checksums to the pipeline stages of the loopback path through the input of the loopback path.
The integrated circuit (IC) from the previous CRC circuit description receives a message consisting of multiple symbols. A reduce module is connected to the input of the loopback path. This reduce module receives one symbol per clock cycle and converts each symbol into a symbol CRC checksum. The reduce module then sends these symbol CRC checksums to the pipeline stages of the loopback path, enabling parallel CRC processing.
3. The IC of claim 2 , wherein the CRC circuit comprises a plurality of reweighting modules in the plurality of feed-forward paths that generate a plurality of weighted symbol CRC checksums, wherein each reweighting module of the plurality of reweighting modules receives a respective symbol CRC checksum of the plurality of symbol CRC checksums from a respective pipeline stage of the plurality of pipeline stages, and reweighs the respective symbol CRC checksum to generate a weighted symbol CRC checksum of the plurality of weighted symbol CRC checksums.
The integrated circuit (IC) that performs a parallel CRC calculation from the previous checksum description contains multiple reweighting modules located in the feed-forward paths. These modules generate weighted symbol CRC checksums. Each reweighting module receives a symbol CRC checksum from a corresponding pipeline stage and reweighs it. This generates a weighted symbol CRC checksum. The weighted checksums account for the pipelined nature of the loopback path when generating the final CRC value.
4. The IC of claim 3 , wherein the loopback path comprises at least one loopback reweighting module.
The integrated circuit (IC) performing a parallel CRC calculation with reweighting modules from previous descriptions includes at least one loopback reweighting module within the loopback path. This module further adjusts the intermediate CRC values within the loop, enabling more complex CRC polynomials to be implemented efficiently in parallel.
5. The IC of claim 3 , wherein the plurality of reweighting modules comprises a plurality of feed-forward reweighting modules, wherein each feed-forward reweighting module of the plurality of feed-forward reweighting modules is in a respective feed-forward path of the plurality of feed-forward paths.
In the integrated circuit (IC) that performs parallel CRC calculation with reweighting modules from previous descriptions, the reweighting modules are implemented as feed-forward reweighting modules, with each one residing within its respective feed-forward path. This architecture isolates the reweighting operations to the feed-forward paths, which simplifies the design and optimization of the loopback path.
6. The IC of claim 3 , wherein each reweighting module of the plurality of reweighting modules performs a different number of bit-shifts from each other reweighting module of the plurality of reweighting modules when reweighing the respective symbol CRC checksum.
Within the integrated circuit (IC) that performs parallel CRC calculation with multiple feed-forward reweighting modules from previous descriptions, each reweighting module performs a different number of bit-shifts compared to other reweighting modules when reweighing the symbol CRC checksum. These varied bit-shifts apply unique weighting factors to the intermediate checksums, allowing the CRC circuit to implement custom polynomial divisions.
7. The IC of claim 3 , wherein the loopback path accumulates the symbol CRC checksums for the plurality of symbols.
In the integrated circuit (IC) performing parallel CRC calculations from the previous checksum descriptions, the loopback path is responsible for accumulating the symbol CRC checksums of all the input symbols. The accumulated result then forms the basis for the final CRC checksum value of the input message.
8. The IC of claim 7 , wherein the plurality of feed-forward paths provide the weighted symbol CRC checksums to the exclusive-OR adder circuit.
In the integrated circuit (IC) that performs parallel CRC calculation and accumulates symbol checksums from previous descriptions, the feed-forward paths provide the weighted symbol CRC checksums to the exclusive-OR adder circuit. These weighted checksums, representing the contributions of in-flight symbols, are combined by the adder to generate the final CRC checksum.
9. A method for configuring an integrated circuit (IC) comprising a plurality of configurable circuits, the method comprising: forming a loopback path comprising a plurality of pipeline stages; forming an exclusive-OR adder circuit; and forming a plurality of feed-forward paths, wherein each feed-forward path of the plurality of feed-forward paths is coupled between the exclusive-OR adder circuit and a respective pipeline stage of the plurality of pipeline stages in the loopback path, receives input signals from the respective pipeline stage, and provides output signals to the exclusive-OR adder circuit.
A method for configuring an integrated circuit (IC) with configurable circuits involves creating a loopback path consisting of several pipeline stages. It also involves creating an exclusive-OR adder circuit. Finally, it involves creating multiple feed-forward paths. Each feed-forward path connects the exclusive-OR adder circuit to a specific pipeline stage in the loopback path, receives input from that stage, and provides output signals to the exclusive-OR adder circuit. This creates a parallel CRC structure.
10. The method of claim 9 , further comprising: forming a reduce module coupled to an input of the loopback path, wherein the reduce module receives a message that comprises a plurality of symbols, wherein the reduce module converts each symbol of the plurality of symbols into a symbol CRC checksum for that symbol to generate a plurality of symbol CRC checksums, and wherein the reduce module provides the symbol CRC checksums to the pipeline stages of the loopback path through the input of the loopback path.
The IC configuration method described above includes creating a reduce module connected to the input of the loopback path. This reduce module receives a message composed of multiple symbols. The reduce module converts each symbol into a symbol CRC checksum. Finally, the reduce module sends these symbol CRC checksums to the pipeline stages of the loopback path through the loopback path input, enabling the IC to perform CRC calculations on the incoming message.
11. The method of claim 10 , wherein each feed-forward path of the plurality of feed-forward paths comprises a reweighting module for reweighing a respective symbol CRC checksum of the plurality of symbol CRC checksums to generate a plurality of weighted symbol CRC checksums.
The IC configuration method described above includes equipping each feed-forward path with a reweighting module. This module reweighs the respective symbol CRC checksum to produce a weighted symbol CRC checksum. This set of reweighting modules in the feed-forward paths allow for parallel and efficient computation of the overall CRC checksum.
12. The method of claim 11 , wherein each reweighting module reweighs the respective symbol CRC checksum of the plurality of symbol CRC checksums by performing a respectively different number of bit-shifts on the respective symbol CRC checksum compared to bit-shifts performed by each other reweighting module on each other symbol CRC checksum.
The IC configuration method using reweighting modules from previous descriptions includes having each reweighting module reweigh its symbol CRC checksum by applying a unique number of bit-shifts compared to the other reweighting modules. By varying the bit-shift amounts, each reweighting module provides a different weighting to the intermediate CRC checksum, allowing flexibility in the CRC calculation process.
13. The method of claim 10 , wherein the loopback path accumulates the symbol CRC checksums for the plurality of symbols.
The IC configuration method that uses feed-forward paths with reweighting modules from previous descriptions accumulates the symbol CRC checksums for the message's symbols in the loopback path. This accumulation is essential for correctly computing the overall CRC checksum of the message as the symbols are processed through the pipeline stages.
14. The method of claim 13 , wherein the plurality of feed-forward paths provide the weighted symbol CRC checksums to the exclusive-OR adder circuit.
The IC configuration method from previous descriptions where the loopback path accumulates symbol CRC checksums provides the weighted symbol CRC checksums to the exclusive-OR adder circuit via the feed-forward paths. The adder circuit then combines these weighted checksums, producing the final CRC checksum for the input message, which reflects error detection information.
Cooperative Patent Classification codes for this invention. Click any code to explore related patents in that topic.
March 14, 2013
May 2, 2017
Browse 5M+ US patents with plain-English claim translations and AI-generated analysis.