Patents by Inventor Stephen M. Trimberger

Stephen M. Trimberger has filed for patents to protect the following inventions. This listing includes patent applications that are pending as well as patents that have already been granted by the United States Patent and Trademark Office (USPTO).

  • Patent number: 7143329
    Abstract: A system and method are disclosed for error correction in a programmable logic device (PLD). A frame circuit retrieves data from each column of configuration memory of the PLD, and a check memory stores of a plurality of check words. A buffer circuit is coupled to the check memory and to the frame circuit. The buffer circuit assembles blocks of data from data retrieved by the frame circuit and from corresponding check words in the check memory. A plurality of storage elements are provided for storage of status information. A check circuit is coupled to the storage elements and to the buffer circuit. Each block is checked by the check circuit using an error correcting code, and data indicating detected errors is stored in the storage elements.
    Type: Grant
    Filed: March 9, 2004
    Date of Patent: November 28, 2006
    Assignee: Xilinx, Inc.
    Inventors: Stephen M. Trimberger, Austin H. Lesea, Derek R. Curd
  • Patent number: 7143332
    Abstract: A random access memory (RAM) in a programmable logic device (PLD) supports error correction as well as a configurable data width. The number of bits in a user data word varies by the selected configuration of the RAM, while the number of bits in the error correction code (ECC) is unvarying, and is based on the total width of the memory. In some embodiments, separate ports are provided for the user data and the ECC data. Thus, ECC data can be written to an ECC portion of the RAM array at a given RAM address, while at the same time user data is written to or read from a configurable user data portion of the RAM array at the same RAM address. In other embodiments, a single memory access port is used for both user data and ECC data.
    Type: Grant
    Filed: December 16, 2003
    Date of Patent: November 28, 2006
    Assignee: Xilinx, Inc.
    Inventor: Stephen M. Trimberger
  • Patent number: 7143295
    Abstract: Disclosed are methods and circuits that enable PLD vendors to dedicate PLDs for use with one or more specified designs. The PLD is programmed to store an indicator related to a specific design, for example, a hash function of the design, and to compare an indicator calculated within the PLD from an expression of the design (such as a bitstream) with the stored indicator. Only if the comparison matches is the PLD programmed to implement the design.
    Type: Grant
    Filed: July 18, 2002
    Date of Patent: November 28, 2006
    Assignee: Xilinx, Inc.
    Inventor: Stephen M. Trimberger
  • Patent number: 7138827
    Abstract: A PLD includes at least one portion of the programmable interconnect that can be time multiplexed. The time multiplexed interconnect allows signals to be routed on shared interconnect at different times to different destinations, thereby increasing the functionality of the PLD. Multiple sources can use the same interconnect at different times to send signals to their respective destinations. To ensure proper sharing of the interconnect, the sources can include selection devices (such as multiplexers), and the destinations can include capture devices (such as flip-flops), wherein the selection devices and the capture devices are controlled by the same time multiplexing signal. To optimize the time multiplexing interconnect, as much of the same interconnect is shared as possible.
    Type: Grant
    Filed: March 26, 2004
    Date of Patent: November 21, 2006
    Assignee: Xilinx, Inc.
    Inventor: Stephen M. Trimberger
  • Patent number: 7134025
    Abstract: Described are various methods and systems for protecting proprietary configuration data for programmable logic devices. In one example, frames of configuration memory include overwrite-protect circuitry that reduces the risks associated with Trojan Horse attacks by preventing the overwriting of frames between device resets.
    Type: Grant
    Filed: May 14, 2002
    Date of Patent: November 7, 2006
    Assignee: Xilinx, Inc.
    Inventor: Stephen M. Trimberger
  • Patent number: 7117372
    Abstract: It is sometimes desirable to protect a design used in a PLD from being copied. According to the present invention, the design is encrypted, then loaded into a PLD, then decrypted, and then loaded into the configuration memory of the PLD. An attacker could relocate the design to a visible part of the PLD and learn the design. The present invention prevents design relocation by attaching address information to the encryption key or by encrypting an address where the design is to be loaded as well as encrypting the design itself. Thus, if an attacker tries to load the design into a different part of the PLD, the encrypted design will not decrypt properly.
    Type: Grant
    Filed: November 28, 2000
    Date of Patent: October 3, 2006
    Assignee: Xilinx, Inc.
    Inventors: Stephen M. Trimberger, Raymond C. Pang, Walter N. Sze, Jennifer Wong
  • Patent number: 7117373
    Abstract: It is sometimes desirable to protect a design used in a PLD from being copied. If the design is stored in a different device from the PLD and read into the PLD through a bitstream, an unencrypted bitstream could be observed and copied as it is being loaded. According to the invention, a bitstream for configuring a PLD with an encrypted design includes unencrypted words for controlling loading of the configuration bitstream and encrypted words that actually specify the design.
    Type: Grant
    Filed: November 28, 2000
    Date of Patent: October 3, 2006
    Assignee: XILINX, Inc.
    Inventors: Stephen M. Trimberger, Raymond C. Pang, Walter N. Sze, Jennifer Wong, Kameswara K. Rao
  • Patent number: 7111215
    Abstract: Methods of implementing designs in programmable logic devices (PLDs) to reduce susceptibility to single-event upsets (SEUs) by taking advantage of the fact that most PLD designs leave many routing resources unused. The unused routing resources can be used to provide duplicate routing paths between source and destination of signals in the design. The duplicate paths are selected such that an SEU affecting one of the duplicate paths simply switches the signal between the two paths. Thus, if one path is disabled due to an SEU, the other path can still provide the necessary connection, and the functionality of the design is unaffected. The methods can be applied, for example, to routing software for field programmable gate arrays (FPGAs) having programmable routing multiplexers controlled by static RAM-based configuration memory cells.
    Type: Grant
    Filed: January 29, 2004
    Date of Patent: September 19, 2006
    Assignee: Xilinx, Inc.
    Inventors: Eric R. Keller, Prasanna Sundararajan, Stephen M. Trimberger
  • Patent number: 7111224
    Abstract: An on-chip error correction circuit can be used to correct errors in memory cells of a FPGA. In one embodiment of the invention, the circuit can compute, during configuration, a plurality of error correction bits. These error correction bits are stored in a designated location on the FPGA. After all the memory cells are configured, the error correction circuit continuously computes the error correction bits of the memory cells and compares the result to the corresponding values stored in the designated location. If there is discrepancy, the stored error correction bits are used to correct the errors. In another embodiment of the invention, a plurality of parity bits of the original configuration bits is calculated. These parity bits are stored in registers. The FPGA contains on-chip parity bit generators that generate the corresponding parity bits. A discrepancy between the generated and stored parity triggers error correction action.
    Type: Grant
    Filed: February 28, 2001
    Date of Patent: September 19, 2006
    Assignee: Xilinx, Inc.
    Inventor: Stephen M. Trimberger
  • Patent number: 7103685
    Abstract: A method and system for processing a plurality of multi-bit configuration words for configuring a programmable logic device. One or more of bits of the multi-bit configuration words are identified as “Don't Care” configuration bits that do not affect the functionality of the programmable logic device. These “Don't Care” configuration bits may or may not be related to the specific configuration of the programmable logic device. A lossy compression operation is performed on the multi-bit configuration words thereby creating a compressed data set. The identified “Don't Care” configuration bits are used during the compression operation. For example, the compression operation may include (1) maintaining a compression buffer of previously compressed configuration words, and (2) comparing configuration words to be compressed with the configuration words in the compression buffer, wherein the “Don't Care” configuration bits are deemed to result in matches during the comparison.
    Type: Grant
    Filed: January 16, 2004
    Date of Patent: September 5, 2006
    Assignee: Xilinx, Inc.
    Inventor: Stephen M. Trimberger
  • Patent number: 7089527
    Abstract: Structures and methods for selectively applying a well bias to only those portions of a PLD where such a bias is necessary or desirable, e.g., applying a positive well bias to transistors on critical paths within a user's design. A substrate for an integrated circuit includes a plurality of wells, each of which can be independently and programmably biased with the same or a different well bias voltage. In one embodiment, FPGA implementation software automatically determines the critical paths and generates a configuration bitstream that enables positive well biasing only for the transistors participating in the critical paths, or only for programmable logic elements (e.g., CLBs or lookup tables) containing those transistors. In another embodiment, negative well biasing is selectively applied to reduce leakage current.
    Type: Grant
    Filed: May 25, 2004
    Date of Patent: August 8, 2006
    Assignee: Xilinx, Inc.
    Inventors: Michael J. Hart, Steven P. Young, Stephen M. Trimberger
  • Patent number: 7058177
    Abstract: It is sometimes desirable to encrypt a design for loading into a PLD so that an attacker may not learn and copy the design as it is being copied into the PLD. According to the invention, a method for generating a bitstream for storing an encrypted design begins by generating an unencrypted bitstream including bits representing the design and bits that control loading of the design. The bits representing the design are encrypted and are combined with the bits that control loading, which are not encrypted.
    Type: Grant
    Filed: November 28, 2000
    Date of Patent: June 6, 2006
    Assignee: Xilinx, Inc.
    Inventors: Stephen M. Trimberger, Raymond C. Pang, Walter N. Sze
  • Patent number: 7047465
    Abstract: Methods for utilizing PLDs with localized defects. Each PLD has a unique identifier. In one embodiment, a PLD provider tests a series of PLDs, selecting those having localized defects and recording the location of each detected defect for each defective PLD in a defect database. On receiving an identifier from a user, the PLD provider provides to the user the location information for the defects associated with the identified PLD. The data can be received and provided, for example, over the Internet. In one embodiment, the PLD provider implements the design based on the defect locations and provides the resulting design file to the user. In some embodiments, an incremental compilation is performed. The methods of the invention can also be applied to other device-specific information, such as information on the speed of critical sub-components of the PLD.
    Type: Grant
    Filed: February 28, 2002
    Date of Patent: May 16, 2006
    Assignee: Xilinx, Inc.
    Inventor: Stephen M. Trimberger
  • Patent number: 7047509
    Abstract: A PLD includes at least one portion of the programmable interconnect that can be time multiplexed. The time multiplexed interconnect allows signals to be routed on shared interconnect at different times to different destinations, thereby increasing the functionality of the PLD. Multiple sources can use the same interconnect at different times to send signals to their respective destinations. To ensure proper sharing of the interconnect, the sources can include selection devices (such as multiplexers), and the destinations can include capture devices (such as flip-flops), wherein the selection devices and the capture devices are controlled by the same time multiplexing signal. To optimize the time multiplexing interconnect, as much of the same interconnect is shared as possible.
    Type: Grant
    Filed: March 29, 2004
    Date of Patent: May 16, 2006
    Assignee: Xilinx, Inc.
    Inventor: Stephen M. Trimberger
  • Patent number: 6996713
    Abstract: Described are methods and circuits of programming a programmable logic device with encrypted configuration data using one or more secure decryption keys. Configurable resources within PLDS in accordance with one embodiment are divided into first and second collections of configurable interconnect resources separated by a collection of switches. One collection of resources has access to one or more decryption keys required to decrypt the encrypted configuration data. The switches protect the proprietary keys by providing a secure boundary around the portion granted key access during the decryption process. Closing the switches after configuration clears user memory to prevent users from accessing stored versions of the proprietary keys.
    Type: Grant
    Filed: March 29, 2002
    Date of Patent: February 7, 2006
    Assignee: Xilinx, Inc.
    Inventor: Stephen M. Trimberger
  • Patent number: 6980026
    Abstract: Structures and methods that can be used to reduce power consumption in programmable logic devices (PLDs). Varying delays on the input paths of a PLD lookup table (LUT) can cause the nodes within the LUT (including the LUT output signal) to change state several times each time the input signals change state. Therefore, a programmable logic block for a PLD is provided that registers the LUT input signals instead of, or in addition to, the LUT output signal. The delays on the input paths are equalized and “glitching” on the LUT nodes is greatly reduced or eliminated. Thus, power consumption is reduced. Methods are also provided of reducing power consumption in PLDs by replacing single-bit registers on LUT output signals with multi-bit registers on LUT input signals, or by including multi-bit input registers in addition to the single-bit output registers.
    Type: Grant
    Filed: December 16, 2003
    Date of Patent: December 27, 2005
    Assignee: Xilinx, Inc.
    Inventor: Stephen M. Trimberger
  • Patent number: 6981153
    Abstract: It is sometimes desirable to protect a design used in a PLD from being copied. If the design is stored in a different device from the PLD and read into the PLD through a bitstream, the design may be encrypted as it is read into the PLD and decrypted within the PLD before being loaded into configuration memory cells for configuring the PLD. According to the invention, in such a device, a method is provided to prevent the design from being read back from the PLD in its decrypted state if it had been encrypted when loaded into the PLD.
    Type: Grant
    Filed: November 28, 2000
    Date of Patent: December 27, 2005
    Assignee: Xilinx, Inc.
    Inventors: Raymond C. Pang, Walter N. Sze, John M. Thendean, Stephen M. Trimberger, Jennifer Wong
  • Patent number: 6965675
    Abstract: It is sometimes desirable to encrypt a design for loading into a PLD so that an attacker may not learn and copy the design as it is being written into the PLD. It is desirable that decryption keys be stored within the PLD, and that they be loaded conveniently before a board including the PLD is sold. The invention allows the PLD to be placed into a printed circuit board and the board to be tested using a JTAG port of the PLD, and then allows the decryption keys to be loaded into a key memory using the JTAG port. Loading of the keys can be performed without also loading of a design into the PLD. Loading may be performed without the use of a device programmer.
    Type: Grant
    Filed: November 28, 2000
    Date of Patent: November 15, 2005
    Assignee: Xilinx, Inc.
    Inventors: Stephen M. Trimberger, Raymond C. Pang, John M. Thendean
  • Patent number: 6963510
    Abstract: A programmable capacitor in an integrated circuit (IC) comprises a conductive line located parallel to an interconnect. When a bias voltage is applied to the conductive line, a parasitic capacitance is created between the interconnect and the conductive line. By properly sizing and locating the conductive line, a desired capacitance can be coupled to the interconnect. A bias control circuit can apply or remove the bias voltage from the conductive line, thereby enabling the capacitance to be coupled or decoupled, respectively, from the interconnect. Because of its simple construction, multiple capacitive structures can be formed around a single interconnect to provide capacitive adjustment capability. By changing the number of conductive lines to which the bias voltage is applied, the total capacitance provided by the multiple capacitive structures can be varied. A feedback loop can be incorporated to provide adjustment during IC operation.
    Type: Grant
    Filed: September 23, 2003
    Date of Patent: November 8, 2005
    Assignee: Xilinx, Inc.
    Inventor: Stephen M. Trimberger
  • Patent number: 6957340
    Abstract: It is sometimes desirable to protect a design used in a PLD from being copied. If the design is stored in a different device from the PLD and read into the PLD through a bitstream, an unencrypted bitstream could be observed and copied as it is being loaded. According to the invention, a bitstream for configuring a PLD with an encrypted design includes unencrypted words for controlling loading of the configuration bitstream and encrypted words that actually specify the design.
    Type: Grant
    Filed: November 28, 2000
    Date of Patent: October 18, 2005
    Assignee: Xilinx, Inc.
    Inventors: Raymond C. Pang, Stephen M. Trimberger, Jennifer Wong