The present invention is directed towards configurable IC with interconnect circuits that also perform storage operations.
The use of configurable integrated circuits (“IC's”) has dramatically increased in recent years. One example of a configurable IC is a field programmable gate array (“FPGA”). An FPGA is a field programmable IC that often has logic circuits, interconnect circuits, and input/output (I/O) circuits. The logic circuits (also called logic blocks) are typically arranged as an internal array of circuits. These logic circuits are typically connected together through numerous interconnect circuits (also called interconnects). The logic and interconnect circuits are often surrounded by the I/O circuits. Like some other configurable IC's, the logic circuits and interconnect circuits of an FPGA are configurable.
In some cases, the IC 300 includes numerous logic circuits 305 and interconnect circuits 310 (e.g., hundreds, thousands, hundreds of thousands, etc. of such circuits). Each logic circuit 305 includes additional logic and interconnect circuits. Specifically,
As shown in
At times, the use of user registers to store such data is suboptimal, as it typically requires data to be passed at a clock's rising edge or a clock's falling edge. In other words, registers often do not provide flexible control over the data passing between the various circuits of the configurable IC. In addition, the placement of a register or a latch in the logic circuit increases the signal delay through the logic circuit, as it requires the use of at least one multiplexer 330 to select between the output of a register/latch 325 and the output of a LUT 320.
Accordingly, there is a need for a configurable IC that has a more flexible approach for storing data and passing the data. More generally, there is a need for more flexible storage mechanisms in configurable IC's.
Some embodiments of the invention provide a configurable integrated circuit (“IC”). The configurable IC includes a set of configurable logic circuits for configurably performing a set of functions. The configurable IC also includes a set of configurable routing circuits for routing signals to and from the configurable circuits. During several operational cycles of the configurable IC, a set of data registers are defined by the configurable routing circuits. These data registers may be used wherever a flip-flop can be used.
Some embodiments provide a reconfigurable IC. This reconfigurable IC includes a set of reconfigurable circuits for reconfigurably performing a set of operations in more than one reconfiguration cycle. The reconfigurable IC also includes a set of reconfigurable circuits that perform a storage operation during one reconfiguration cycle and perform a non-storage operation during a second reconfiguration cycle. At least two of these reconfigurable circuits are communicatively coupled to operate as a data register during at least two reconfiguration cycles.
Some embodiments provide a method of designing a configurable IC. The method includes receiving a first design that has at least one controllable circuit that is initialized by a first type of initialization signal. This first design also has at least one controllable circuit that is initialized by a second type of initialization signal. The method defines a second design based on the first design. The method defines this second design by replacing all controllable circuits that are initialized by the first type of initialization signal with functionally equivalent controllable circuits. Each of these functionally equivalent controllable circuits includes a particular controllable circuit that is initialized by the second type initialization signal.
The novel features of the invention are set forth in the appended claims. However, for purpose of explanation, several embodiments of the invention are set forth in the following figures.
In the following description, numerous details are set forth for purpose of explanation. However, one of ordinary skill in the art will realize that the invention may be practiced without the use of these specific details. For instance, not all embodiments of the invention need to be practiced with the specific number of bits and/or specific devices (e.g., multiplexers) referred to below. In other instances, well-known structures and devices are shown in block diagram form in order not to obscure the description of the invention with unnecessary detail.
Some embodiments of the invention provide a configurable integrated circuit (“IC”). The configurable IC includes a set of configurable logic circuits for configurably performing a set of functions. The configurable IC also includes a set of configurable routing circuits for routing signals to and from the configurable circuits. During several operational cycles of the configurable IC, a set of data registers are defined by the configurable routing circuits. These data registers may be used wherever a flip-flop can be used.
Some embodiments provide a reconfigurable IC. This reconfigurable IC includes a set of reconfigurable circuits for reconfigurably performing a set of operations in more than one reconfiguration cycle. The reconfigurable IC also includes a set of reconfigurable circuits that perform a storage operation during one reconfiguration cycle and perform a non-storage operation during a second reconfiguration cycle. At least two of these reconfigurable circuits are communicatively coupled to operate as a data register during at least two reconfiguration cycles.
Some embodiments provide a method of designing a configurable IC. The method includes receiving a first design that has at least one controllable circuit that is initialized by a first type of initialization signal. This first design also has at least one controllable circuit that is initialized by a second type of initialization signal. The method defines a second design based on the first design. The method defines this second design by replacing all controllable circuits that are initialized by the first type of initialization signal with functionally equivalent controllable circuits. Each of these functionally equivalent controllable circuits includes a particular controllable circuit that is initialized by the second type of initialization signal.
Several more detailed embodiments of the invention are described in sections below. Before describing these embodiments further, an overview of latches and user registers are given in Section II below. This discussion is followed by the discussion in Section III of the configurable IC architecture that is used by some embodiments to implement user registers using interconnect/storage circuits. Next, Section IV describes implementation of user registers in a reconfigurable IC. Next, Section V presents several examples of different uses of user registers. Section VI describes replacing each set (or reset) user register with its functionally equivalent reset (or set) registers. Last, Section VII describes an electronics system that has an IC which implements some of the embodiments of the invention.
I. Terms and Concepts
A. Latches
A latch is one type of a storage element.
B. Registers
A register (also referred to as user register or data register) is a circuit that receives an input data, holds the data for a period of time, and posts the data at its output for a period of time. A user register operates synchronously with a clock. To do this, a register might receive a clock signal. However, this is not an absolute condition. In fact, several registers described below are controlled by enable signaling that are set to cause the registers operation to be synchronous with a clock signal. The enable signals can be driven from different sources. For instance, the enable signal may be generated by circuit logic, driven directly or indirectly by the clock, or may be taken from configuration values stored in a set of storage elements (e.g., SRAM cells).
Assuming that the latches 705 and 710 are enable-high latches, the register 700 operates as follows. Initially, when the clock signal 720 is low, the master latch 705 is open, while the slave latch 710 is closed. When the clock signal 720 then goes high, the slave latch 710 opens and the master latch 705 closes. This, in turn, causes the slave latch 710 to output the signal that was appearing at the input line 730 of the master latch right before the master latch closed. Next, when the clock signal 720 transitions low, the slave latch 710 closes before the master latch 705 opens. This causes the slave latch 710 to hold the value that it was outputting before the clock transitioned low, during the period that the clock remains low. This value (that is being held by the slave latch 710) is the value that the master latch 705 was receiving before the prior low-to-high transition of the clock signal 720.
C. Configurable IC's
A configurable IC is an IC that has configurable circuits. A configurable IC might include configurable computational circuits (e.g., configurable logic circuits) and configurable routing circuits for routing the signals to and from the configurable computation units. In addition to configurable circuits, a configurable IC also typically includes non-configurable circuits (e.g., non-configurable logic circuits, interconnect circuits, memories, etc.).
A configurable circuit is a circuit that can “configurably” perform a set of operations. Specifically, a configurable circuit receives “configuration data” that specifies the operation that the configurable circuit has to perform in the set of operations that it can perform. In some embodiments, configuration data is generated outside of the configurable IC. In these embodiments, a set of software tools typically converts a high-level IC design (e.g., a circuit representation or a hardware description language design) into a set of configuration data that can configure the configurable IC (or more accurately, the configurable IC's configurable circuits) to implement the IC design.
Examples of configurable circuits include configurable interconnect circuits and configurable logic circuits. A logic circuit is a circuit that can perform a function on a set of input data that it receives. A configurable logic circuit is a logic circuit that can be configured to perform different functions on its input data set.
A configurable interconnect circuit is a circuit that can configurably connect an input set to an output set in a variety of ways. An interconnect circuit can connect two terminals or pass a signal from one terminal to another by establishing an electrical path between the terminals. Alternatively, an interconnect circuit can establish a connection or pass a signal between two terminals by having the value of a signal that appears at one terminal appear at the other terminal. In connecting two terminals or passing a signal between two terminals, an interconnect circuit in some embodiments might invert the signal (i.e., might have the signal appearing at one terminal inverted by the time it appears at the other terminal). In other words, the interconnect circuit of some embodiments implements a logic inversion operation in conjunction to its connection operation. Other embodiments, however, do not build such an inversion operation in some or all of their interconnect circuits.
Some embodiments provide reconfigurable ICs. Reconfigurable IC's are one type of configurable IC's. Reconfigurable IC's are configurable IC's that can reconfigure during runtime. In other words, a reconfigurable IC is an IC that has reconfigurable logic circuits and/or reconfigurable interconnect circuits, where the reconfigurable logic and/or interconnect circuits are configurable logic and/or interconnect circuits that can “reconfigure” more than once at runtime. A configurable logic or interconnect circuit reconfigures when it receives a different set of configuration data. Some embodiments of the invention are implemented in reconfigurable IC's that are sub-cycle reconfigurable (i.e., can reconfigure circuits on a sub-cycle basis).
In some embodiments, runtime reconfigurability means reconfiguring without resetting the reconfigurable IC. Resetting a reconfigurable IC entails in some cases resetting the values stored in the state elements of the IC, where state elements are elements like latches, registers, and non-configuration memories (e.g., memories that store the user signals as opposed to the memories that store the configuration data of the configurable circuits). In some embodiments, runtime reconfigurability means reconfiguring after the reconfigurable IC has started processing of the user data. Also, in some embodiments, runtime reconfigurability means reconfiguring after the reconfigurable IC has powered up. These definitions of runtime reconfigurability are not mutually exclusive. Configurable and reconfigurable ICs are described in detail in U.S. patent application Ser. No. 11/081,859, “Configurable IC with Interconnect Circuits that also Perform Storage Operations”, filed on Mar. 15, 2005, now issued as U.S. Pat. No. 7,342,415.
II. Architecture
In some embodiments, the logic circuits are look-up tables (LUTs) while the interconnect circuits are multiplexers. Also, in some embodiments, the LUTs and the multiplexers are sub-cycle reconfigurable circuits, as described in U.S. Patent Application “Configurable IC with Routing Circuits with Offset Connections”, Ser. No. 11/082,193, filed on Mar. 15, 2005, now issued as U.S. Pat. No. 7,295,037. In some of these embodiments, the configurable IC stores multiple sets of configuration data for a sub-cycle reconfigurable circuit, so that the reconfigurable circuit can use different sets of configuration data in different sub-cycles. Other configurable tiles can include other types of circuits, such as memory arrays instead of logic circuits.
In
In
Even though the embodiments described below are described with reference to this specific architecture, one of ordinary skill in the art would realize that other embodiments might be implemented in configurable ICs with other architecture that utilize features of this architecture differently. For instance, some embodiments might use HMUXs differently (for example, they might not just use HMUXs as input select multiplexers but might use them as a part of routing multiplexers or other types of interconnects). Other embodiments might use other types of logic circuits other than LUTs and/or might use more complex LUTs such as 4-input or 5-input LUTs. Moreover, the interconnects in the other embodiments might be multiplexers of a different size. Yet, in some other embodiments, the interconnects might not be multiplexers but might be other types of interconnects.
III. User Registers Implemented with Storage Elements of Interconnect Circuits
Some embodiments are configurable ICs that have storage elements. In some of these embodiments, some or all of the storage elements are located at the interconnect circuits. The storage elements (a) might be located within the interconnect circuit, (b) might be placed at the output of the interconnect circuit, or (c) can be built in the output stage of the interconnect circuit. As described below, some embodiments build the storage elements at the output of the interconnect circuits.
In some embodiments, an RMUX is a complementary pass logic (CPL) implemented 8-to-1 multiplexer. In a CPL implementation of a circuit, a complementary pair of signals represents each logic signal. In other words, the circuit receives true and complement sets of input signals and provides true and complement sets of output signals. In some embodiments all RMUXs have latches built in their output stages. In other embodiments, only some of the RMUXs (e.g., the ones with the smallest number of inputs) have latches built in their output stages. To implement the latch function of an RMUX, the two (true and complement) outputs of the 8-to-1 multiplexer are cross coupled with two NMOS transistors that receive a latch enable signal at their gates. This implementation of an RMUX is further described in the above mentioned U.S. patent application Ser. No. 11/081,859, now issued as U.S. Pat. No. 7,342,415.
Having the storage elements at some or all of the interconnect circuits is highly advantageous. For instance, such interconnect/storage elements obviate the need to route data computed by a first logic circuit to a second logic circuit that stores the computed data before routing the data to a third logic circuit that will use the data. Instead, such computed data can be stored at an interconnect circuit that is at an optimal location along the routing path between the first and third logic circuits. In reconfigurable ICs, such flexibility in routing data is highly advantageous when such data needs to pass between logic circuits that operate in different sub-cycles.
In the architecture illustrated in
As described above, in some embodiments some or all of the interconnect circuits are routing multiplexers with latches. These routing multiplexers may be utilized to implement edge-triggered flip-flops. For instance,
As illustrated in
In order to store data and pass data to each other, the two interconnect/storage elements shown in
Similarly,
As described above, some embodiments utilize RMUXs to implement user registers. There are several advantages to this approach. First, RMUXs are the interconnect circuitry and are available throughout the IC fabric, and therefore, the user registers are readily available anywhere. Second, the user register output is intrinsically part of the interconnect path; there are no extra outputs, and no extra multiplexers are needed to build the user registers. Third, no edge-triggered clock needs to be distributed. Fourth, extra features such as enable and clear are implemented only when needed. Several methods of implementing enable and clear for user registers are described below. Fifth, master/slave latches are easily implemented with the RMUXs. Sixth, the need for RMUXs and user registers can be exchanged. Seventh, setup and hold times are part of the interconnect delay.
IV. User Registers in a Reconfigurable IC
A. User Registers Operating on a Sub-Cycle Faster than the User Design Clock
In some embodiments, a reconfigurable IC is configured in such a way that some user registers may operate on a sub-cycle that is different than the user design clock. As described below, the physical location of a user register may change from one sub-cycle to another without an impact to the user design.
As previously shown in
A person of ordinary skills in the art would recognize that other arrangements of RMUXs to implement a user register are possible. For instance, in the example above where there are four sub-cycles per one user design clock cycle, a user register can be implemented using three RMUXs as illustrated in
B. User Registers Operating on a Sub-Cycle as Fast as the User Design Clock
One of the significant benefits of using RMUXs to implement user registers is that there is no need to distribute a distinct clock for edge-triggered devices. As a result, the effective update of a master/slave RMUX pair can happen only every other sub-cycle. This is not a problem when the sub-cycle clock runs faster than the user clock, but it presents a problem for portions of the design that run at a sub-cycle that is as fast as the user clock. In this latter case, in order to have state updated at the user clock rate, a state device that triggers on either the positive or the negative virtual edge is required. Some embodiments implement such a double-edge triggered user register using RMUXs.
C. User Registers Implemented with Logical RMUX Locations
As described above, an RMUX (such as 1605) may hold a value over several sub-cycles. In some embodiments, the location of such an RMUX in a reconfigurable IC may be a logical location. For instance, the reconfigurable IC may be programmed in such a way that instead of one RMUX acting as master RMUX to hold a value over three sub-cycles and then passing it to the slave RMUX in the fourth sub-cycle, the master RMUX may be a specific RMUX in a sub-cycle and another RMUX in the next sub-cycle. Specifically, the IC may be reconfigured in the next sub-cycle in such a way that the master RMUX is an RMUX for a different portion of the user design. The RMUX previously acting as master RMUX will be freed to do other unrelated operations.
The IC may be reconfigured several times to use different physical RMUXs as logical master RMUX before passing the value of the user register to the slave RMUX. The slave RMUX may be similarly programmed to be a specific physical RMUX during some sub-cycles and to be different physical RMUXs during other sub-cycles. In other words, while as far as the user design is concerned, the logical (or operational) site of a master (or slave) RMUX is the same during different sub-cycles, the physical site of the master (or slave) RMUX may change.
V. Examples of Different Uses for User Registers
As described above, user registers can be implemented to operate as either edge-triggered (i.e., single edge-triggered) or double-edge triggered flip-flops. Therefore, the user registers can be utilized wherever a flip-flop can be used. This section presents several specific examples of the use of user registers. The user registers, for example, may be used for retiming purposes. This retiming may be inherent to a pipeline defined within the user design, or the retiming may be done when mapping the user design to configurable logic and routing circuits of the configurable IC. The user registers may also be used to perform I/O operations.
Some embodiments utilize user registers to facilitate pipelining. Pipelining is a way of performing multiple sets of operations. To do pipelining, each set of operations is broken into subset operations. Different subset operations of each set are overlapped as they are performed. One such example is implementing a finite impulse response (FIR) filter. A FIR filter produces an output, Y, that is the weighted sum of the current and past values of an input, X. The value for the nth sample of Y can be expressed by the following equation (A):
In some embodiments, user registers implemented from RMUXs are used as a part of I/O circuitry.
The above examples illustrate a few uses for user registers. As described above, however, a user register can be utilized where a flip-flop can be used. Therefore, a person of ordinary skill in the art should realize that the use of user registers is not limited to the above examples and many other applications of user registers are feasible.
VI. Replacing Circuit Design Elements with their Equivalents
A. Synthesis Process
IC design tools often include a synthesis tool which receives a description of the user design as input and generates the circuit design to implement the user design. Different synthesis tools accept different formats such as circuit diagrams, source code, Very High Speed Integrated Circuit Hardware Description Language (VHDL), Verilog Hardware Description Language, etc., for their input. In order to optimize the circuit design generated during synthesis, some embodiments replace certain design elements with their functionally equivalent design elements during synthesis.
B. Configurable ICs with only Set Line or Reset Line
As indicated above, some embodiments replace all design elements that have set or reset with their equivalents in a way that either all design elements have set or all have reset inputs. One such design element is a user register.
Similarly,
As described in more detail above, some embodiments replace every design element that requires a certain type of control such as a reset (or set), with a functionally equivalent design element that performs the same function using a different control such as set (or reset).
Substituting design elements to have only set or reset lines has several advantages. For instance, for design fabrics that actually have set and reset lines, it eliminates the need to have both lines distributed throughout the design fabric. Also, having either set or reset functions eliminates the need for implementing a configuration bit to indicate to design elements what to do when a set/reset signal is supplied. Having only set or reset also reduces the need to initialize state elements to define whether a register is a set or a reset register. Some embodiments perform an automatic power up reset. Additional saving in logic circuits may be realized by connecting the reset (or inverted set) signals to the power up reset if permitted by the user.
VII. Electronics System
The bus 3410 collectively represents all system, peripheral, and chipset interconnects (including bus and non-bus interconnect structures) that communicatively connect the numerous internal devices of the system 3400. For instance, the bus 3410 communicatively connects the IC 3405 with the read-only memory 3420, the system memory 3415, and the permanent storage device 3425.
From these various memory units, the IC 3405 receives data for processing and configuration data for configuring the IC's configurable logic and/or interconnect circuits. When the IC 3405 has a processor, the IC also retrieves from the various memory units instructions to execute. The non-volatile memory 3420 stores static data and instructions that are needed by the IC 3405 and other modules of the system 3400. The storage device 3425, on the other hand, is read-and-write memory device. This device is a non-volatile memory unit that stores instruction and/or data even when the system 3400 is off. Like the storage device 3425, the system memory 3415 is a read-and-write memory device. However, unlike storage device 3425, the system memory is a volatile read-and-write memory, such as a random access memory. The system memory stores some of the instructions and/or data that the IC needs at runtime.
The bus 3410 also connects to the input and output devices 3430 and 3435. The input devices enable the user to enter information into the system 3400. The input devices 3430 can include touch-sensitive screens, keys, buttons, keyboards, cursor-controllers, microphone, etc. The output devices 3435 display the output of the system 3400.
Finally, as shown in
While the invention has been described with reference to numerous specific details, one of ordinary skill in the art will recognize that the invention can be embodied in other specific forms without departing from the spirit of the invention. Thus, one of ordinary skill in the art would understand that the invention is not to be limited by the foregoing illustrative details, but rather is to be defined by the appended claims.
This application is a continuation application of U.S. patent application 13/311,531, filed Dec. 5, 2011, now published as U.S. Publication 2012/0139580. U.S. patent application Ser. No. 13/311,531 is a continuation application of U.S. patent application Ser. No. 12/702,290, filed on Feb. 8, 2010, now issued as U.S. Pat. No. 8,089,300. U.S. patent application Ser. No. 12/702,290 is a continuation application of U.S. patent application Ser. No. 11/292,952, filed on Dec. 1, 2005, now issued as U.S. Pat. No. 7,679,401. U.S. patent application Ser. No. 13/311,531, now published U.S. Publication 2012/0139580, and U.S. Pat. Nos. 8,089,300 and 7,679,401 are incorporated herein by reference.
Number | Name | Date | Kind |
---|---|---|---|
4980577 | Baxter | Dec 1990 | A |
5191241 | McCollum et al. | Mar 1993 | A |
5258668 | Cliff et al. | Nov 1993 | A |
5291489 | Morgan et al. | Mar 1994 | A |
5357153 | Chiang et al. | Oct 1994 | A |
5365125 | Goetting et al. | Nov 1994 | A |
5596743 | Bhat et al. | Jan 1997 | A |
5600263 | Trimberger et al. | Feb 1997 | A |
5610829 | Trimberger | Mar 1997 | A |
5629637 | Trimberger et al. | May 1997 | A |
5631578 | Clinton et al. | May 1997 | A |
5640107 | Kruse | Jun 1997 | A |
5656950 | Duong et al. | Aug 1997 | A |
5732246 | Gould et al. | Mar 1998 | A |
5760602 | Tan | Jun 1998 | A |
5761483 | Trimberger | Jun 1998 | A |
5796268 | Kaplinsky | Aug 1998 | A |
5811985 | Trimberger et al. | Sep 1998 | A |
5883525 | Tavana et al. | Mar 1999 | A |
5914616 | Young et al. | Jun 1999 | A |
5940603 | Huang | Aug 1999 | A |
5944813 | Trimberger | Aug 1999 | A |
6018559 | Azegami et al. | Jan 2000 | A |
6140836 | Fujii et al. | Oct 2000 | A |
6163168 | Nguyen et al. | Dec 2000 | A |
6346824 | New | Feb 2002 | B1 |
6348813 | Agrawal et al. | Feb 2002 | B1 |
6396303 | Young | May 2002 | B1 |
6404224 | Azegami et al. | Jun 2002 | B1 |
6441642 | Jones et al. | Aug 2002 | B1 |
6466051 | Jones et al. | Oct 2002 | B1 |
6469540 | Nakaya | Oct 2002 | B2 |
6545505 | Chan et al. | Apr 2003 | B1 |
6593771 | Bailis et al. | Jul 2003 | B2 |
6611153 | Lien et al. | Aug 2003 | B1 |
6674303 | Morse et al. | Jan 2004 | B1 |
6686769 | Nguyen et al. | Feb 2004 | B1 |
6703861 | Ting | Mar 2004 | B2 |
6720813 | Yee et al. | Apr 2004 | B1 |
6731133 | Feng et al. | May 2004 | B1 |
6732068 | Sample et al. | May 2004 | B2 |
6798240 | Pedersen | Sep 2004 | B1 |
6806730 | Bailis et al. | Oct 2004 | B2 |
6810513 | Vest | Oct 2004 | B1 |
6829756 | Trimberger | Dec 2004 | B1 |
6992505 | Zhou | Jan 2006 | B1 |
6998872 | Chirania et al. | Feb 2006 | B1 |
7010667 | Vorbach et al. | Mar 2006 | B2 |
7028281 | Agrawal et al. | Apr 2006 | B1 |
7030651 | Madurawe | Apr 2006 | B2 |
7061941 | Zheng | Jun 2006 | B1 |
7075333 | Chaudhary et al. | Jul 2006 | B1 |
7084666 | Madurawe | Aug 2006 | B2 |
7088134 | Agrawal et al. | Aug 2006 | B1 |
7088136 | Lewis | Aug 2006 | B1 |
7138827 | Trimberger | Nov 2006 | B1 |
7149996 | Lysaght et al. | Dec 2006 | B1 |
7154299 | Swami et al. | Dec 2006 | B2 |
7245150 | Goel et al. | Jul 2007 | B2 |
7274235 | Nicolaidis | Sep 2007 | B2 |
7342415 | Teig et al. | Mar 2008 | B2 |
7372297 | Pugh et al. | May 2008 | B1 |
7489162 | Schmit et al. | Feb 2009 | B1 |
7514957 | Schmit et al. | Apr 2009 | B2 |
7679401 | Redgrave | Mar 2010 | B1 |
7746111 | Gaide et al. | Jun 2010 | B1 |
7898291 | Rohe et al. | Mar 2011 | B2 |
7928761 | Voogel et al. | Apr 2011 | B2 |
8089300 | Redgrave | Jan 2012 | B2 |
8674721 | Redgrave et al. | Mar 2014 | B2 |
8674723 | Redgrave | Mar 2014 | B2 |
20010007428 | Young et al. | Jul 2001 | A1 |
20020008541 | Young et al. | Jan 2002 | A1 |
20020089349 | Barbier et al. | Jul 2002 | A1 |
20020113619 | Wong | Aug 2002 | A1 |
20020125910 | New et al. | Sep 2002 | A1 |
20020125914 | Kim | Sep 2002 | A1 |
20020163357 | Ting | Nov 2002 | A1 |
20030001613 | Nakaya | Jan 2003 | A1 |
20030042931 | Ting | Mar 2003 | A1 |
20040008055 | Khanna et al. | Jan 2004 | A1 |
20040010767 | Agrawal et al. | Jan 2004 | A1 |
20040041610 | Kundu | Mar 2004 | A1 |
20040098630 | Masleid | May 2004 | A1 |
20040124881 | Thadikaran et al. | Jul 2004 | A1 |
20040178818 | Crotty et al. | Sep 2004 | A1 |
20040196066 | Ting | Oct 2004 | A1 |
20040222817 | Madurawe | Nov 2004 | A1 |
20040225980 | Cappelli et al. | Nov 2004 | A1 |
20050231235 | Crotty et al. | Oct 2005 | A1 |
20060164119 | Nowak-Leijten | Jul 2006 | A1 |
20060176075 | Or-Bach | Aug 2006 | A1 |
20060186920 | Feng et al. | Aug 2006 | A1 |
20060220678 | Rozas et al. | Oct 2006 | A1 |
20060220716 | Nicolaidis | Oct 2006 | A1 |
20070143577 | Smith | Jun 2007 | A1 |
20100122105 | Arslan et al. | May 2010 | A1 |
20120124541 | Amundson et al. | May 2012 | A1 |
20120139580 | Redgrave | Jun 2012 | A1 |
20130093462 | Teig et al. | Apr 2013 | A1 |
Entry |
---|
Portions of prosecution history of U.S. Appl. No. 11/292,952, Jan. 27, 2010, Redgrave, Jason. |
Portions of prosecution history of U.S. Appl. No. 12/702,290, Aug. 23, 2011, Redgrave, Jason. |
Portions of prosecution history of U.S. Appl. No. 13/311,531, Jan. 31, 2014, Redgrave, Jason. |
Author Unknown, “§3 Programmable Logic Devices,” Digital System Design, 2001 Month N/A, slides 3.1-3.28. |
Boyer, F-R., et al., “Minimizing Sensitivity to Clock Skew Variations Using Level Sensitive Latches,” Month Unknown, 2001, 4 pages. |
Compton, K., et al., “Reconfigurable Computing: A Survey of Systems and Software,” ACM Computing Surveys, Jun. 2002, pp. 171-210, vol. 34, No. 2, ACM, New York, NY. |
Keutzer, K., “Overview of *configurable* architectures,” Feb. 28, 2002, slides 1-29. |
Kudlugi, et al., “Static Scheduling of Multidomain Circuits for Fast Functional Verification”, IEEE Transactions on Computer-Aided Design of Integrated Circuits and Systems, vol. 21, No. 11, Nov. 2002, pp. 1253-1268. |
Leiserson, C., et al., “Retiming Synchronous Circuitry,” Digital Systems Research Center; Aug. 20, 1986, pp. 1-42, Palo Alto, CA. |
Ochotta, E.S., et al., “A Novel Predictable Segmented FPGA Routing Architecture,” FPGA 98, Feb. 1998, pp. 3-11, ACM, Monterey, CA, USA. |
Pedram, M., “IEEE Circuits and Systems Society Distinguished Lecturer Program,” 2003-2004 Month N/A, 28 pages. |
Rahman, A., et al., “Wiring Requirement and Three-Dimensional Integration Technology for Field Programmable Gate Arrays,” IEEE Transactions on Very Large Scale Integration (VLSI) Systems, Feb. 2003, pp. 44-54, vol. 11, No. 1, IEEE. |
Schmit, H., “Incremental Reconfiguration for Pipelined Applications,” Proceedings of the 5th IEEE Symposium on FPGA-Based Custom Computing Machined, Apr. 16-18, 1997, 9 pages. |
Schmit, H., et al., “FPGA Switch Block Layout and Evaluation,” FPGA '02, Feb. 24-26, 2002, 8 pages, ACM, Monterey, California, USA. |
Schmit, H., et al., “PipeRench: A Virtualized Programmable Datapath in 0.18 Micron Technology,” Proceedings of the IEEE 2002 Custom Integrated Circuits Conference, May 12-15, 2002, pp. 63-66. |
Teifel, J., et al., “Highly Pipelined Asynchronous FPGAs,” Proceedings of the 2004 ACM/SIGDA 12th International Symposium on Field Programmable Gate Arrays, Feb. 22-24, 2004, Monterey, California, USA. |
Number | Date | Country | |
---|---|---|---|
20140225642 A1 | Aug 2014 | US |
Number | Date | Country | |
---|---|---|---|
Parent | 13311531 | Dec 2011 | US |
Child | 14181557 | US | |
Parent | 12702290 | Feb 2010 | US |
Child | 13311531 | US | |
Parent | 11292952 | Dec 2005 | US |
Child | 12702290 | US |