US 20100207660 A1
A time multiplex logic device is disclosed. The device comprises a single wire segment to couple a plurality of logic outputs to a plurality of logic inputs using a non-overlapping time multiplex sequence of global controls signals. The disclosure includes programmable logic blocks and wire structures that allow wire sharing. Time shared wires offer significant reduction in total wires needed for routing in programmable logic, which accounts for the single largest overhead and cost associated with programmable logic.
1. A time multiplex look-up-table (LUT) logic circuit of a programmable logic device, the circuit comprising:
a common input; and
a plurality of control signals comprising a time multiplexing sequence, wherein a said control signal has a non overlapping activation time interval with respect to the other control signals; and
a logic block having a plurality of LUT values and an output, and a plurality of inputs, each input received in true and complement signal pairs, wherein the plurality of inputs couple a said LUT value to the output; and
a plurality of data storage units, each storage unit comprising:
an input to receive data to store in the storage unit; and
two outputs having true and complement data levels of the stored data value in the storage unit, the two outputs coupled to the two signal inputs of a said input of the logic block; and
a plurality of access devices, each access device coupled to the common input and the input to a said data storage unit, and a said control signal;
wherein, the common input is coupled to the plurality of data storage units one storage unit at a time by the time multiplexing sequence of the plurality of control signals.
2. The circuit of
3. The circuit of
4. The circuit of
5. The circuit of
6. The circuit of
7. The circuit of
8. The circuit of
9. A time multiplex interconnect structure of a programmable logic device, the device comprising:
a plurality of global control signals comprising a time multiplex sequence, wherein a said control signal has a non-overlapping activation time interval with respect to the other control signals; and
a single wire segment to couple a plurality of first outputs to a plurality of first inputs, wherein a said first output is coupled to a said first input during a said non overlapping time interval of a said global control signal; and
a plurality of first logic blocks, each of the first logic blocks comprising a said first output, wherein a said first output can be configured to couple to said single wire segment; and
a plurality of second logic blocks, at least one of the second logic blocks comprising the said plurality of first inputs, wherein the said plurality of first inputs can be configured to couple to said wire segment;
wherein, the single wire segment sequentially couples the plurality of first logic block outputs to the first inputs of said second logic block in said time multiplex sequence.
10. The device of
11. The device of
12. The device of
13. The device of
14. The device of
15. The device of
16. The device of
17. The device of
18. The device of
19. A time multiplex logic device comprising:
a common wire segment; and
a plurality of control signals comprising a time multiplex sequence, wherein a said control signal has a non overlapping activation time interval with respect to the other control signals; and
a plurality of logic outputs coupled to the common wire segment in said time multiplexing sequence by the plurality of control signals; and
a logic block comprising a plurality of inputs coupled to the common wire segment, wherein each input is received and stored in a data storage unit in said time multiplex sequence from a said logic output coupled to said common wire segment;
wherein, the logic block generates a valid logic output in response to the inputs stored in the data storage units at the end of said time multiplex sequence.
20. The device of
This application is a division of application Ser. No. 12/245,753 filed on Oct. 5, 2008, which is a division of application Ser. No. 11/369,541 filed on Mar. 8, 2006 (now U.S. Pat. No. 7,486,111), both of which have as inventor Mr. R. U. Madurawe, the contents of which are incorporated herein by reference.
The present invention relates to programmable logic devices. Specifically it relates to programmable interconnect that can carry a plurality of input and output signals in a single wire, thus providing a significant reduction of interconnect required for programmable logic devices.
Traditionally, integrated circuit (IC) devices such as custom, semi-custom, or application specific integrated circuit (ASIC) devices have been used in electronic products to reduce cost, enhance performance or meet space constraints. However, the design and fabrication of custom or semi-custom ICs can be time consuming and expensive. The customization involves a lengthy design cycle during the product definition phase and high Non Recurring Engineering (NRE) costs during manufacturing phase. In the event of finding a logic error in the custom or semi-custom IC during final test phase, the design and fabrication cycle has to be repeated. Such lengthy correction cycles further aggravate the time to market and engineering cost. As a result, ASICs serve only specific applications and are custom built for high volume and low cost.
Another type of semi custom device called a Gate Array customizes modular blocks at a reduced NRE cost by synthesizing the design using a software model similar to the ASIC. Structured ASICs provide a larger modular block compared to Gate Arrays, and may or may not provide pre instituted clock networks to simplify the design effort. In both, a software tool has to undergo a tedious iteration between a trial placement and ensuing wire “RC” extraction for timing closure. The missing silicon level design verification in both results in multiple spins and lengthy design iterations, further exacerbating a quick design solution.
In recent years there has been a move away from custom or semi-custom ICs toward field programmable components whose function is determined not when the integrated circuit is fabricated, but by an end user “in the field” prior to use. Off the shelf, generic Programmable Logic Device (PLD) or Field Programmable Gate Array (FPGA) products greatly simplify the design cycle. These products offer user-friendly software to fit custom logic into the device through programmability, and the capability to tweak and optimize designs to improve silicon performance. The flexibility of this programmability is expensive in terms of silicon real estate, but reduces design cycle and upfront NRE cost to the designer.
FPGAs offer the advantages of low non-recurring engineering costs, fast turnaround (designs can be placed and routed on an FPGA in typically a few minutes), and low risk since designs can be easily amended late in the product design cycle. It is only for high volume production runs that there is a cost benefit in using the more traditional approaches. Compared to PLD and FPGA, an ASIC has hard-wired logic connections, identified during the chip design phase. ASIC has no multiple logic choices, no multiple routing choices and no configuration memory to customize logic and routing. This is a large chip area and cost saving for the ASIC. Smaller ASIC die sizes lead to better performance. A full custom ASIC also has customized logic functions which can take less gate counts compared to PLD and FPGA implementations of the same functions. Thus, an ASIC is significantly smaller, faster, cheaper and more reliable than an equivalent gate-count PLD or FPGA. The trade-off is between time-to-market (PLD and FPGA advantage) versus low cost and better reliability (ASIC advantage). The cost of Silicon real estate for programmability provided by the PLD and FPGA compared to ASIC determines the extra cost the user has to bear for customer re-configurability of logic functions.
The ratio of FPGA to ASIC logic gate Silicon area can result as much as 30 to 40 times to implement identical content. Such a large Silicon area disadvantage lead to significant cost and performance disparity between the ASIC and the FPGA. A significant FPGA logic gate Silicon density improvement has been disclosed in the incorporated-by-reference application Ser. Nos. 10/267,483, 10/267,484 and 10/267,511. Such techniques can reduce the ratio of FPGA to ASIC logic gate Silicon area to 3 to 6 times. The most significant portion of Silicon real estate overhead is consumed by programmable interconnects in an FPGA. In a conventional FPGA, over 90% of the configuration memory is dedicated to customize routing for the user, while only under 10% of the configuration memory is utilized to customize logic. Reducing the FPGA logic area penalty to less than 2× would eliminate the need for ASIC designs, and the FPGA design will become the new standard for system design.
In an exact analogy between an FPGA and a City; the Houses in the City are equivalent to Logic in the FPGA, and the Roads in the City are equivalent to Routing Wires in the FPGA. Each Input and Output signal of a Logic Block in the FPGA is a dedicated Incoming and Outgoing Road to the House. Any network of Roads to customize a generic City with specific travel needs would be enormous: first all Houses have to be identified with the correct Incoming & Outgoing Roads, then the required Roads must be found within the network of Roads, and finally the travel times have to be computed to ensure that all meet the Travel Time budget. Not having enough Roads mandate taking detours that affect critical time budgets. Not having enough Red/Green lights and intersections in the network of Road affects the Road utilization efficiency & navigation. The challenge of an FPGA is similar: to provide a network of Roads that do not take up most of the City area, or to keep the FPGA area close to ASIC area.
In a PLD and an FPGA, a complex logic design is broken down to smaller logic blocks and programmed into logic blocks provided in the FPGA. Smaller logic elements allow sequential and combinational logic design implementations. Combinational logic has no memory and outputs reflect a function solely of present inputs. Sequential logic is implemented by inserting memory into the logic path to store past history. Current PLD and FPGA architectures include transistor pairs, NAND or OR gates, multiplexers, look-up-tables (LUTs) and AND-OR structures in a basic logic element. In a PLD the basic logic element is labeled as macro-cell. Hereafter the terminology FPGA will include both FPGAs and PLDs, and the terminology logic element will include both logic elements and macro-cells. Granularity of a FPGA refers to logic content of a basic logic element. Smaller blocks of a complex logic design are customized to fit into FPGA grain. In fine-grain architectures, a small basic logic element is enclosed in a routing matrix and replicated. This is like building one room track Houses in the City. These offer easy logic fitting at the expense of complex routing. In course-grain architectures, many basic logic elements are combined with local routing and wrapped in a routing matrix to form a logic block. This is like building repeating programmable neighborhoods in the City, each neighborhood providing some customization capability. The logic block is then replicated with global routing. Larger logic blocks make the logic fitting difficult and the routing easier. A challenge for FPGA architectures is to provide easy logic fitting (like fine-grain) and maintain easy routing (like course-grain). It's balancing the neighborhood size with the network of roads required.
Inputs and outputs for the Logic Element or Logic Block are selected from the programmable Routing Matrix. A routing wire is dedicated to each. An exemplary routing matrix containing logic elements described in Ref-1 (Seals & Whapshott) is shown in
The logic element having a built in D-flip-flop used with
Routing block wire structure defines how logic blocks are connected to each other. Neighboring logic elements have short wire connections, while die opposite corner logic blocks have long wire connections, or a multiple of shorter wires connected to make a long wire. All wires are driven by a fixed pre-designed logic element output buffer and the drive strength does not change on account of wire length. Longer wires may have repeaters to rejuvenate the signals periodically. Buffers consume a large Si area and very expensive. The wire delays become unpredictable as the wire lengths are randomly chosen during the Logic Optimization to best fit the design into a given FPGA. FPGAs also incur lengthy run times during timing driven optimization of partitioned logic. As FPGAs grow bigger in die size, the number of wire segments and wire lengths to connect logic increase. Wire delays dominate chip performance. Wire delays grow proportional to square of the wire length, and inverse distance to neighboring wires. Maximum chip sizes remain constant at mask dimension of about 2 cm per side, while metal wire spacing is reduced with technology scaling. A good timing optimization requires in depth knowledge of the specific FPGA fitter, the length of wires segments, and relevant process parameters; a skill not found within the design house doing the fitting. In segmented wire architectures, expensive fixed buffers are provided to drive global signals on selected lines. These buffers are too few as they are too expensive, and only offer unidirectional data flow. Predictable timing is another challenge for FPGAs. This would enhance place and route tool capability in FPGAs to better fit and optimize timing critical logic designs. More wires exacerbate the problem, while fewer wires keep the problem tractable, reducing FPGA cost.
FPGA architectures are discussed in detail in the referenced US Patents incorporated herein by reference. These patents disclose specialized routing blocks to connect logic elements in FPGAs and macro-cells in PLDs. In all cases a fixed routing block is programmed to define inputs and outputs for the logic blocks, while the logic block performs a specific logic function. Such dedicated interconnect wires drive the cost of FPGAs over equivalent functionality ASICs.
Four methods of programmable point to point connections, synonymous with programmable switches, between A and B are shown in
A volatile six transistor SRAM based configuration circuit is shown in
A programmable MUX utilizes a plurality of point to point switches.
In FPGAs the configuration memory content is very high. It is typically loaded when the device is powered up, and takes up a considerable time to fully load all the data. On the fly alteration of memory is extremely cumbersome. References U.S. Pat. No. 5,629,637 and U.S. Pat. No. 6,480,954 disclose some methods to make the task manageable. The problem has now grown three fold: (i) Dedicated wires were needed to connect the inputs and outputs leading to a large chip area, (ii) Extra circuitry is inserted to identify which portion of the memory data is refreshed further adding to the cost of the device, and (iii) The operation must be halted to upgrade the memory with new data leading to significant switch-over dead time. Efficient software tools that can synthesize designs into a multitude of variable designs do not exist even in these modern days. Reconfigurable computing does not resolve the high cost of FPGAs over ASICs.
What is desirable is to reduce the Silicon overhead required to support routing wires within a programmable logic device. The routing must provide timing predictability and easily integrated into a software tool. These routing connections need to facilitate short wire connections and long wire connections and then preserve timing in a predictable and calculable manner. One method to reduce the wire overhead is to provide a programmable time multiplexing scheme to share one wire with a plurality of inputs/outputs, thus reducing the overall wires needed within the FPGA. It is also beneficial to have the ability to program the data flow direction, and have the entire configurability integrated into vertical configuration circuits. Vertically integrated configuration circuits in 3D FPGAs, previously presented and incorporated herein, provide significant cost reductions and performance improvement to FPGAs. Previously presented techniques incorporated herein to use bi-directional buffers and highly efficient bridge structures all consume less Si real estate to further reduce the cost of FPGAs. The new interconnect structure must reach reasonable cost parity to ASICs (within 2× of ASIC cost) and also lend to an easy application specific design conversion to the user, preserving the original timing characteristics of the circuit during the conversion.
In one aspect, a programmable logic device, wherein a plurality of outputs from logic blocks is coupled to a plurality of inputs to logic blocks by a single wire segment comprising a programmable time multiplexing method.
Implementations of the above aspect may include one or more of the following. A programmable logic device comprises an array of structured programmable logic cells or logic modules. These modules may use one or more metal layers to partially connect them. These modules may be customized by the user for specific logic functions. A programmable interconnect structure may be used to fully customize a specific interconnect pattern by the user to interconnect the customized logic modules. Said interconnect structure is formed above said structured cell array. The programmable structure may include one or more upper metal layers. These metal layers provide the interconnect structure to complete the functionality of the integrated circuit and form connections to input and output pads. Said interconnect structure comprises a programmable switch. Most common switch is a pass-gate device. A pass-gate is an NMOS transistor, a PMOS transistor or a CMOS transistor pair that can electrically connect two points. A pass-gate is a conductivity modulating element that comprises a connect state and a disconnect state. Other methods of connecting two points include fuse links and anti-fuse capacitors. Yet other methods to connect two points may include an electrochemical or ferroelectric or other cell. Programming these devices include forming one of either a conducting path or a non-conducting path.
The gate electrode signal on said pass-gates allows a programmable method of controlling an on and off connection. A plurality of pass-gate logic is included in said programmable logic blocks and programmable wire structure. The structure may include circuits consisting of CMOS transistors comprising AND, NAND, INVERT, OR, NOR, Look-Up-Table, Truth-Table, MUX, Arithmetic-Logic-Unit, Central-Processor-Unit, Programmable-Memory and Pass-Gate type logic circuits. Multiple logic circuits may be combined into a larger logic block. Configuration circuits are used to offer programmability. Configuration circuits have memory elements and access circuitry to change memory data. Each memory element can be a transistor or a diode or a group of electronic devices. The memory elements can be made of CMOS devices, capacitors, diodes, resistors and other electronic components. The memory elements can be made of thin film devices such as thin film transistors (TFT), thin-film capacitors and thin-film diodes. The memory element can be selected from the group consisting of volatile and non volatile memory elements. The memory element can also be selected from the group comprising fuses, antifuses, SRAM cells, DRAM cells, optical cells, metal optional links, EPROMs, EEPROMs, flash, magnetic and ferro-electric elements. Memory element can be a conductivity modulating element. One or more redundant memory elements can be provided for controlling the same circuit block. The memory element can generate an output signal to control pass-gate logic. Memory element can generate a signal that is used to derive a control signal. The control signal is coupled to pass-gate logic element, AND array, NOR array, a MUX or a Look-Up-Table (LUT) logic.
Logic blocks comprise outputs and inputs. Logic functions perform logical operations. Logic functions manipulate input signals to provide a required response at one or more outputs. The input signals may be stored in storage elements. The output signals may be stored in storage elements. The input and output signals may be synchronous or asynchronous signals. The inputs of logic functions may be received from memory, or from input pins on the device, or from outputs of other logic blocks in the device. The outputs of logic blocks may be coupled to other inputs, or storage devices, or to output pads in the device, or used as control logic.
Structured cells are fabricated using a basic logic process capable of making CMOS transistors. These transistors are formed on P-type, N-type, epi or SOI substrate wafer. Configuration circuits, including configuration memory, constructed on same silicon substrate take up a large Silicon foot print. That adds to the cost of programmable wire structure compared to a similar functionality custom wire structure. A 3-dimensional integration of pass-gate and configuration circuits to connect wires provides a significant cost reduction in the incorporated-by-reference applications. The pass-gates and configuration circuits may be constructed above one or more metal layers. Said metal layers may be used for intra and inter connection of structured cells. The programmable wire circuits may be formed above the structured cell circuits by inserting a thin-film transistor (TFT) module or a laser-fuse model, or any other vertical memory structure. Said memory module may be inserted at any via layer, in-between two metal layers or at the top of top metal layer of a logic process. The memory element can generate an output signal to control logic gates. Memory element can generate a signal that is used to derive a control signal.
The programmable interconnect comprises a significant overhead in a FPGA/PLD. In generic FPGA devices commercialized today, over 90% of the configurability is towards programming interconnect while 10% is to configure logic. Unidirectional wires with periodic repeaters are a common practice. In incorporated-by-reference applications bi-directional wires were disclosed to provide significant overhead reduction to interconnect. All interconnect in FPGAs are dedicated between one output and one input. In one embodiment, a plurality of outputs and a plurality of inputs may share one wire. Control signals may provide a time-multiplexing arrangement to regulate time slots between the outputs and the inputs. The control signals may be non-overlapping clocks, each clock directing one output to couple to one input. To time-multiplex signals, output wire structures may require special construction. In a first embodiment a time multiplexed wire structure in an integrated circuit, comprising: a first wire and a second wire; and two or more paths to couple the first wire to the second wire, wherein each coupling path is further comprised of: a programmable means to select or deselect the path; and a pass-gate activated by a control signal to couple or decouple the first wire to said second wire; wherein, a selected path couples the first wire to the second wire during a time period when the control signal to the pass-gate in said path is asserted to a first state. In a second embodiment a time multiplexed wire structure in an integrated circuit, comprising: a first set of wires and a second wire, wherein each of the first set of wires comprises two or more paths to couple said set wire to the second wire, wherein each coupling path is further comprised of: a programmable means to select or deselect the path; and a pass-gate activated by a control signal to couple or decouple the set wire to said second wire; wherein, a selected path couples the set wire to the second wire during a time period when the control signal to the pass-gate in said path is asserted to a first state; and wherein, each of the control signals is common to the pass-gate in one path between each of the first set of wires and the second wire.
Inputs may also be modified to time multiplex wires. In one embodiment a time multiplexed wire structure in an integrated circuit, comprising: a first wire and a set of wires, said first wire comprising a signal state; and a plurality of paths, each path coupling the first wire to two of the set of wires, each said path further comprising: a pass-gate coupled to the first wire, said pass-gate activated by a control signal to select or deselect the path; and a storage device coupled to the pass-gate, wherein when the pass-gate is activated, the storage device couples to the first wire and stores the signal state of the first wire, said storage device further coupled to said two set wires providing the stored signal state and the complement of the signal state to said two set wires; wherein, each path couples the first wire to the data storage device in the path during a time period when the control signal to the pass-gate in said path is asserted to a first state; and wherein, the data storage unit provides the stored signal level and the compliment of the signal level to the two of the set of wires. Such inputs and outputs significantly reduce the overall wires requires in an FPGA interconnect structure.
In a second aspect, a software placement and route tool, wherein a plurality of routes is assigned to a single route, wherein the plurality of routs is routed in the single route by a time multiplexed method.
Implementations of the above aspect may include one or more of the following. A typical placement and route (P&R) tool assigns a single route from an output to input. These routes handle a dedicated coupling between the two nodes. In a first embodiment, the software tool may group all the inputs of a logic block in one location. The tool then identifies all outputs in preceding logic blocks that generate the inputs, and assign a single route to couple the plurality of outputs to the plurality of inputs. The tool may then identify the set of common non-overlapping control clock signals and select matching time slots to couple the required outputs to required inputs in a sequential manner. The software tool may further optimize the performance by adjusting the critical signal coupling to the global system clock to achieve the best performance. In another embodiment, a pair of wires may be assigned to couple a plurality of outputs to a plurality of inputs. A differential signal level may couple the outputs to inputs at a clock rate far exceeding the system clock. In one example the internal time-multiplexing rate may be 10 GHz, while the system clock is only 1 GHz. The differential time multiplexing may also save a considerable power in the device due to the very low voltage swings encountered by the wires.
In a third aspect, a critical signal propagation path in a programmable logic device comprising global non-overlapping control signals and time multiplexed wires, wherein each control signal assigns a programmable time slot for multiple signals within one of said wires, further comprising one or more critical signals assigned to the last multiplexed time slot.
Implementations of the above aspect may further include one or more of the following. A time multiplexing hurts timing as all signals have to stabilize before a valid result is achieved. In a multi-input function, some inputs may be more critical than others. In one embodiment, the outputs and the inputs both have many non-overlapping control signals to pick a matching time slot. The most critical signal may be assigned the time slot that provides the optimal time to the system clock that determines the critical path delay. In one case, this may be the last time slot in the relay cycle. In another case, this may be related to the availability of the outputs: the early output is given the first time slot, while the last ready output is assigned the last time slot. In yet another case, the control signals may comprise a programmable delay element at the input sites. The outputs may relay data prior to the inputs receiving the data. Said inputs may react to a delayed control signal from the transmitting control signal. This delay may vary to account for the wire delay between the two nodes.
Implementations of the above aspects may include one or more of the following. A routing structure may comprise a significant reduction in the bi-directional segmented wires in a PLD/FPGA. Bundles of wires terminating at a switch block may have more efficient and less area consuming bridges structures. Special bridge structures for FPGAs were disclosed in incorporated-by-reference applications. Such time-multiplexed interconnect constitutes low cost fabrication of a VLSI IC product. The IC product is re-programmable in its initial stage with turnkey conversion to an ASIC. The IC has the end ASIC cost structure and FPGA re-programmability. The IC product offering occurs in two phases: the first stage is a generic FPGA that has re-programmability containing a programmable module, and the second stage is an ASIC with the entire programmable module replaced by 1 to 2 customized hard-wire masks.
A series product families can be provided with a modularized programmable element in an FPGA version followed by a turnkey custom ASIC with the same base die with 1-2 custom masks. The vertically integrated programmable module does not consume valuable silicon real estate of a base die. Furthermore, the design and layout of these product families adhere to removable module concept: ensuring the functionality and timing of the product in its FPGA and ASIC canonicals. These IC products can replace existing PLD and FPGA products and compete with existing Gate Arrays and ASICs in cost and performance.
An easy turnkey customization of an ASIC from an original smaller cheaper and faster PLD or FPGA would greatly enhance time to market, performance, and product reliability.
FIG. 4Ba shows an exemplary programmable pass-gate switch with SRAM memory.
FIG. 4Bb shows the symbol used for switch in FIG. 4Ba.
In the following detailed description of the invention, reference is made to the accompanying drawings which form a part hereof, and in which is shown, by way of illustration, specific embodiments in which the invention may be practiced. These embodiments are described in sufficient detail to enable those skilled in the art to practice the invention. Other embodiments may be utilized and structural, logical, and electrical changes may be made without departing from the scope of the present invention.
Definitions: The terms wafer and substrate used in the following description include any structure having an exposed surface with which to form the integrated circuit (IC) structure of the invention. The term substrate is understood to include semiconductor wafers. The term substrate is also used to refer to semiconductor structures during processing, and may include other layers that have been fabricated thereupon. Both wafer and substrate include doped and undoped semiconductors, epitaxial semiconductor layers supported by a base semiconductor or insulator, SOI material as well as other semiconductor structures well known to one skilled in the art. The term conductor is understood to include semiconductors, and the term insulator is defined to include any material that is less electrically conductive than the materials referred to as conductors.
The term module layer includes a structure that is fabricated using a series of predetermined process steps. The boundary of the structure is defined by a first step, one or more intermediate steps, and a final step. The resulting structure is formed on a substrate.
The term pass-gate and switch refers to a structure that can pass a signal when on, and block signal passage when off. A pass-gate connects two points when on, and disconnects two points when off. A pass-gate can be a floating-gate transistor, an NMOS transistor, a PMOS transistor or a CMOS transistor pair. The gate electrode of transistors determines the state of the connection. A CMOS pass-gate requires complementary signals coupled to NMOS and PMOS gate electrodes. A control logic signal is connected to gate electrode of a transistor for programmable logic. A pass-gate can be a conductivity modulating element. The conductivity may be made to change between a sufficiently conductive state to a sufficiently nonconductive state by a configuration means. The configurable element may comprise a chemical, magnetic, electrical, optical, ferro-electric or any other property that allow the element to change its conductivity between said two states.
The term buffer includes a structure that receives a weak incoming signal and transmits a strong output signal. Buffers provide high drive current to maintain signal integrity. Buffer includes repeaters that rejuvenate signal integrity in long wires. Buffer further includes a single inverter, and a series of connected inverters wherein each inverter in the series is sized larger to provide a higher drive current.
The term bridge includes a structure that manages routing within a set or a cluster of wires. Signals arriving at the bridge on a wire may be transmitted to one or more other wires in that bridge. A bridge includes simple transmission, buffered transmission, uni-directional or multi-directional routing on the wire cluster. A bridge includes switch blocks.
The term configuration circuit includes one or more configurable elements and connections that can be programmed for controlling one or more circuit blocks in accordance with a predetermined user-desired functionality. The configuration circuit includes the memory element and the access circuitry, herewith called memory circuitry, to modify said memory element. Configuration circuit does not include the logic pass-gate controlled by said memory element. In one embodiment, the configuration circuit includes a plurality of memory circuits to store instructions to configure an FPGA. In another embodiment, the configuration circuit includes a first selectable configuration where a plurality of memory circuits is formed to store instructions to control one or more circuit blocks. The configuration circuits include a second selectable configuration with a predetermined conductive pattern formed in lieu of the memory circuit to control substantially the same circuit blocks. The memory circuit includes elements such as diode, transistor, resistor, capacitor, metal link, among others. The memory circuit also includes thin film elements. In yet another embodiment, the configuration circuits include a predetermined conductive pattern, via, resistor, capacitor or other suitable circuits formed in lieu of the memory circuit to control substantially the same circuit blocks.
The term time-multiplexing includes the ability to differentiate a value in time domain. The value may be a voltage, a signal or any electrical property in an IC. A plurality of time intervals make a valid time period. Inside the time period, a value comprises a plurality of valid states: each state attributed to each time interval within the period. Thus time-multiplexing provides a means to identify a plurality of valid values within a time period.
The term “horizontal” as used in this application is defined as a plane parallel to the conventional plane or surface of a wafer or substrate, regardless of the orientation of the wafer or substrate. The term “vertical” refers to a direction perpendicular to the horizontal direction as defined above. Prepositions, such as “on”, “side”, “higher”, “lower”, “over” and “under” are defined with respect to the conventional plane or surface being on the top surface of the wafer or substrate, regardless of the orientation of the wafer or substrate. The following detailed description is, therefore, not to be taken in a limiting sense.
A point to point connection can be made utilizing programmable pass-gate logic as shown in
An anti-fuse based configuration circuit to use with this invention is shown next in
These configuration circuits, and similarly constructed other configuration circuits, can be used in programmable logic devices. Those with ordinary skill in the art may recognize other methods for constructing configuration circuits to generate a valid S0 output.
SRAM memory technology has the advantage of not requiring a high voltage to configure memory. The SRAM based switch shown in
A new kind of a programmable logic device utilizing thin-film transistor configurable circuits is disclosed in application Ser. No. 10/267,483 entitled “Three Dimensional Integrated Circuits”, application Ser. No. 10/267,484 entitled “Methods for Fabricating Three-Dimensional Integrated Circuits”, and application Ser. No. 10/267,511 now U.S. Pat. No. 6,747,478 entitled “Field Programmable Gate Array With Convertibility to Application Specific Integrated Circuit”, all of which were filed on Oct. 8, 2002 and list as inventor Mr. R. U. Madurawe, the contents of which are incorporated-by-reference. The disclosures describe a programmable logic device and an application specific device fabrication from the same base Silicon die. The PLD is fabricated with a programmable memory module, while the ASIC is fabricated with a conductive pattern in lieu of the memory. Both memory module and conductive pattern provide identical control of logic circuits. For each set of memory bit patterns, there is a unique conductive pattern to achieve the same logic functionality. The vertical integration of the configuration circuit leads to a significant cost reduction for the PLD, and the elimination of TFT memory for the ASIC allows an additional cost reduction for the user. The TFT vertical memory integration scheme is briefly described next.
Fabrication of the IC also follows a modularized device formation. Formation of transistors 1050 and routing 1054 is by utilizing a standard logic process flow used in the ASIC fabrication. Extra processing steps used for memory element 1052 formation are inserted into the logic flow after circuit layer 1050 is constructed. A full disclosure of the vertical integration of the TFT module using extra masks and extra processing is in the incorporated by reference applications discussed above.
During the customization, the base die and the data in those remaining mask layers do not change making the logistics associated with chip manufacture simple. Removal of the SRAM module provides a low cost standard logic process for the final ASIC construction with the added benefit of a smaller die size. The design timing is unaffected by this migration as lateral metal routing and silicon transistors are untouched. Software verification and the original FPGA design methodology provide a guaranteed final ASIC solution to the user. A full disclosure of the ASIC migration from the original FPGA is in the incorporated by reference applications discussed above.
The ASIC migration path for the point to point connection in
In a second embodiment for the conductive pattern, the pass-gate 1110 drain is shorted to source in
In yet another embodiment of a programmable multi-dimensional semiconductor device, a first module layer is fabricated having a plurality of circuit blocks formed on a first plane. The programmable multi-dimensional semiconductor device also includes a second module layer formed on a second plane. A plurality of configuration circuits is then formed in the second plane to store instructions to control a portion of the circuit blocks.
The fabrication of thin-film transistors to construct configuration circuits is discussed next. A full disclosure is provided in application Ser. No. 10/413,809 entitled “Semiconductor Switching Devices”, filed on Apr. 14, 2003, which lists as inventor Mr. R. U. Madurawe, the contents of which are incorporated herein by reference.
The following terms used herein are acronyms associated with certain manufacturing processes. The acronyms and their abbreviations are as follows:
VT Threshold voltage
LDN Lightly doped NMOS drain
LDP Lightly doped PMOS drain
LDD Lightly doped drain
RTA Rapid thermal annealing
ILD Inter layer dielectric
P− Positive light dopant (Boron species, BF2)
N− Negative light dopant (Phosphorous, Arsenic)
P+ Positive high dopant (Boron species, BF2)
N+ Negative high dopant (Phosphorous, Arsenic)
Gox Gate oxide
LPCVD Low pressure chemical vapor deposition
CVD Chemical vapor deposition
LTO Low temperature oxide
A logic process is used to fabricate CMOS devices on a substrate layer for the fabrication of storage circuits. These CMOS devices may be used to build AND gates, OR gates, inverters, adders, multipliers, memory and pass-gate based logic functions in an integrated circuit. A CMOSFET TFT module layer or a Complementary gated FET (CGated-FET) TFT module layer may be inserted to a logic process at a first contact mask to build a second set of TFT MOSFET or Gated-FET devices. Configuration circuitry is build with these second set of transistors. An exemplary logic process may include one or more following steps:
P-type substrate starting wafer
Shallow Trench isolation: Trench Etch, Trench Fill and CMP
PMOS VT mask & implant
NMOS VT mask & implant
Pwell implant mask and implant through field
Nwell implant mask and implant through field
Dopant activation and anneal
Sacrificial oxide etch
Gate oxidation/Dual gate oxide option
Gate poly (GP) deposition
GP mask & etch
LDN mask & implant
LDP mask & implant
Spacer oxide deposition & spacer etch
N+ mask and NMOS N+ G, S, D implant
P+ mask and PMOS P+ G, S, D implant
RTA anneal-Ni salicidation (S/D/G regions & interconnect)
Unreacted Ni etch
ILD oxide deposition & CMP
C1 mask & etch
W-Silicide plug fill & CMP
˜300 A poly P1 (crystalline poly-1) deposition
P1 mask & etch
Blanket Vtn P− implant (NMOS Vt)
Vtp mask & N− implant (PMOS Vt)
TFT Gox (70 A PECVD) deposition
500 A P2 (crystalline poly-2) deposition
P2 mask & etch
Blanket LDN NMOS N-tip implant
LDP mask and PMOS P-tip implant
Spacer LTO deposition
Spacer LTO etch to form spacers & expose P1
Blanket N+ implant (NMOS G/S/D & interconnect)
P+ mask & implant (PMOS G/S/D & interconnect)
RTA salicidation and poly re-crystallization (G/S/D regions & interconnect)
Dopant activation anneal
Excess Ni etch
ILD oxide deposition & CMP
C2 mask & etch
W plug formation & CMP
M1 deposition and back end metallization
The TFT process technology consists of creating NMOS & PMOS poly-silicon transistors. In the embodiment in
After gate poly of regular transistors are patterned and etched, the poly is salicided using Nickel & RTA sequences. Then the ILD is deposited, and polished by CMP techniques to a desired thickness. In the shown embodiment, the contact mask is split into two levels. The first C1 mask contains all contacts that connect latch outputs to substrate transistor gates and active nodes. Then the C1 mask is used to open and etch contacts in the ILD film. Ti/TiN glue layer followed by W-Six plugs, W plugs or Si plugs may be used to fill the plugs, then CMP polished to leave the fill material only in the contact holes. The choice of fill material is based on the thermal requirements of the TFT module.
Then, a first P1 poly layer, amorphous or crystalline, is deposited by LPCVD to a desired thickness as shown in
Patterned and implanted P1 may be subjected to dopant activation and crystallization. In one embodiment, RTA cycle is used to activate & crystallize the poly after it is patterned to near single crystal form. In a second embodiment, the gate dielectric is deposited, and buried contact mask is used to etch areas where P1 contacts P2 layer. Then, Ni is deposited and salicided with RTA cycle. All of the P1 in contact with Ni is salicided, while the rest poly is crystallized to near single crystal form. Then the unreacted Ni is etched away. In a third embodiment, amorphous poly is crystallized prior to P1 patterning with an oxide cap, metal seed mask, Ni deposition and MILC (Metal-Induced-Lateral-Crystallization).
Then the TFT gate dielectric layer is deposited followed by P2 layer deposition. The dielectric is deposited by PECVD techniques to a desired thickness in the 30-200 A range, desirably 70 A thick. The gate may be grown thermally by using RTA. This gate material could be an oxide, nitride, oxynitride, ONO structure, or any other dielectric material combination used as gate dielectric. The dielectric thickness is determined by the voltage level of the process. At this point an optional buried contact mask (BC) may be used to open selected P1 contact regions, etch the dielectric and expose P1 layer. BC could be used on P1 pedestals to form P1/P2 stacks over C1. In the P1 salicided embodiment using Ni, the dielectric deposition and buried contact etch occur before the crystallization. In the preferred embodiment, no BC is used.
Then second poly P2 layer, 300 A to 2000 A thick, preferably 500 A is deposited as amorphous or crystalline poly-silicon by LPCVD as shown in
A spacer oxide is deposited over the LDD implanted P2 using LTO or PECVD techniques. The oxide is etched to form spacers. The spacer etch leaves a residual oxide over P1 in a first embodiment, and completely removes oxide over exposed P1 in a second embodiment. The latter allows for P1 salicidation at a subsequent step. Then NMOS devices & N+ poly interconnects are blanket implanted with N+. The implant energy ensures full or partial dopant penetration into the 100 A residual oxide in the S/D regions adjacent to P2 layers. This doping gets to gate, drain & source of all NMOS devices and N+ interconnects. The P+ mask is used to select PMOS devices and P+ interconnect, and implanted with P+ dopant as shown in
After the P+/N+ implants, Nickel is deposited over P2 and salicided to form a low resistive refractory metal on exposed poly by RTA. Un-reacted Ni is etched as shown in
An LTO film is deposited over P2 layer, and polished flat with CMP. A second contact mask C2 is used to open contacts into the TFT P2 and P1 regions in addition to all other contacts to substrate transistors. In the shown embodiment, C1 contacts connecting latch outputs to substrate transistor gates require no C2 contacts. Contact plugs are filled with tungsten, CMP polished, and connected by metal as done in standard contact metallization of ICs as shown in
As the discussions demonstrate, memory controlled pass transistor logic elements provide a powerful tool to make switches. The ensuing high cost of memory can be drastically reduced by the 3-dimensional integration of configuration elements and the replaceable modularity concept for said memory. These advances allow designing a routing block to overcome the deficiencies in current FPGA designs. In one aspect, a cheaper memory element allows use of more memory for programmability. That enhances the ability to build large logic blocks (i.e. course-grain advantage) while maintaining smaller element logic fitting (i.e. fine-grain advantage). Furthermore larger grains need less connectivity: neighboring cells and far-away cells. That further simplifies the interconnect structure. A new interconnect structure utilizing the methods shown so far is discussed next.
A point to point switch in accordance with this teaching is shown in
The point to point switch with TFT configuration circuits in
In this disclosure, new time shared wires and wire structures are described to route data from logic block to logic block and across terminating wires. The selection structures to allow non-overlapping control signals to activate time multiplexed signals provide easy integration into software tools that provide place & route functions. Bi-directional wires with programmable buffers offer predictable and fast data transfer along short and long wires. It allows an FPGA construction where wire swapping and logic swapping is available for the placement and route soft-ware tool to optimize performance in randomly placed logic. More importantly, these wire structures allow a significant cost reduction in an FPGA; a 4 control signal scheme may allow a 2× reduction in wires in each horizontal and vertical track. As programmable wires comprise the lion share of the area overhead in an FPGA, a wire reduction offers very highly efficient FPGA construction. The time multiplexed wire structures in FPGAs enhance fitting, pin to pin routing, cost and performance of the FPGA.
A 3-dimensional SRAM process integration reduces the cost of re-programmability for these interconnect structures. Similarly, any other 3-dimensional memory technology will offer the same cost advantage. Such a 3D technology may be programmable fuse links, where the programming is achieved by a laser gun. It could be achieved by magnetic memory or ferro-electric memory. A method is also shown to map programmable elements to an application specific hard-wire elements, wherein the wire delays are unaffected by the change. The conversion allows a further cost reduction to the user, thus providing an alternative technique in designing an ASIC thru an original FPGA device, and to reach FPGA logic densities approaching ASIC logic densities.
Although an illustrative embodiment of the present invention, and various modifications thereof, have been described in detail herein with reference to the accompanying drawings, it is to be understood that the invention is not limited to this precise embodiment and the described modifications, and that various changes and further modifications may be effected therein by one skilled in the art without departing from the scope or spirit of the invention as defined in the appended claims.