Nova Patents
WO2004114166A2

Integrated circuit development system

Abstract

Embodiments of the invention include a system for an integrated circuit development. Elements of the development system include hardware and software objects. These objects can be instanced, ordered, parameterized, and connected in a software environment to implement different functions. Once in software, the description defines the topology and the properties of a set of objects and hence the overall function. These objects are hierarchically composed from a set of primitive objects. By using a piece of hardware that can model any primitive object set as pre established encapsulated hardware objects, the topology and properties define a piece of hardware that can perform the desired, implemented, functions. Using embodiments of the invention, circuit designers can design hardware systems with little or no knowledge of hardware or hardware design, requiring only a high-level software description.

WO2004114166A2, drawing sheet 1
Sheet 1 of 5

Term

No projected expiry on record.

  1. Priority
  2. Filed
  3. Published
  4. Today

80 claims: 13 independent, 67 dependent

  1. 1
    What is claimed is:1. A hardware register on a chip, comprising: a first plurality of storage elements for storing a set of data, a signal signifying a validity of the stored set of data, and a signal signifying membership in a group of the stored set of data relative to a previous set of data and a subsequent set of data;and an update input signal indicating that values in the storage elements can be replaced by the subsequent set of data.
  2. 9
    A method of implementing a protocol register, comprising:parallel loading data into a first and a second set of storage elements, the data including an indicator of the validity of the data, and including an mdicator of a position of the data being a member of a group;receiving a first accept signal indicating an ability of a receiving object that is connected to an output of the protocol register to accept data;receiving a second accept signal indicating an ability of the receiving object to accept data, the second accept signal received after the first accept signal;comparing the first accept signal and the second accept signal;retaining the data in both sets of storage elements when the. first accept signal and the second accept signal are both de-asserted;parallel loading new data into the first and second set of storage elements when the first accept signal and the second accept signal are both asserted;loading data from the first set of storage elements into the second set of storage elements when the first accept signal is de-asserted and the second accept signal is asserted;and retaining the set of data in the second set of storage elements and loading a new set of data into the first set of storage elements when the first accept signal is asserted and the second accept signal is de-asserted.
  3. 13
    A data interface protocol, comprising:a plurality of data signals including a group indicator to indicate the membership of the data signals in a group and a relative position of the data signals in the group;a valid signal to indicate the, validity of the data signals;and an accept signal to indicate that the plurality of data signals and the valid signal can be replaced with a new plurality of data signals.
  4. 18
    A data pipeline element, comprising:an input interface including registers to store a plurality of data signals including a group indicator to indicate the membership of the data signals in a group and a relative position of the data signals in the group, a valid signal to indicate the validity of the data signals, and an accept signal to indicate that the plurality of data signals and the valid signal can be replaced with a new plurality of data signals.
  5. 21
    A j oin element, comprising:a first input interface including first registers to store a plurality of first data signals including a group indicator to indicate the membership of the first data signals in a first group and a relative position of the first data signals in the first group, a valid signal to indicate the validity of the first data signals, and an accept signal to indicate that the plurality of first data signals and the valid signal can be replaced with a new plurality of first data signals;a second mput interface including second registers to store a plurality of second data signals including a group indicator to indicate the membership of the second data signals in a second group and a relative position of the second data signals in the second group, a valid signal to indicate the validity of the second data signals, and an accept signal to indicate that the plurality of second data signals and the valid signal can be replaced with a new plurality of second data signals;an output interface;and join circuitry coupled to the input interfaces and to the output interface and structured to operate only on complete groups of data received from either the first input interface, the second input interface, or both the first and second input interfaces.
  6. 32
    A fork element, comprising an input interface including registers to store a plurality of data signals including a group indicator to mdicate the membership of the data signals hi a group and a relative position of the data signals in the group, a valid signal to indicate the validity of the data signals, and an accept signal to indicate that the plurality of data signals and the valid signal can be replaced with a new plurality of data signals;a set of forking circuitry coupled to the mput interface and stractured to operate only on complete groups of data received from the input interface;a first output interface;and . a second output interface.
  7. 36
    A data interface for accepting streams of data one word at a time, the interface comprising:an input for simultaneously accepting one or more pieces of data as a data word from a preceding stage that is coupled to the data interface, the one or more pieces of data including a message packet identifier;an input for accepting an indication of a validity of the accepted data word;an input for accepting an indication of an ability for a subsequent stage that is coupled to the data interface to accept the data word transferred from the data interface;a loading circuit structured to cause the data interface to load a next data word from the preceding stage if either the indication of the ability for the subsequent stage to accept the data word is positive, or if the accepted data word is not valid;and a packet detect circuit stractured to detect the start of a new message packet from the message packet identifier.
  8. 40
    A hardware object on a substrate, comprising:an input interface coupled to a sending object and structured to generate an input accept signal independent of any information from the sending object, the input interface structured to accept one or more message packets from the sending object;an object core coupled to the input interface and stractured to change states only after receiving a data set in any message packet;and an output interface coupled between the core and a receiving object, the output interface structured to generate a data valid signal independent of any information from the receiving object and structured to send one or more message packets to the receiving object.
  9. 51
    A system, comprising:a first hardware object formed on a substrate;a second hardware object formed on the substrate;and a protocol register coupled between the first and second hardware objects, the protocol register including a first data register for storing message data, a second data register for storing a validity signal, and a third data register for storing a packet membership signal.
  10. 57
    A software object having methods that can be invoked by receiving asynchronous messages, the software object implemented by a configured hardware object, the hardware object comprising:a protocol register that realizes a software method interface an object core coupled to the protocol register and structured to change states only after receiving a data set in any message packet, the object core configured to execute all the methods of the software object.
  11. 66
    A method of performing a function on a system that includes a plurality of hardware objects, the method comprising sending asynchronous messages to one or more of the plurality of hardware objects to invoke software object methods.
  12. 67
    An integrated circuit development system, comprising:a library of descriptions of a plurality of hardware objects each structured to operate on message packets and each object having relatively similar electrical loading characteristics;and a modeler that references the library and is structured to accept a command to create an instance of one of the descriptions, and to accept a command to link two or more of the created instances.
  13. 75
    A method for programming a collection of physically instanced hardware objects, comprising:accepting a collection of software objects which themselves are collections of abstractions of the instanced hardware objects, each software object including: a list of hardware objects used in the software object, a list of rules for connecting the listed hardware objects, and an instraction file to be loaded into the listed hardware objects;accepting a description of the collection of physically instanced hardware objects;allocating an identifier to each of the physically instanced hardware objects from the list of hardware objects;and creating an initialization file for the collection of physically instanced hardware objects using the identifiers to replace symbolic information in the instraction files.