Patent US5870588A successfully refreshed from Google Patents.
← Back to Patent Explorer
US5870588A Expired / Lapsed US ⏱️ 0.0 years remaining

Design environment and a design method for hardware/software co-design

Assignee: Imec
•
Filing: 1996-10-23
•
Granted: 1999-02-09
•
Expires: 2016-10-23
📄 Original PDF 🌐 Google Patents 🔄 Sync Now

Abstract

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.

Inventors

  • 👤 Karl Van Rompaey
  • 👤 Diederik Verkest
  • 👤 Jan Vanhoof
  • 👤 Bill Lin
  • 👤 Ivo Bolsens
  • 👤 Hugo De Man

Bibliographic Details

Application Number —
Jurisdiction US
Data Source google_patents
Last Synchronized 2026-11-07 05:16
CPC Classifications
G; G06; G06F; G06F30/00; G06F30/30; G06F30/32; G06F30/33; G06F30/3308

Claims Analysis

Total Claims: 49
Claim 1
Independent Claim 152 words
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.
Claim 2
Dependent Claim 152 words
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.
Claim 3
Dependent Claim 17 words
The database as recited in claim 1 wherein said implementation is a simulation of said digital system.
Claim 4
Dependent Claim 26 words
The database as recited in claim 2 wherein said simulation is a multi-abstraction level simulation, said multi-abstraction level simulation comprising substantially simultaneous low-level and high-level simulation.
Claim 5
Dependent Claim 21 words
The database as recited in claim 2 wherein said simulation is a multi-platform simulation being executed on a plurality of computers.
Claim 6
Dependent Claim 22 words
The database as recited in claim 2 wherein said simulation is a hybrid simulation comprising substantially simultaneous hardware implementations and computer simulations.
Claim 7
Dependent Claim 33 words
The database as recited in claim 1 wherein said implementation is a heterogeneous implementation comprising hardware subsystems and software subsystems, said software subsystems being executed on one or more of said hardware subsystems.
Claim 8
Dependent Claim 27 words
The database as recited in claim 6 wherein said hardware subsystems comprise any one or more of processor cores, off-the-shelf components, custom components, ASICs, processors, and boards.
Claim 9
Dependent Claim 18 words
The database as recited in claim 7 wherein said software subsystems comprise machine instructions for said hardware subsystems.
Claim 10
Dependent Claim 22 words
The database as recited in claim 1 wherein said specification is a heterogeneous specification comprising a plurality of behavioral and structural languages.
Claim 11
Dependent Claim 26 words
The database as recited in claim 1 wherein said aspects comprise any one or more of functional, communication, concurrency and structural aspects of said digital system.
Claim 12
Dependent Claim 26 words
The database as recited in claim 10 wherein said objects representing said functional aspects comprise any one or more of host language encapsulations, threads, and context.
Claim 13
Dependent Claim 25 words
The database as recited in claim 10 wherein said objects representing said communication aspects comprise any one or more of ports, protocols, channels, and context.
Claim 14
Dependent Claim 20 words
The database as recited in claim 10 wherein said objects representing said concurrency aspects comprise host language encapsulations and threads.
Claim 15
Dependent Claim 27 words
The database as recited in claim 10 wherein said objects representing said structural aspects comprise any one or more of host language encapsulations, ports, channels, and instances.
Claim 16
Dependent Claim 36 words
The database as recited in claim 10 wherein said functional aspects and said communication aspects of said specification are split into first primitive objects representing said functional aspects and second primitive objects representing said communication aspects.
Claim 17
Dependent Claim 35 words
The database as recited in claim 15 wherein said first primitive objects are host language encapsulations and wherein said second primitive objects comprise said ports, said protocols, and said channels, one port having one protocol.
Claim 18
Dependent Claim 28 words
The database as recited in claim 16 wherein said ports are connected by channels, the communication between said ports over said channels being conducted according to remote-procedure-call semantics.
Claim 19
Dependent Claim 31 words
The database as recited in claim 15 wherein said second primitive objects are refined into second hierarchical objects for adding implementation detail to the communication behavior of said second primitive objects.
Claim 20
Dependent Claim 19 words
The database as recited in claim 15 wherein said concurrency aspects are inter-process concurrency aspects and intra-process concurrency aspects.
Claim 21
Dependent Claim 29 words
The database as recited in claim 15 wherein said communication aspects are intra-process communication aspects, inter-process communication aspects with remote-procedure-call semantics, and inter-process communication aspects with a hierarchical protocol.
Claim 22
Dependent Claim 24 words
The database as recited in claim 20 wherein said intra-process communication occurs between threads of a single process by shared variables in the context.
Claim 23
Dependent Claim 34 words
The database as recited in claim 20 wherein said inter-process communication with remote-procedure-call semantics occurs between a slave thread of a first process and a thread of a second process according to remote-procedure-call semantics.
Claim 24
Dependent Claim 32 words
The database as recited in claim 22 further comprising process merging functionality whereby the inter-process communication with remote-procedure-call semantics between a plurality of processes is removed by merging said plurality of processes.
Claim 25
Dependent Claim 38 words
The database as recited in claim 20 wherein said inter-process communication with a hierarchical protocol occurs between a thread of a first process and a thread of a second process according to the semantics of said hierarchical protocol.
Claim 26
Dependent Claim 13 words
The database as recited in claim 1, wherein said refinements are individual refinements.
Claim 27
Dependent Claim 17 words
The method as recited in claim 1, wherein each primitive port has at least one primitive protocol.
Claim 28
Dependent Claim 287 words
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.
Claim 29
Dependent Claim 287 words
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.
Claim 30
Dependent Claim 48 words
A design environment as recited in claim 27 further comprising means for creating processor models of said hardware components as objects in said database, said models comprising software models representing the software views on said hardware components and hardware models representing the hardware views on said hardware components.
Claim 31
Dependent Claim 51 words
The design environment as recited in claim 28 further comprising means for creating I/O scenario models of said ports as objects in said database, said I/O scenario models representing the implementation of said ports on said hardware components, said implementation comprising software subsystems, hardware subsystems, and processor models with connections therebetween.
Claim 32
Dependent Claim 57 words
The design environment as recited in claim 29 wherein the implementation of the communication between a first software subsystem and a first hardware subsystem results in said first software subsystem with a first port being replaced by a second hardware subsystem with a second port, said first port and said second port representing an essentially identical communication.
Claim 33
Dependent Claim 47 words
The design environment as recited in claim 30 further comprising: means for selecting I/O scenario models for the ports of said first software subsystem; means for combining the software subsystems of said selected I/O scenarios; and means for combining the hardware subsystems of said selected I/O scenarios.
Claim 34
Dependent Claim 87 words
The design environment as recited in claim 31 wherein a first I/O scenario model represents the connection of said first port to said second port, said connection comprising a connection of said first port to said software subsystems of said I/O scenario model, connections of said software subsystems of said I/O scenario model to said software model, connections of said hardware model to said hardware subsystems of said I/O scenario model, and a connection of said hardware subsystems of said I/O scenario model to said second port.
Claim 35
Dependent Claim 31 words
The design environment as recited in claim 32 wherein I/O scenario models comprise any one or more of memory mapped I/O scenarios, instruction programmed I/O scenarios, and interrupt based I/O scenarios.
Claim 36
Independent Claim 141 words
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.
Claim 37
Independent Claim 141 words
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.
Claim 38
Dependent Claim 15 words
The method as recited in claim 34 further comprising the step of simulating said system.
Claim 39
Dependent Claim 31 words
The method as recited in claim 34 wherein said implementation comprises hardware and software subsystems of said system, said software subsystems being executed on one or more of said hardware subsystems.
Claim 40
Dependent Claim 27 words
The method as recited in claim 36 wherein said hardware subsystems comprise any one or more of processor cores, off-the-shelf components, custom components, ASICs, processors, and boards.
Claim 41
Dependent Claim 23 words
The method as recited in claim 37 further comprising the step of generating a net list comprising the layout information of said implementation.
Claim 42
Dependent Claim 52 words
The method as recited in claim 34 further comprising the steps of: allocating one or more hardware components, said components comprising programmable processors and non-programmable processors; and assigning said processes to said hardware components, the processes being assigned to a programmable processor being a software subsystem, the other processes being hardware subsystems.
Claim 43
Dependent Claim 56 words
The method as recited in claim 39 further comprising the step of selecting I/O scenario models for the ports of said software subsystem thereby connecting said ports to the interface of said programmable processor and connecting the interface of said programmable processor to second ports, said second ports representing an essentially identical communication as said ports.
Claim 44
Dependent Claim 58 words
The method as recited in claim 40 further comprising the step of refining the channel in between a first and a second port of respectively a first and a second hardware component, said first and said second port having an incompatible protocol, thereby creating a hierarchical channel, said hierarchical channel converting the first protocol into the second protocol.
Claim 45
Dependent Claim 26 words
The method as recited in claim 40 further comprising the step of refining the channels in between incompatible ports of hardware components, thereby creating hierarchical channels.
Claim 46
Dependent Claim 27 words
The method as recited in claim 42 wherein said hardware subsystems comprise any one or more of processor cores, off-the-shelf components, custom components, ASICs, processors, and boards.
Claim 47
Dependent Claim 23 words
The method as recited in claim 43 further comprising the step of generating a net list comprising the layout information of said implementation.
Claim 48
Dependent Claim 13 words
The method as recited in claim 34, wherein said refinements are individual refinements.
Claim 49
Dependent Claim 15 words
The method as recited in claim 34, wherein each port has at least one protocol.

References Cited (Backward Citations)

US4922432A Cited
US5197016A Cited
US5247651A Cited
US5175856A Cited
US5692193A Cited
US5493508A Cited

USPTO Annuity & Maintenance Windows

Annuity Stage Window Opens Payment Deadline Surcharge Period Until Estimated Fee Status
3.5 Years (Year 4) 2002-02-08 2002-08-10 2003-02-09 $2000.00 Window Closed / Lapsed
7.5 Years (Year 8) 2006-02-08 2006-08-10 2007-02-09 $3760.00 Window Closed / Lapsed
11.5 Years (Year 12) 2010-02-08 2010-08-10 2011-02-09 $7700.00 Window Closed / Lapsed

Assigned Categories & Tags

No categories assigned to this patent yet.

Assign Category Tag