N/A
N/A
1. Technical Field of the Invention
The present invention discloses a method of performing serial functions in parallel.
2. Background of the Invention
Integrated Circuit (IC) semiconductor devices, such as Field Programmable Gate Arrays (FPGAs) and Application Specific Integrated Circuits (ASICs) are employed to implement logical functions, such as implementing combinational logic elements or combinatorial logic elements to reduce a number of bits (n) into a smaller number of bits (<n). Such logical functions can include the linear logic functions XOR, NOR, AND, NAND, OR and NOR. When a serial bit stream of an arbitrary n-bit length is used to perform serial functions, such as implementing any linear logic function, each bit depends upon the previous bit, or each function depends upon the previous function. For example,
The present invention increases the transmission rate of a serial datapath by dividing the datapath into several smaller independent stages, or pipeline stages, allowing the present invention to perform serial functions in a parallel manner, with serial functions occurring concurrently over the datapath's plurality of pipeline stages. Such pipeline stages include both logic and memory, and therefore this method may be utilized when a datapath, comprised of a serial equation of an arbitrary length, must be evaluated on a bit-by-bit, or on a function-by-function basis. By performing serial functions in a parallel manner, with linear logic functions occurring concurrently across two or more pipeline stages, transmission speeds are increased so that n-bits can be input to the system each clock cycle, with n-bits output from the system each clock cycle.
The present invention discloses a method to perform serial functions in parallel via a pipeline structure. The present invention may be utilized when a data path, comprised of a serial equation of an arbitrary length, must be evaluated on a bit-by-bit basis, or must be evaluated on a multiple bit function-by-function basis.
In an illustrative embodiment of the invention, a logic tree is executed via the pipeline structure. This pipelined logic tree employs an arbitrary bit stream of three bits; however, it should be noted that this three-bit bit stream is used for illustrative purposes only and is not intended to limit the scope of the invention, as any size bit stream may be accommodated. The bit stream implements the cascading function FX, where each bit, or each multiple-bit function, depends upon the previous bit. However, by utilizing a pipeline structure to implement multiple serial functions in parallel, the present invention can both input n-bits into the system each clock cycle and output n-bits from the system each clock cycle.
As shown in
The value of the result RC, as the initialization result, is transmitted into the bit stream of the first clock cycle (CLK1),which initiates a “normal phase,” where the same pipeline structure is employed: RC XOR A1 produces the result RA1; RA1 XOR B1 produces the result RB1; and RB1 XOR C1 produces the result RC1. Similarly, the value of the result RC1, as the value of the final result of CLK1, is transmitted to the bit stream of the second clock cycle (CLK2), where the pipeline structure is again employed: RC1 XOR A2 produces the result RA2; RA2 XOR B2 produces the function RB2; RB2 XOR C2 produces the function RC2, which is transmitted on to the next clock cycle (not shown). This process may iterate through any number of clock cycles.
As illustrated in
Claims priority to U.S. Provisional Application No. 61/154,061, “Pipelined Logic Tree,” originally filed Feb. 20, 2009.
Number | Date | Country | |
---|---|---|---|
61154061 | Feb 2009 | US |