Systems and methods for managing a write operation are described. The systems include a logic element (le) including an N-input look-up table (LUT) having a configurable random access memory (CRAM) including 2N memory cells. The systems further include a write address decoder coupled to the le and a write address hard logic register that stores an address of one of the memory cells. N is an integer. The hard logic register removes a dependency of a timing relationship between a write address launch and a write to the CRAM on a design of an integrated circuit.
|
24. An integrated circuit comprising:
a logic element (le) including an N-input look-up table (LUT) having a configurable random access memory (CRAM), wherein N is an integer;
a write address decoder coupled to the le;
a dedicated write address hard logic storage element register configured to store an address of a memory cell of the CRAM;
a logic array block (lab) including the le; and
a gate configured to gate a clock signal with a lab-wide write pulse to generate an output clock, wherein the lab-wide write pulse enables a write to the le of the lab.
8. An integrated circuit comprising:
a logic element (le) including an N-input look-up table (LUT) having a configurable random access memory (CRAM), wherein N is an integer;
a write address decoder coupled to the le; and
a dedicated write address hard logic storage element configured to store an address of a memory cell in the CRAM, wherein the write address storage element is implemented as a level-sensitive latch, wherein the write address decoder is configured to provide an undelayed clock signal to a cell, wherein the cell is configured to assert a write pulse when the cell receives the undelayed clock signal.
22. A method for managing a write operation, the method comprising:
storing, within a write address hard logic storage element, an address of a memory cell of a configurable random access memory (CRAM), wherein a logic element (le) is coupled to a write address decoder, wherein the le includes an N-input look-up table (LUT) including the CRAM, wherein N is an integer; and
wherein the write address hard logic storage element is implemented as a level-sensitive latch, wherein the write address decoder is configured to provide an undelayed clock signal to a cell, the cell configured to assert a write pulse when the cell receives the undelayed clock signal.
1. An integrated circuit comprising:
a logic element (le) including an N-input look-up table (LUT) having a configurable random access memory (CRAM), wherein N is an integer;
a write address decoder coupled to the le;
a dedicated write address hard logic storage element configured to store an address of a memory cell in the CRAM;
a delay circuit configured to delay a clock signal to generate a delayed clock signal, wherein the delay is sufficient to provide time for an address output by the dedicated write address hard logic storage element to propagate through the write address decoder; and
a cell configured to assert a write pulse when the cell receives the delayed clock signal.
27. An integrated circuit comprising:
a logic element (le) including an N-input look-up table (LUT) having a configurable random access memory (CRAM), wherein N is an integer;
a write address decoder coupled to the le; and
a dedicated write address hard logic storage element register configured to store an address of a memory cell of the CRAM,
wherein the le includes a first 2N×1 CRAM and a second 2N×1 CRAM, a first read data register, a second read data register, a first write data register, and a second write data register, wherein all the registers are clocked with a same clock signal, wherein the write data registers are in a first-half portion of the le and the read data registers are in a second half-portion of the le.
20. A method for managing a write operation, the method comprising:
storing, within a write address hard logic storage element, an address of a memory cell of a configurable random access memory (CRAM), wherein a logic element (le) is coupled to a write address decoder, wherein the le includes an N-input look-up table (LUT) including the CRAM, wherein N is an integer; and
generating, using a delay circuit, a delayed clock signal from an original clock signal, the delayed clock signal sent to a cell, the cell configured to assert a write pulse when the cell receives the delayed clock signal, wherein the delayed clock signal provides sufficient delay to allow time for an address output by the dedicated write address hard logic storage element to propagate through the write address decoder.
26. An integrated circuit comprising:
a logic element (le) including an N-input look-up table (LUT) having a configurable random access memory (CRAM), wherein N is an integer;
a write address decoder coupled to the le; and
a dedicated write address hard logic storage element register configured to store an address of a memory cell of the CRAM,
wherein the le includes a first-half portion and a second-half portion, wherein the first half-portion includes a first 2N×1 CRAM, a first read data register, and a first write data register, wherein the second half-portion includes a second 2N×1 CRAM, a second read data register, and a second write data register, wherein the second write data register is configured to receive a clock signal from the top-half portion and the first read data register is configured to receive a clock signal from the bottom-portion.
17. An integrated circuit comprising:
a plurality of logic array blocks (labs);
a plurality of lab lines configured to facilitate communication between the plurality of labs;
a plurality of local lines configured to communicate a plurality of signals within one lab of the plurality of labs;
a signal generation unit configured to provide a plurality of secondary signals to one lab of the plurality of labs, wherein the one lab of the plurality of labs includes a logic element (le) having an N-input look-up table (LUT) having a configurable random access memory (CRAM), where N is an integer;
a write address decoder coupled to the le; and
a dedicated write address hard logic storage element configured to store an address of a memory cell in the CRAM,
wherein the write address storage element is implemented as a level-sensitive latch, wherein the write address decoder is configured to provide an undelayed clock signal to a cell, the cell configured to assert a write pulse when the cell receives the undelayed clock signal.
25. An integrated circuit comprising:
a logic element (le) including an N-input look-up table (LUT) having a configurable random access memory (CRAM), wherein N is an integer;
a write address decoder coupled to the le; and
a dedicated write address hard logic storage element register configured to store an address of a memory cell of the CRAM,
wherein the le includes a first 2N×1 CRAM and a second 2N×1 CRAM, a first read data register, a second read data register, a first write data register, and a second write data register, wherein the first 2N×1 CRAM is configured to provide data to the first read data register synchronous to a first clock signal and is configured to receive data from the first write data register synchronous with the first clock signal, wherein the second 2N×1 CRAM is configured to send data to the second read data register synchronous with a second clock signal and the second 2N×1 CRAM is configured to receive data from the second write data register synchronous with the second clock signal.
12. An integrated circuit comprising:
a plurality of logic array blocks (labs);
a plurality of lab lines configured to facilitate communication between the plurality of labs;
a plurality of local lines configured to communicate a plurality of signals within one lab of the plurality of labs;
a signal generation unit configured to provide a plurality of secondary signals to one lab of the plurality of labs, wherein the one lab of the plurality of labs includes a logic element (le) having an N-input look-up table (LUT) having a configurable random access memory (CRAM), where N is an integer;
a write address decoder coupled to the le; and
a dedicated write address hard logic storage element configured to store an address of a memory cell in the CRAM
a delay circuit configured to delay a clock signal to generate a delayed clock signal, wherein the delay is sufficient to provide time for an address output by the dedicated write address hard logic storage element to propagate through the write address decoder; and
a cell configured to assert a write pulse when the cell receives the delayed clock signal.
2. An integrated circuit in accordance with
3. An integrated circuit in accordance with
4. An integrated circuit in accordance with
5. An integrated circuit in accordance with
6. An integrated circuit in accordance with
a logic array block (lab) including the le; and
a gate configured to gate a clock signal with a lab-wide write pulse to generate an output clock, wherein the lab-wide write pulse enables a write to the le of the lab.
7. An integrated circuit in accordance with
9. An integrated circuit in accordance with
a logic array block (lab) including the le; and
a gate configured to gate a clock signal with a lab-wide write pulse to generate an output clock, wherein the lab-wide write pulse enables a write to the le of the lab.
10. An integrated circuit in accordance with
11. An integrated circuit in accordance with
13. An integrated circuit in accordance with
14. An integrated circuit in accordance with
15. An integrated circuit in accordance with
16. An integrated circuit in accordance with
a logic array block (lab) including the le; and
a gate configured to gate a clock signal with a lab-wide write pulse to generate an output clock signal, wherein the lab-wide write pulse enables a write to the le of the lab.
18. An integrated circuit in accordance with
a logic array block (lab) including the le; and
a gate configured to gate a clock signal with a lab-wide write pulse to generate an output clock, wherein the lab-wide write pulse enables a write to the le of the lab.
19. An integrated circuit in accordance with
21. A method in accordance with
23. A method in accordance with
|
The present disclosure generally relates to integrated circuits and other devices of that general type. More particularly, the present disclosure relates to methods and systems for managing a write operation within an integrated circuit, such as a programmable logic device (PLD) or an application specific integrated circuit (ASIC).
A programmable logic device (PLD) includes memory circuitry that can be used as random access memory (RAM). More particularly, the PLD includes a plurality of look-up tables (LUTs) that are not needed for normal LUT-based logic and such LUTs are used to provide the above-mentioned user-accessible RAM. Such RAM is “distributed RAM” because, rather than being in a block of dedicated user RAM circuitry, it is distributed over the LUTs on the PLD.
A write address register stores write addresses of a location of a memory cell of the RAM. It is difficult to configure the write address register in such a manner to be able to quickly and consistently write data to the memory cell, especially when data is read from the memory cell during the same clock cycle in which the write is performed.
Systems and methods for managing a write operation are described. The systems include a logic element (LE) including an N-input look-up table (LUT) having a configurable random access memory (CRAM) including 2N memory cells. The systems further include a write address decoder coupled to the LE and a write address hard logic register configured to store an address of one of the memory cells. The hard logic register removes a dependency of a timing relationship between a write address launch and a write to the CRAM on a design of an integrated circuit. The timing relationship varies with the design and so a write operation to the RAM cannot begin at a fixed time after a rising edge of a clock signal. The implementation of the hard logic register provides certainty in that the write operation can start after the fixed time independent of a design of the integrated circuit.
The systems and techniques may best be understood by reference to the following description taken in conjunction with the accompanying drawings, which illustrate specific embodiments of the present invention.
Each LAB 104 includes a plurality of logic elements (LEs) 108, which can be implemented as memory or logic. According to various embodiments, each LE is implemented as an Adaptive Logic Module (ALM). Each ALM can be flexibly configured to include one or more lookup tables (LUTs). LEs 108 are connected via a plurality of local lines 110.
Moreover, LAB 104 includes an interconnect matrix 204 including a number of LAB lines 106, a plurality of input connections 206, one or more of which are selected by any of a plurality of LE input multiplexers (LEIMs) 208 of LAB 104. For example, based on a select bit within a configuration cell (not shown) connected to a select input of LEIM 208, LEIM 208 selects input connection 206 or another input connection 206 to provide an input signal to LE 108. Local lines 110 are part of interconnect matrix 204. Moreover, a feedback line 210 feeds back an output of LE 108 to an input of the LE 108.
Each LAB 104 includes a secondary signal generation unit 212 that routes one or more secondary signals, such as synchronous clear, asynchronous clear, synchronous load, asynchronous load, clock enable, and clock signals, from one or more of LAB lines 106, one or more or local lines 110, or a combination of the LAB and local lines 106 and 110 to LEs 108. A clock signal, described below, may be a global signal received via a global signal line 212, which is a part of interconnect matrix 204. Another example of a global signal includes a clock enable signal. Secondary signal generation unit 212 includes a plurality of logic devices that select and condition the secondary signals to provide the selected and conditioned signals to LEs 108.
Although a plurality of 3-LUTs 312 is shown in
In another embodiment, ALM 300 does not include feedback multiplexers 306.
LAB 400 includes any number M ALMs 402, such as 10 or 20 ALMs 402, with half of the ALMs 402 located in a top portion 408 of LAB 400 and the remaining half of the ALMs 402 located in bottom portion 410 of LAB 400.
Write address decoder 406 decodes write addresses of all ALMs 402 of LAB 400. Each ALM 402 includes a 2N×M RAM slice. For example, if N is equal to six, M is equal to 1, and if N is equal to five, M is equal to two. For supporting a 2N×M RAM slice, each ALM 402 receives N read address signals and M write data signals, leaving one LEIM 208 (
ALMs 402 include a plurality of write address registers 420, a plurality of byte-enable registers 422, and a plurality of write data registers 424. Write data register 302 (
Write data register 424 includes dedicated logic that is not used for a function other than storing data to be written to memory cell 202 (
LAB 400 includes a delay circuit 426 that adds a delay to a clock signal 428. Clock signal 428 is an undelayed clock signal. Clock signal 428 is generated by a clock source (not shown), such as a crystal oscillator or a crystal oscillator connected to a phase lock loop (PLL) (not shown). The delay is added to generate a delayed clock signal 430. Delayed clock signal 430 is provided to all registers, such as write address registers 420, write data registers 424, and byte-enable registers 422, of LAB 400. Clock signal 428, write data signals 416, byte-enable signals 418, and write address signals 412 are received via any portion of interconnect matrix 204 (
It is noted that although write address registers 420 and byte-enable registers 422 are shown within write address decoder 406, in an alternative embodiment, the write address registers 420 and byte-enable registers 422 are located outside write address decoder 406.
Write address decoder output signal 804 includes an address, of memory cell 202 (
A processor, described below, receives via an input device, also described below, inputs to the program code from a user. The processor may be implemented within an FPGA or an Application Specific Integrated Circuit (ASIC). The write pulse configuration bit is controlled by the processor to generate write pulse 802 and the write pulse 802 is generated at a time immediately after delayed clock signal 430 is asserted. For example, there is no delay or a natural delay between an assertion of delayed clock signal 430 and an assertion of write pulse 802. Accordingly, a write operation of CRAM, of ALM 402 (
The user also programs, within the program code, an amount of delay to add to clock signal 428 to generate delayed clock signal 430. An amount of delay to add to clock signal 428 to generate delayed clock signal 430 is based on a time 808 at which write address decoder output signal 804 becomes stable. For example, the processor determines whether write address decoder output signal 804 is stable to output a specific address of memory cell 202 (
At time 808 at which write address decoder output signal 804 becomes stable, the processor controls delay circuit 426 (
‘Tsu1’, shown in
Before a write operation to write data to memory cell 202 (
The dedicated logic of write address register 420 (
In an alternative embodiment, all registers 420, 422, and 424, shown in
In another alternative embodiment, an amount of delay to add to clock signal 428 is not programmable by using the program code and is generated based on delay circuit 426 selected by the user. In this alternative embodiment, the amount of delay is not field programmable.
All write address registers 904, byte-enable registers 906, and write data registers 908 are level-sensitive latches and are not edge-triggered registers. Any of registers 906, 906, and 908 stores and outputs data received at its data input at a time clock signal 428 (
In an alternative embodiment, write data registers 908 are edge-triggered registers. In another alternative embodiment, any of registers 904, 906, and 908 stores and outputs data received at its data input at a time clock signal 428 (
It is noted that although write address registers 904 and byte-enable registers 906 are shown within write address decoder 912, in an alternative embodiment, the write address registers 904 and byte-enable registers 906 are located outside write address decoder 912.
Write address decoder output signal 1102 includes an address, of memory cell 202, output by write address decoder 912 (
The processor controls the write pulse configuration bit to assert write pulse 802 immediately after clock signal 428 is asserted. For example, there is no delay or a natural delay between an assertion of clock signal 428 and an assertion of write pulse 802. As a result, more time is provided by the processor for a write operation to complete, for data to be written to memory cell 202 (
The processor determines the set-up time Tsu2 for latching data at a data input of byte-enable register 906 (
The user provides the certain amount of time to the processor via the input device. At a time clock signal 202 is deasserted, byte-enable register 906 and write address register 904 is transparent to enable data input at their respective data inputs to flow through. At a time write pulse 802 is asserted, write address decoder output signal 1102 is stable to output a specific address of memory cell 202 and the address was latched to write address register 904.
A write operation to memory cell 202 (
It is noted that in another embodiment, an extra bank, such as a pipeline, of write address, data, and byte-enable registers, is implemented in soft logic on a LAB (not shown) separate from LABs 400 and/or 900, to delay each write by one cycle to write old data to memory cell 202 (
In another embodiment, a distance for write address signal 910 (
Register 1304 is write data register 908 (
Register 1304 is write data register 424 (
Clock signal 1312 is gated, via OR gate 1302, with LAB-wide write pulse 1310. OR gate 1312 has no effect when a write operation, illustrated by
OR gate 1302 outputs a write clock signal 1314 to a clock input 1316 of register 1304. Upon receiving write clock signal 1314, as along as the write clock signal 1314 is asserted, register 1304 does not latch data at its data input 1308. Accordingly, OR gate 1302 prevents data from latching into register 1304 at a time LAB-wide write pulse 1310 is asserted.
On the other hand, when a write operation, illustrated using
Without implementing system 1300 within PLD 100 (
A clock signal 1506, such as clock signal 428 (
Moreover, another clock signal (not shown), such as clock signal 1506, is provided to read and write data registers 302 and 304 within bottom-half portion 310 (
In a 64×10 mode, where N is equal to six and M is equal to ten, of a Stratix™ architecture of PLD 100 (
In an alternative embodiment, clock signal 1506 is provided to respective clock inputs of write data register 302 and read data register 304 without passing the clock signal via multiplexers 1504.
Each read data register 304 is implemented either in hard logic or soft logic. ALM 1600 is an example of ALM 300 (
Moreover, a data output 1605 of write data register 302 of top-half portion 1602 is connected to a write data input 1606 of 32×1 CRAM 1508 of bottom-half portion 1604. No separate clock signals are used for top-half and bottom-half portions 1602 and 1604.
In an alternative embodiment, clock signal 1506 is provided to all registers 302 and 304 directly without passing via multiplexers 1504. In another alternative embodiment, data output 1605 of write data register 302 of top-half portion 1602 is connected to write data input of 32×1 CRAM 1508 of bottom-half portion 1604 via a multiplexer (not shown). It is further noted that although 32×1 CRAM 1508 blocks are shown in
Clock signal 1506 is provided to all registers 302 and 304 of ALM 1700 via multiplexers 1504. Multiplexer 1504 is located in top-half portion 1702 and another multiplexer 1504 is located in bottom-half portion 1704. Register 302 in bottom-half portion 1704 receives clock signal 1506 from top-half portion 1702 via multiplexer 1504 in top-half portion 1702 and register 304 in top-half portion 1702 receives clock signal 1506 from bottom-half portion 1704 via multiplexer 1504 in bottom-half portion 1704. ALM 1700 does not include multiplexer 1608 (
Set 1802 further receives an output signal of AND gate 1806 at a clock input of set 1802 instead of receiving delayed clock signal 430 (
Upon determining that set 1802 is used for non-RAM logic, the processor controls a select bit S within a configuration cell 1812 of PLD 100 (
In another embodiment, the processor does not determine whether LEIM 208 (
In an alternative embodiment, instead of inputting and outputting a write address signal vial LEIM 208 (
System 1900 includes a processing unit 1902, a memory device 1904, a network interface 1906, an input device 1908, an output interface 1910, and an output device 1912. Processing unit 1902 may be a central processing unit (CPU), the processor, a microprocessor, a hardware controller, a microcontroller, a programmable logic device programmed for use as a controller, a network controller, or other processing unit. Memory device 1904 may be a RAM, a read-only memory (ROM), or a combination of RAM and ROM. For example, memory device 1904 includes a computer-readable medium, such as a floppy disk, a ZIP™ disk, a magnetic disk, a hard disk, a compact disc-ROM (CD-ROM), a recordable CD, a digital video disc (DVD), or a flash memory. Memory device 1904 stores the techniques, including the program code, described herein, for managing a write to memory cell 202 (
Network interface 1906 may be a modem or a network interface card (NIC) that allows processing unit 1902 to communicate with a network 1914, such as a wide area network (WAN) or a local area network (LAN). Processing unit 1902 may be connected via a wireless connection or a wired connection to network 1914. Examples of the wireless connection include a connection using Wi-Fi protocol or a WiMax protocol. The Wi-Fi protocol may be an IEEE 802.11, IEEE 802.11a, IEEE 802.11b, IEEE 802.11g, or IEEE 802.11i protocol. Examples of input device 1808 include a mouse, a keyboard, a stylus, or a keypad. Output device 1912 may be a liquid crystal display (LCD) device, a plasma display device, a light emitting diode (LED) display device, or a cathode ray tube (CRT) display device. Examples of output interface 1910 include a video controller that drives output device 1912 to display one or more images based on instructions received from processing unit 1902. Processing unit 1902 accesses the methods, described herein, for managing a write to memory cell 202 (
In one example, input stage 2002 often allows selection and parameterization of components to be used on PLD 100 (
A generator program 2004 creates a logic description from information received via input stage 2002 and provides the logic description along with other customized logic to any of a synthesis tool 2006, place and route programs, and logic configuration tools to allow a logic description to be implemented on PLD 100 (
In typical implementations, generator program 2004 can identify the selections and generate a logic description with information for implementing the various modules. Generator program 2004 can be a Perl script creating Hardware Description Language (HDL) files, such as, Verilog™, Abel™, Very High Speed Integrated Circuit HDL (VHDL), and Altera™ HDL (AHDL) files, from the module information entered by the user.
Generator program 2004 also provides information to synthesis tool 2006 to allow HDL files to be automatically synthesized. In some examples, a logic description is provided directly by the user. Hookups between various components selected by the user are also interconnected by generator program 2004. Some of the available synthesis tools are Leonardo Spectrum™, available from Mentor Graphics™ Corporation of Wilsonville, Oreg. and Synplify™ available from Synplicity™ Corporation of Sunnyvale, Calif. The HDL files may contain technology specific code readable by synthesis tool 2006.
Input stage 2002, generator program 2004, and synthesis tool 2006 can be separate programs. The interface between the separate programs can be a database file, a log, or simply messages transmitted between the programs. For example, instead of writing a file to storage, such as memory device 1904 (
The user may select various modules and an integrated program can then take the user selections and output a logic description in the form of a synthesized netlist without intermediate files. According to other embodiments, a logic description is a synthesized netlist such as an Electronic Design Interchange Format Input File (EDF file). An EDF file is one example of a synthesized netlist file that can be output by synthesis tool 2006.
Synthesis tool 2006 can take HDL files and output EDF files. Synthesis tool 2006 allows the implementation of the logic design on PLD 100 (
A verification stage 2008 typically follows an application of synthesis tool 2006. Verification stage 2008 checks the accuracy of the logic deign of PLD 100 (
Timing verification involves the analysis of the design's operation with timing delays. Setup, hold, and other timing requirements for sequential devices, such as, flip-flops, within a design of PLD 100, are confirmed. Some available simulation tools include Synopsys VCS™, VSS, and Scirocco™, available from Synopsys™ Corporation of Sunnyvale, Calif. and Cadence NC-Verilog™ and NC-VHDL™ available from Cadence Design Systems™ of San Jose, Calif.
After verification stage 2008, the synthesized netlist file can be provided to a physical design stage 2010 including the place and route phase and configuration tools. The place and route phase typically locates logic cells on specific logic elements of PLD 100 (
For programmable logic devices, a programmable logic configuration stage can take the output of the place and route phase to program PLD 100 (
As noted above, different stages and programs can be integrated in a variety of manners. According to one embodiment, input stage 2002, generator program 2004, synthesis tool 2006, verification stage 2008, and physical design stage 2010 are integrated into a single program, such as an SOPC Builder. The various stages are automatically run using system 1900 (
It is noted that the terms top-half and bottom-half, used herein, are relative terms. For example, as shown in
Technical effects of the herein described systems and methods for managing a write to memory cell 202 (
A solution to the design dependency is to perform a write on a falling edge of a clock signal, one-half cycle after an assertion of a write address signal. However, this solution creates a half-cycle constraint, which can be measured and optimized in CAD with static timing analysis. However, the half-cycle constraint makes it difficult to meet timing, especially in the context of a large design of a PLD, with duty cycle and clock skew, which further reduce available timing margin.
Moreover, in case of a write address register implemented in soft logic, it is difficult to guarantee stable behavior of a PLD when reading from and writing to the same address on the same clock cycle. One option is to guarantee that data written to a memory cell is always read before the data is overwritten. Because a write begins at the one-half cycle in the solution provided above, the write must complete and data written to a memory cell must be read out and latched by a read data register in the remaining half-clock cycle. For a high speed design, it may be difficult to meet the half-cycle constraint.
Another option is to guarantee that data written to a memory cell is read before new data is written to the memory cell. This guarantee can be achieved by adding negative edge-triggered registers at a data output of a CRAM to latch old data before a write begins within the CRAM. Aside from a soft logic cost of the negative edge-triggered register, the negative edge-triggered register adds two new half-cycle paths including a first path from a read address register, through a LUT to one of the negative edge-triggered registers and a second path from the negative edge-triggered register to a read data register. Because the first path goes through a LUT, it may be difficult to meet timing for a high-speed design of a PLD.
Yet another option is to accept undefined read data in a case in which a memory address is written to and read from during the same clock cycle. This option may be acceptable for some applications, such as first-in-first-out (FIFO), however, some other application require a stable read-during-write behavior for writing to and reading from the same address of a memory cell during the same clock cycle.
PLD 100 (
Because write address signal 412 (
Although the foregoing systems and techniques have been described in detail by way of illustration and example for purposes of clarity and understanding, it will be recognized that the above described systems and techniques may be embodied in numerous other specific variations and embodiments without departing from the spirit or essential characteristics of the systems and techniques. Certain changes and modifications may be practiced, and it is understood that the systems and techniques are not to be limited by the foregoing details, but rather is to be defined by the scope of the appended claims.
Lewis, David, Cashman, David, Zhou, Lu
Patent | Priority | Assignee | Title |
Patent | Priority | Assignee | Title |
6208163, | Feb 25 1999 | XILINX, Inc.; Xilinx, Inc | FPGA configurable logic block with multi-purpose logic/memory circuit |
6288568, | Feb 18 1999 | XILINX, Inc. | FPGA architecture with deep look-up table RAMs |
7084665, | Jul 22 2004 | Altera Corporation | Distributed random access memory in a programmable logic device |
7193433, | Jun 14 2005 | XILINX, Inc. | Programmable logic block having lookup table with partial output signal driving carry multiplexer |
7304499, | Jul 22 2004 | Altera Corporation | Distributed random access memory in a programmable logic device |
7391236, | Dec 27 2005 | TAHOE RESEARCH, LTD | Distributed memory in field-programmable gate array integrated circuit devices |
7656191, | Dec 27 2005 | TAHOE RESEARCH, LTD | Distributed memory in field-programmable gate array integrated circuit devices |
20070146178, | |||
20080231316, |
Executed on | Assignor | Assignee | Conveyance | Frame | Reel | Doc |
Jun 16 2010 | Zhou, Lu | Altera Corporation | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 024634 | /0020 | |
Jun 17 2010 | LEWIS, DAVID | Altera Corporation | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 024634 | /0020 | |
Jun 28 2010 | CASHMAN, DAVID | Altera Corporation | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 024634 | /0020 | |
Jul 01 2010 | Altera Corporation | (assignment on the face of the patent) | / | |||
Jul 08 2022 | Altera Corporation | Intel Corporation | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 060778 | /0032 | |
Jul 18 2022 | Intel Corporation | TAHOE RESEARCH, LTD | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 061827 | /0686 |
Date | Maintenance Fee Events |
Jan 25 2016 | M1551: Payment of Maintenance Fee, 4th Year, Large Entity. |
Jan 30 2020 | M1552: Payment of Maintenance Fee, 8th Year, Large Entity. |
Feb 08 2024 | M1553: Payment of Maintenance Fee, 12th Year, Large Entity. |
Date | Maintenance Schedule |
Aug 14 2015 | 4 years fee payment window open |
Feb 14 2016 | 6 months grace period start (w surcharge) |
Aug 14 2016 | patent expiry (for year 4) |
Aug 14 2018 | 2 years to revive unintentionally abandoned end. (for year 4) |
Aug 14 2019 | 8 years fee payment window open |
Feb 14 2020 | 6 months grace period start (w surcharge) |
Aug 14 2020 | patent expiry (for year 8) |
Aug 14 2022 | 2 years to revive unintentionally abandoned end. (for year 8) |
Aug 14 2023 | 12 years fee payment window open |
Feb 14 2024 | 6 months grace period start (w surcharge) |
Aug 14 2024 | patent expiry (for year 12) |
Aug 14 2026 | 2 years to revive unintentionally abandoned end. (for year 12) |