Design environment and a design method for hardware/software co-design
First Claim
1. A database compiled on a computer environment, adapted for access by executable programs on said environment for generating the implementation of an heterogeneous essentially digital system, comprising:
- a plurality of objects representing aspects of said digital system wherein said objects comprise primitive objects representing the specification of said digital system and hierarchical objects being created by said executable programs while generating the implementation of said digital system, said primitive objects comprising ports, protocols, and channels, at least one primitive port having at least one primitive protocol, said hierarchical objects being successive refinements in a chain of refinements of said primitive objects, having more detail and preserving any one or all of said aspects to thereby generate said implementation of said digital system;
relations in between said primitive objects and in between said hierarchical objects and between said primitive objects and said hierarchical objects; and
functions for manipulating said objects and said relations.
2 Assignments
0 Petitions
Accused Products
Abstract
A hardware and software co-design environment and design methodology based on a data-model that allows one to specify, simulate, and synthesize heterogeneous hardware and software architectures from a heterogeneous specification. The environment and methodology of the invention allow for the interactive synthesis of hardware and software interfaces. The environment defines primitive objects to represent a specification of an essentially digital system. The primitive objects are defined by describing the specification of the system in one or more processes, each process representing a functional aspect of the system. Further, each of the processes have ports which are connected to ports of other processes with a channel. The ports structure communication between the processes.
-
Citations
46 Claims
-
1. A database compiled on a computer environment, adapted for access by executable programs on said environment for generating the implementation of an heterogeneous essentially digital system, comprising:
-
a plurality of objects representing aspects of said digital system wherein said objects comprise primitive objects representing the specification of said digital system and hierarchical objects being created by said executable programs while generating the implementation of said digital system, said primitive objects comprising ports, protocols, and channels, at least one primitive port having at least one primitive protocol, said hierarchical objects being successive refinements in a chain of refinements of said primitive objects, having more detail and preserving any one or all of said aspects to thereby generate said implementation of said digital system; relations in between said primitive objects and in between said hierarchical objects and between said primitive objects and said hierarchical objects; and functions for manipulating said objects and said relations. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26)
-
-
27. A design environment, compiled on a computer environment, for implementing an heterogeneous essentially digital system, comprising:
-
a database compiled on said computer, adapted for access by executable programs on said computer for generating the implementation of said heterogeneous essentially digital system, comprising a plurality of objects representing aspects of said digital system wherein said objects comprise primitive objects representing the specification of said digital system and hierarchical objects being created by said executable programs while generating the implementation of said digital system, said hierarchical objects being refinements of said primitive objects, having more detail and preserving any one or all of said aspects to thereby generate said implementation of said digital system; and
further comprising relations in between said primitive objects and in between said hierarchical objects and between said primitive objects and said hierarchical objects; and
further comprising functions for manipulating said objects and said relations;means for specifying said heterogeneous digital system comprising a plurality of behavioral and structural languages; means for simulating said heterogeneous digital system comprising a plurality of simulators for said behavioral and structural languages; means for implementing said heterogeneous digital system comprising a plurality of compilers for said behavioral and structural languages; means for allocating hardware components for an implementation of said heterogeneous digital system; means for assigning hardware subsystems and software subsystems of said heterogeneous digital system to said hardware components; means for implementing the communication between said software subsystems and said hardware subsystems, one of the aspects of said communication being represented by ports; and means for encapsulating said simulators, said compilers, said hardware components, said hardware subsystems and said software subsystems, thereby creating a consistent communication between said encapsulated simulators, compilers, hardware components, hardware subsystems and software subsystems. - View Dependent Claims (28, 29, 30, 31, 32, 33)
-
-
34. A method of making an implementation of an heterogeneous essentially digital system, comprising the steps of:
-
defining a first set of primitive objects representing the specification of said digital system, comprising the steps of; describing the specification of said system in one or more processes, each process representing a functional aspect of said system, said processes being primitive objects; defining ports and connecting said ports with channels, said ports structuring communication between said processes, said ports and said channels being primitive objects, one process having one or more ports, at least one port having at least one protocol; defining communication semantics of said ports by a protocol, said protocol being a primitive object; and thereafter creating hierarchical objects by successive refinements in a chain of refinements of said primitive objects and having more detail, while preserving aspects of said communication semantics. - View Dependent Claims (35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46)
-
Specification