US7187203B1 - Cascadable memory - Google Patents
Cascadable memory Download PDFInfo
- Publication number
- US7187203B1 US7187203B1 US11/016,665 US1666504A US7187203B1 US 7187203 B1 US7187203 B1 US 7187203B1 US 1666504 A US1666504 A US 1666504A US 7187203 B1 US7187203 B1 US 7187203B1
- Authority
- US
- United States
- Prior art keywords
- continuation
- blocks
- routing
- interface
- memory
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active, expires
Links
- 238000000034 method Methods 0.000 claims description 18
- 230000006870 function Effects 0.000 claims description 3
- 238000010586 diagram Methods 0.000 description 22
- 239000004744 fabric Substances 0.000 description 5
- 238000013459 approach Methods 0.000 description 3
- 238000007796 conventional method Methods 0.000 description 2
- 239000000872 buffer Substances 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000004549 pulsed laser deposition Methods 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03K—PULSE TECHNIQUE
- H03K19/00—Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits
- H03K19/02—Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components
- H03K19/173—Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components using elementary logic circuits as components
- H03K19/177—Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components using elementary logic circuits as components arranged in matrix form
- H03K19/17748—Structural details of configuration resources
- H03K19/1776—Structural details of configuration resources for memories
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03K—PULSE TECHNIQUE
- H03K19/00—Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits
- H03K19/02—Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components
- H03K19/173—Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components using elementary logic circuits as components
- H03K19/177—Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components using elementary logic circuits as components arranged in matrix form
- H03K19/17736—Structural details of routing resources
Definitions
- the present invention relates generally to electrical circuits and, more particularly, to memory and systems and methods for cascading memory.
- Memory is widely utilized and often embedded into an integrated circuit as discrete blocks of memory that can be cascaded.
- methods for cascading the memory blocks in an integrated circuit such as for example in a programmable logic device (PLD).
- PLD programmable logic device
- one approach is to utilize the PLD's general purpose routing fabric to propagate memory address, data, and control signals along the memory blocks.
- This approach has the advantage of requiring no dedicated address bus or data bus for cascading, but severe routing congestion may occur (e.g., near the interface of the memory block and logic cells within the PLD to such an extent that routing resources for cascading may not always be available).
- Another approach utilizes a dedicated address bus and data bus for the memory blocks (e.g., running along the entire length of the embedded memory row or column), with the address and data lines buffered at regular intervals (e.g., buffers with tri-state controls to allow bi-directional cascading without contention).
- the dedicated buses and associated circuitry for cascading however, increase the required die area and PLD cost and may not be utilized at all if cascading is not desired. As a result, there is a need for improved techniques for cascading memory.
- a programmable logic device includes a plurality of logic blocks; a plurality of memory blocks; a plurality of continuation routing paths associated with the memory blocks and adapted to cascade the memory blocks; and a plurality of continuation multiplexers, coupled to the continuation routing paths, adapted to route signals between the memory blocks, between the logic blocks, and/or between the memory blocks and the logic blocks.
- an integrated circuit includes logic blocks adapted to be programmed to perform a desired function of the integrated circuit; memory blocks adapted to store information within the integrated circuit, wherein each memory block is associated with at least one logic block to form an interface; means for routing signals between the memory block and the at least one logic block within the interface; and means for routing signals between the interfaces for the memory blocks or the logic blocks.
- a method of providing cascadable memory within a programmable logic device includes associating a memory block with one or more logic blocks to form an interface; providing routing paths between the memory block and the one or more logic blocks in the interface; and providing routing paths to and from a first and a second side of the interface so that the memory blocks are cascadable and/or the logic blocks of different interfaces are connectable.
- FIG. 1 shows a block diagram illustrating a programmable logic device in accordance with an embodiment of the present invention.
- FIG. 2 a shows a block diagram illustrating a multiplexer structure for the programmable logic device of FIG. 1 in accordance with an embodiment of the present invention.
- FIG. 2 b shows a block diagram illustrating routing paths for the programmable logic device of FIG. 1 in accordance with an embodiment of the present invention.
- FIG. 3 a shows a block diagram illustrating a multiplexer structure for the programmable logic device of FIG. 1 in accordance with an embodiment of the present invention.
- FIG. 3 b shows a block diagram illustrating routing paths for the programmable logic device of FIG. 1 in accordance with an embodiment of the present invention.
- FIG. 4 a shows a block diagram illustrating routing paths for the programmable logic device of FIG. 1 in accordance with an embodiment of the present invention.
- FIG. 4 b shows a block diagram illustrating routing paths for the programmable logic device of FIG. 1 in accordance with an embodiment of the present invention.
- FIG. 4 c shows a block diagram illustrating routing paths for the programmable logic device of FIG. 1 in accordance with an embodiment of the present invention.
- FIG. 4 d shows a block diagram illustrating routing paths for the programmable logic device of FIG. 1 in accordance with an embodiment of the present invention.
- FIG. 1 shows a block diagram illustrating a programmable logic device (PLD) 100 in accordance with an embodiment of the present invention.
- PLD 100 includes a number of input/output (I/O) circuits 102 , logic blocks 104 (e.g., also referred to as programmable logic blocks (PLBs) or programmable logic cells (PLCs)), memory blocks 106 , and memory logic circuits 108 .
- I/O input/output
- logic blocks 104 e.g., also referred to as programmable logic blocks (PLBs) or programmable logic cells (PLCs)
- memory blocks 106 e.g., also referred to as programmable logic blocks (PLBs) or programmable logic cells (PLCs)
- I/O circuits 102 represent the input/output pads and associated I/O circuitry for PLD 100
- memory logic circuits 108 represent the logic, decoding, and associated circuitry for memory blocks 106 , as would be known by one skilled in the art.
- Logic blocks 104 represent logic (e.g., conventional lookup tables or other types of logic or programmable logic cells (PLC)) for performing the intended functions of PLD 100 .
- Memory blocks 106 represent embedded memory (e.g., labeled EBR for each embedded memory block 106 ) within PLD 100 , with the memory blocks representing any desired type of memory (e.g., embedded block RAM). As an exemplary implementation, two rows of memory blocks 106 are shown within PLD 100 , but any number of rows (or columns) of memory blocks 106 and any number of memory blocks 106 in each row (or column) may be implemented in accordance with one or more embodiments of the present invention.
- EBR embedded memory
- each memory block 106 may be extending across two columns of logic blocks 104
- the arrangement and size of memory blocks 106 may be varied with respect to logic blocks 104 .
- each memory block 106 may fit within one column of logic blocks 104 or extend across numerous columns of logic blocks 104 , depending upon the design requirements.
- the number of rows of logic blocks 104 above and/or below each memory block 106 may also be varied as desired.
- each memory block 106 interfaces with the two logic blocks 104 located above each memory block 106 .
- Memory blocks 106 do not rely on a dedicated address bus or data bus for cascading memory blocks 106 as may be found with conventional PLDs. Instead, at each memory block 106 /logic block 104 interface, multiplexers are utilized to provide routing paths between memory block 106 and its associated logic blocks 104 .
- Additional multiplexers referred to herein as continuation multiplexers
- routing paths referred to herein as continuation routing paths
- additional multiplexers and routing paths may be utilized to cascade memory blocks 106 (e.g., a waterfall routing scheme may be employed for repeatable and efficient routing) or, if memory cascading is not required, utilized as general routing paths (e.g., for logic blocks 104 or to augment any general routing structure within PLD 100 ).
- FIG. 2 a shows a block diagram illustrating a routing architecture 200 for PLD 100 of FIG. 1 in accordance with an embodiment of the present invention.
- Routing architecture 200 illustrates an exemplary implementation of a multiplexer structure at an interface of one memory block 106 and two logic blocks 104 .
- all of the routing paths represent buses having 64 signal lines, with circled nodes (e.g., as with a node 214 ) indicating a connection at the point of intersection of the routing paths.
- the number of signal lines in each routing path is not limited and may be any number desired.
- Routing architecture 200 includes multiplexers 202 (which are separately referenced as multiplexers 202 ( 1 ) and 202 ( 2 )) and multiplexers 204 (which are separately referenced as multiplexers 204 ( 1 ) and 204 ( 2 )).
- Control signals to multiplexers 202 and 204 may be provided, for example, by configuration fuses 226 (e.g., programmable memory cells such as static random access memory cells or one-time programmable devices) within PLD 100 .
- multiplexer 204 ( 1 ) receives a signal line 210 (a 64 bit bus line labeled EBR_OUT [63:0]) from memory block 106 , a signal line 212 (a 64 bit bus line labeled PLC_OUT [63:0]) from the two logic blocks 104 , and a signal line 208 (a 64 bit bus line labeled CONT_RIGHT_IN [63:0]) that is the continuation routing path entering from the right of memory block 106 .
- Multiplexer 204 ( 1 ) provides a signal line 216 (a 64 bit bus line labeled CONT_LEFT_OUT [63:0]) that provides the continuation routing path to the left of memory block 106 /logic blocks 104 interface.
- Signal line 208 may originate from any number of memory blocks 106 (or logic blocks 104 or memory block 106 /logic blocks 104 interfaces) from the right of memory block 106 and signal line 216 may be provided to any number of memory blocks 106 (or logic blocks 104 or memory block 106 /logic blocks 104 interfaces) to the left of memory block 106 shown in FIG. 2 a .
- signal line 208 is provided by the memory block 106 /logic blocks 104 interface that is six interfaces from the right, while signal line 216 is provided to the memory block 106 /logic blocks 104 interface that is six interfaces to the left from memory block 106 shown in FIG. 2 a (assuming the row contains a sufficient number of the interfaces).
- multiplexer 204 ( 2 ) receives signal line 210 , signal line 212 , and a signal line 206 (a 64 bit bus line labeled CONT_LEFT_IN [63:0]) that is the continuation routing path entering from the left of memory block 106 .
- Multiplexer 204 ( 2 ) provides a signal line 218 (a 64 bit bus line labeled CONT_RIGHT_OUT [63:0]) that provides the continuation routing path to the right of memory block 106 /logic blocks 104 interface.
- Signal line 206 may originate from any number of memory blocks 106 (or logic blocks 104 or memory block 106 /logic blocks 104 interfaces) from the left of memory block 106 and signal line 218 may be provided to any number of memory blocks 106 (or logic blocks 104 or memory block 106 /logic blocks 104 interfaces) to the right of memory block 106 shown in FIG. 2 a .
- signal line 206 is provided by the memory block 106 /logic blocks 104 interface that is six interfaces from the left, while signal line 218 is provided to the memory block 106 /logic blocks 104 interface that is six interfaces to the right from memory block 106 shown in FIG. 2 a (assuming the row contains a sufficient number of the interfaces).
- multiplexers 204 ( 1 ) and 204 ( 2 ) and their associated routing paths may still be utilized.
- multiplexers 204 ( 1 ) and 204 ( 2 ) may be utilized to connect logic blocks 104 shown in FIG. 2 a to other memory block 106 /logic blocks 104 interfaces (not shown in FIG. 2 a ) or to connect memory block 106 /logic blocks 104 interfaces that are to the left and the right of the memory block 106 /logic blocks 104 interface shown in FIG. 2 a .
- multiplexers 204 ( 1 ) and 204 ( 2 ) may be utilized to connect memory blocks 106 and/or logic blocks 104 or otherwise augment the general routing fabric.
- Multiplexers 202 ( 1 ) and 202 ( 2 ) provide an interface between memory block 106 and two logic blocks 104 shown in FIG. 2 a .
- Multiplexer 202 ( 1 ) receives signal lines 206 , 208 , and 210 and provides a signal line 222 (a 64 bit bus line labeled PLC_IN [63:0]) to logic blocks 104 .
- Multiplexer 202 ( 2 ) receives signal lines 206 , 208 , and 212 and provides a signal line 220 (a 64 bit bus line labeled EBR_IN [63:0]) to memory block 106 .
- FIG. 2 b shows a block diagram 250 illustrating continuation routing paths 252 (i.e., signal lines 206 , 208 , 216 , and 218 ) for a section of a row of memory blocks 106 within a programmable logic device (e.g., PLD 100 assuming PLD 100 includes at least this many memory blocks 106 within a row) in accordance with an embodiment of the present invention.
- a programmable logic device e.g., PLD 100 assuming PLD 100 includes at least this many memory blocks 106 within a row
- the routing paths between memory blocks 106 and associated logic blocks 104 at each interface are not shown.
- memory blocks 106 may be cascaded in six memory block 106 increments.
- continuation routing paths 252 from any memory block 106 connect to continuation routing paths 252 to any memory block 106 that is six memory blocks 106 away, with continuation routing paths 252 utilized, for example, to cascade memory blocks 106 .
- the CONT_LEFT_OUT [63:0] signal of one memory block 106 connects to the CONT_RIGHT_IN [63:0] signal of another memory block 106 (e.g., labeled EBR(n+3)) that is six memory blocks 106 to the left.
- the CONT_RIGHT_OUT [63:0] signal of one memory block 106 connects to the CONT_LEFT_IN [63:0] signal of another memory block 106 (e.g., labeled EBR(n+9)) that is six memory blocks 106 to the right.
- these continuation routing paths may be employed to communicate, for example, between logic blocks 104 and/or different memory blocks 106 (e.g., for this example, memory blocks 106 that are a multiple of six memory blocks 106 apart).
- FIG. 3 a shows a block diagram illustrating a routing architecture 300 for PLD 100 of FIG. 1 in accordance with an embodiment of the present invention.
- Routing architecture 300 is similar to routing architecture 200 ( FIG. 2 ), but includes enhanced connectivity via midtap routing paths.
- multiplexers 202 ( 1 ) and 202 ( 2 ) and 204 ( 1 ) also receive a signal line 304 (a 64 bit bus line labeled CONT_MT_RIGHT_IN [63:0]) that is the midtap continuation routing path entering from the right of the row (e.g., from memory block 106 /logic blocks 104 interface three interfaces away).
- a signal line 304 (a 64 bit bus line labeled CONT_MT_RIGHT_IN [63:0]) that is the midtap continuation routing path entering from the right of the row (e.g., from memory block 106 /logic blocks 104 interface three interfaces away).
- multiplexers 202 ( 1 ) and 202 ( 2 ) and 204 ( 2 ) also receive a signal line 302 (a 64 bit bus line labeled CONT_MT_LEFT_IN [63:0]) that is the midtap continuation routing path entering from the left of the row (e.g., from memory block 106 /logic blocks 104 interface three interfaces away).
- signal lines 302 and 304 may originate from any number of memory blocks 106 (or logic blocks 104 or memory block 106 /logic blocks 104 interfaces) from the left and right, respectively, of memory block 106 shown in FIG. 3 a and that any number of midtap routing paths may be added (e.g., depending upon the desired degree of connectivity and flexibility desired).
- the midtap continuation routing paths (i.e., signal lines 302 and 304 ) provide enhanced connectivity and flexibility of routing, but require greater die area overhead due to, for example, larger multiplexers and additional routing lines and configuration fuses.
- multiplexers 202 are 5:1 multiplexers in FIG. 3 a as compared to 3:1 multiplexers in FIG. 2 a without midtap routing paths
- multiplexers 204 are 4:1 multiplexers in FIG. 3 a as compared to 3:1 multiplexers in FIG. 2 a without midtap routing paths.
- memory block 106 is unused or utilized as a standalone memory block 106 (i.e., not part of a cascade)
- the associated multiplexers 204 and continuation routing paths may be utilized to connect logic blocks 104 and/or different memory blocks 106 (e.g., for this example, memory blocks 106 that are a multiple of three or six memory blocks 106 apart) to augment the general routing fabric of the PLD.
- FIG. 3 b shows a block diagram 350 illustrating continuation routing paths 352 (i.e., signal lines 206 , 208 , 216 , 218 , 302 , and 304 ) for a section of a row of memory blocks 106 within a programmable logic device (e.g., PLD 100 assuming PLD 100 includes at least this many memory blocks 106 within a row) in accordance with an embodiment of the present invention.
- a programmable logic device e.g., PLD 100 assuming PLD 100 includes at least this many memory blocks 106 within a row
- continuation routing paths 352 are provided with midtaps for a section of a row of memory blocks 106 .
- memory blocks 106 may be cascaded in six memory block 106 increments, as discussed in reference to FIG. 2 a , and memory blocks 106 may also be cascaded in three memory block 106 increments by utilizing the midtap continuation routing paths.
- continuation multiplexers and associated routing paths allow cascading of memory blocks 106 .
- These techniques may provide certain advantages over conventional techniques.
- the continuation multiplexers and routing paths are not dedicated to cascading memory blocks 106 and may be utilized for other purposes, when not required for cascading.
- the routing congestion in the general purpose routing structure of PLD 100 may be reduced, because general purpose routing is not required to route the address and data (e.g., input data needed for cascading memory blocks 106 ) across multiple memory blocks 106 (e.g., across a row of memory blocks 106 ).
- continuation routing paths with midtap connections may be implemented as disclosed to further increase connectivity and routing flexibility.
- the techniques disclosed are very flexible, with the continuation routing paths utilized in various ways along a row of memory blocks 106 .
- the continuation routing paths may be utilized for cascading memory blocks 106 or may be utilized to communicate between logic blocks 104 some distance apart.
- the continuation routing paths allow, for example, a waterfall routing scheme to be implemented for repeatable and efficient routing.
- continuation routing paths require minimal die area overhead (e.g., for the horizontal and vertical routing paths associated with the continuation multiplexers and routing paths). For example, these techniques may be implemented with continuation multiplexers and associated configuration fuses.
- FIGS. 4 a through 4 d provide exemplary implementation examples for utilizing continuation routing paths in accordance with one or more embodiments of the present invention.
- FIGS. 4 a through 4 c illustrate examples of cascading memory blocks 106 depending, for example, upon routing resource usage and performance criteria
- FIG. 4 d illustrates an example of utilizing continuation routing paths to connect logic blocks 104 (e.g., to augment the general routing fabric).
- output data lines for simplicity, are generally not shown in FIGS. 4 a through 4 d.
- FIG. 4 a shows a block diagram 400 illustrating continuation routing paths for a PLD (e.g., PLD 100 assuming PLD 100 includes sufficient memory blocks 106 within a row) in accordance with an embodiment of the present invention.
- diagram 400 shows a cascade of five memory blocks 106 (labeled EBR(n+1), EBR(n+4), EBR(n+7), EBR(n+10), and EBR(n+13)) using continuation routing paths with midtaps (e.g., with minimal general routing resources required).
- the 64 input address, data, and/or control signals originate from logic blocks 104 (not shown) above and associated with memory block 106 (labeled EBR(n+7)), which then connect to memory blocks 106 (EBR(n+10), and EBR(n+13)) to the right and to memory blocks 106 (EBR(n+1), and EBR(n+4)) to the left via continuation routing paths with midtaps.
- FIG. 4 b shows a block diagram 420 illustrating continuation routing paths for a PLD (e.g., PLD 100 assuming PLD 100 includes sufficient memory blocks 106 within a row) in accordance with an embodiment of the present invention.
- Diagram 420 illustrates a method of cascading ten memory blocks 106 (labeled EBR(n+1), EBR(n+2), EBR(n+4), EBR(n+5), EBR(n+7), EBR(n+8), EBR(n+10), EBR(n+11), EBR(n+13), and EBR(n+14)) for enhanced speed (e.g., possibly optimum speed).
- general routing resources are utilized to provide routing to two memory blocks 106 (EBR(n+7) and EBR(n+8)) from their associated logic blocks 104 .
- the address, data, and/or control signals to memory block 106 (EBR(n+7)) connect to memory blocks 106 (EBR(n+10) and EBR(n+13)) to the right and to memory blocks 106 (EBR(n+4) and EBR(n+1)) to the left via continuation routing paths with midtaps.
- the address, data, and/or control signals to memory block 106 connect to memory blocks 106 (EBR(n+11) and EBR(n+14)) to the right and to memory blocks 106 (EBR(n+5) and EBR(n+2)) to the left via continuation routing paths with midtaps.
- the memory blocks 106 in the cascade may be memory block 106 (EBR(n+7)) in the center, with memory blocks 106 (EBR(n+10), EBR(n+13), EBR(n+16), EBR(n+19), and EBR(n+22)) to the right and memory blocks 106 (EBR(n+4), EBR(n+1), EBR(n ⁇ 2), and EBR(n ⁇ 5)) to the left (with some of referenced memory blocks 106 not shown in the partial row illustrated in FIG. 4 b ).
- FIG. 4 c shows a block diagram 440 illustrating continuation routing paths for a PLD (e.g., PLD 100 assuming PLD 100 includes sufficient memory blocks 106 within a row) in accordance with an embodiment of the present invention.
- Diagram 440 illustrates an exemplary method of multiple, separate memory block 106 cascades within the same row. For example, a ten memory block 106 cascade is formed in a similar manner as that shown in FIG.
- a three memory block 106 cascade may be formed by utilizing memory blocks 106 (labeled EBR(n+12), EBR(n+9), and EBR(n+15)) and a two memory block 106 cascade may be formed by utilizing memory blocks 106 (labeled EBR(n) and EBR(n+3)).
- memory block 106 (labeled EBR(n+6)) may be configured as a standalone memory block 106 , but the dotted line in FIG.
- FIG. 4 c drawn to memory block 106 illustrates that memory block 106 (EBR(n+6)) may be cascaded with memory block 106 (EBR(n) and EBR(n+3)), if a three memory block 106 cascade is desired instead of a two memory block 106 cascade and a single memory block 106 .
- FIG. 4 d shows a block diagram 460 illustrating continuation routing paths for a PLD (e.g., PLD 100 assuming PLD 100 includes sufficient memory blocks 106 within a row) in accordance with an embodiment of the present invention.
- Diagram 460 illustrates that the continuation routing paths may be utilized to augment the general purpose routing, when the continuation routing paths are not utilized to cascade memory blocks 106 .
- the continuation routing paths are utilized to cascade certain ones of memory blocks 106 and to connect certain ones of logic blocks 104 (e.g., to augment the general purpose routing architecture) along a row of memory blocks 106 .
- memory blocks 106 form a three memory block 106 cascade
- the continuation routing paths augment general routing resources to connect logic blocks 104 above certain ones of memory blocks 106 (i.e., above memory blocks 106 labeled EBR(n+1), EBR(n+4), and EBR(n+7)) and also to connect logic blocks 104 above certain other ones of memory blocks 106 (i.e., above memory blocks 106 labeled EBR(n+9), EBR(n+12), and EBR(n+15)).
- the continuation routing paths may be utilized to communicate between different logic blocks 104 and/or memory blocks 106 .
- a method of cascading embedded memory blocks in a programmable logic device such as a field programmable gate array (FPGA) is disclosed that utilizes continuation multiplexers for routing the various signals.
- the method allows the memory blocks, for example, to be configured in different widths, depths, and modes.
- the memory blocks may be cascaded without requiring multiplexers and routing paths that are dedicated to cascading the memory blocks.
- the multiplexer and routing paths may be utilized for other features (e.g., for general purpose routing, such as between logic blocks and/or the memory blocks).
Landscapes
- Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Logic Circuits (AREA)
- Design And Manufacture Of Integrated Circuits (AREA)
Abstract
Description
Claims (22)
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US11/016,665 US7187203B1 (en) | 2004-12-17 | 2004-12-17 | Cascadable memory |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US11/016,665 US7187203B1 (en) | 2004-12-17 | 2004-12-17 | Cascadable memory |
Publications (1)
Publication Number | Publication Date |
---|---|
US7187203B1 true US7187203B1 (en) | 2007-03-06 |
Family
ID=37807152
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US11/016,665 Active 2025-03-23 US7187203B1 (en) | 2004-12-17 | 2004-12-17 | Cascadable memory |
Country Status (1)
Country | Link |
---|---|
US (1) | US7187203B1 (en) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7459935B1 (en) * | 2006-02-22 | 2008-12-02 | Lattice Semiconductor Corporation | Programmable logic devices with distributed memory |
WO2014074632A1 (en) * | 2012-11-09 | 2014-05-15 | Xilinx, Inc. | Configurable embedded memory system |
US9513984B2 (en) | 2015-01-26 | 2016-12-06 | Hewlett Packard Enterprise Development Lp | Hardware signal logging in embedded block random access memory |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5933023A (en) | 1996-09-03 | 1999-08-03 | Xilinx, Inc. | FPGA architecture having RAM blocks with programmable word length and width and dedicated address and data lines |
US6107824A (en) * | 1997-10-16 | 2000-08-22 | Altera Corporation | Circuitry and methods for internal interconnection of programmable logic devices |
-
2004
- 2004-12-17 US US11/016,665 patent/US7187203B1/en active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5933023A (en) | 1996-09-03 | 1999-08-03 | Xilinx, Inc. | FPGA architecture having RAM blocks with programmable word length and width and dedicated address and data lines |
US6107824A (en) * | 1997-10-16 | 2000-08-22 | Altera Corporation | Circuitry and methods for internal interconnection of programmable logic devices |
Non-Patent Citations (1)
Title |
---|
Schadt et al., Programmable Logic Devices with Integrated Standard-Cell Logic Blocks, U.S. Appl. No. 10/391,094, filed Mar. 18, 2003. |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7459935B1 (en) * | 2006-02-22 | 2008-12-02 | Lattice Semiconductor Corporation | Programmable logic devices with distributed memory |
WO2014074632A1 (en) * | 2012-11-09 | 2014-05-15 | Xilinx, Inc. | Configurable embedded memory system |
US9075930B2 (en) | 2012-11-09 | 2015-07-07 | Xilinx, Inc. | Configurable embedded memory system |
CN104969208A (en) * | 2012-11-09 | 2015-10-07 | 吉林克斯公司 | Configurable embedded memory system |
JP2016504650A (en) * | 2012-11-09 | 2016-02-12 | ザイリンクス インコーポレイテッドXilinx Incorporated | Configurable embedded memory system |
US9513984B2 (en) | 2015-01-26 | 2016-12-06 | Hewlett Packard Enterprise Development Lp | Hardware signal logging in embedded block random access memory |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US5537057A (en) | Programmable logic array device with grouped logic regions and three types of conductors | |
EP0461798B1 (en) | Configurable interconnect structure | |
US6396303B1 (en) | Expandable interconnect structure for FPGAS | |
US6191611B1 (en) | Driver circuitry for programmable logic devices with hierarchical interconnection resources | |
US5323069A (en) | Direct I/O access to express bussing in a configurable logic array | |
US6467017B1 (en) | Programmable logic device having embedded dual-port random access memory configurable as single-port memory | |
US6492834B1 (en) | Programmable logic device with highly routable interconnect | |
US5966027A (en) | Symmetric logic block input/output scheme | |
US5656950A (en) | Interconnect lines including tri-directional buffer circuits | |
US6838904B1 (en) | Enhanced CPLD macrocell module having selectable bypass of steering-based resource allocation | |
EP0824792B1 (en) | Floor plan for scalable multiple level interconnect architecture | |
US5208491A (en) | Field programmable gate array | |
US6084429A (en) | PLD having a window pane architecture with segmented and staggered interconnect wiring between logic block arrays | |
US5371422A (en) | Programmable logic device having multiplexers and demultiplexers randomly connected to global conductors for interconnections between logic elements | |
US6128770A (en) | Configurable logic array including IOB to longlines interconnect means for providing selectable access to plural longlines from each IOB (input/output block) | |
US7389487B1 (en) | Dedicated interface architecture for a hybrid integrated circuit | |
US6300793B1 (en) | Scalable multiple level tab oriented interconnect architecture | |
US20030001614A1 (en) | Field programmable logic device with efficient memory utilization | |
EP0612153A1 (en) | FPGA with distributed switch matrix | |
US6545505B1 (en) | Hybrid routing architecture for high density complex programmable logic devices | |
US6996736B1 (en) | Programmable clock network for distributing clock signals to and between first and second sections of an integrated circuit | |
US6680624B2 (en) | Block symmetrization in a field programmable gate array | |
US6184710B1 (en) | Programmable logic array devices with enhanced interconnectivity between adjacent logic regions | |
US7187203B1 (en) | Cascadable memory | |
US6285212B1 (en) | Block connector splitting in logic block of a field programmable gate array |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
AS | Assignment |
Owner name: LATTICE SEMICONDUCTOR CORPORATION, OREGON Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:HUME, CHRISTOPHER;SCHADT, JOHN A.;TAIT, MARGARET C.;AND OTHERS;REEL/FRAME:015531/0056 Effective date: 20041217 |
|
FEPP | Fee payment procedure |
Free format text: PAYOR NUMBER ASSIGNED (ORIGINAL EVENT CODE: ASPN); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY |
|
STCF | Information on status: patent grant |
Free format text: PATENTED CASE |
|
FPAY | Fee payment |
Year of fee payment: 4 |
|
FPAY | Fee payment |
Year of fee payment: 8 |
|
AS | Assignment |
Owner name: JEFFERIES FINANCE LLC, NEW YORK Free format text: SECURITY INTEREST;ASSIGNORS:LATTICE SEMICONDUCTOR CORPORATION;SIBEAM, INC.;SILICON IMAGE, INC.;AND OTHERS;REEL/FRAME:035222/0866 Effective date: 20150310 |
|
MAFP | Maintenance fee payment |
Free format text: PAYMENT OF MAINTENANCE FEE, 12TH YEAR, LARGE ENTITY (ORIGINAL EVENT CODE: M1553); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY Year of fee payment: 12 |
|
AS | Assignment |
Owner name: LATTICE SEMICONDUCTOR CORPORATION, OREGON Free format text: RELEASE BY SECURED PARTY;ASSIGNOR:JEFFERIES FINANCE LLC;REEL/FRAME:049827/0326 Effective date: 20190517 Owner name: SIBEAM, INC., OREGON Free format text: RELEASE BY SECURED PARTY;ASSIGNOR:JEFFERIES FINANCE LLC;REEL/FRAME:049827/0326 Effective date: 20190517 Owner name: SILICON IMAGE, INC., OREGON Free format text: RELEASE BY SECURED PARTY;ASSIGNOR:JEFFERIES FINANCE LLC;REEL/FRAME:049827/0326 Effective date: 20190517 Owner name: DVDO, INC., OREGON Free format text: RELEASE BY SECURED PARTY;ASSIGNOR:JEFFERIES FINANCE LLC;REEL/FRAME:049827/0326 Effective date: 20190517 Owner name: WELLS FARGO BANK, NATIONAL ASSOCIATION, AS ADMINIS Free format text: SECURITY INTEREST;ASSIGNOR:LATTICE SEMICONDUCTOR CORPORATION;REEL/FRAME:049980/0786 Effective date: 20190517 Owner name: WELLS FARGO BANK, NATIONAL ASSOCIATION, AS ADMINISTRATIVE AGENT, COLORADO Free format text: SECURITY INTEREST;ASSIGNOR:LATTICE SEMICONDUCTOR CORPORATION;REEL/FRAME:049980/0786 Effective date: 20190517 |