IP Library Granted Patent US 7,590,963
Granted Patent B2
US 7,590,963 · App. 10/983,132 · Granted Sep 15, 2009

Integrating multiple electronic design applications

View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 7,590,963
App. No.
10/983,132
Granted
Sep 15, 2009
Kind
B2
Abstract

Multiple printed circuit board (PCB) application programs simultaneously execute on a computer. Each application stores data regarding a PCB design in a separate database. The databases are based on compatible data models such that each application is able to receive data from other applications and understand what is to be done with that data. When an edit to a PCB design is made by an application, data for the edit is stored in that application's database. The data for the edit is also automatically provided, via a message server program, to other PCB applications. Each PCB application then stores that edit data in its own database.

Claims (62)

1. A method for integrating execution of, and data sharing between, a plurality of printed circuit board (PCB) application programs simultaneously executing upon a computer, comprising:

(a) generating, by using the computer, data regarding a PCB design, said data being generated by a first application of the plurality in response to a user input directed to the first application;

(b) storing the generated data within a first database associated with the first application;

(c) notifying a message server program of the data generated in step (a), wherein the message server program is also simultaneously executing upon the computer, and wherein the notification is provided by the first application;

(d) receiving, in second and third applications of the plurality, notification from the message server program of the data generated in step (a);

(e) storing, in response to the notification received in step (d), at least a portion of the data generated in step (a) within a second database associated with the second application and within a third database associated with the third application;

(f) generating additional data regarding the PCB design, said additional data being generated with the second application in response to a user input directed to the second application and using at least a portion of the data stored in the second database in step (e);

(g) notifying the message server program of the data generated in step (f), wherein the notification is provided by the second application;

(h) receiving, in the first and third applications, notification from the message server program of the data generated in step (f);

(i) storing, in response to the notification received in step (h), at least a portion of the data generated in step (f) within the first database and within the third database; and

(j) generating further data regarding the PCB design, said further data being generated with the third application in response to a user input directed to the third application and using at least a portion of the data stored in the third database in step (i), wherein

steps (c) through (e) and steps (g) through (i) occur without manual user invocation of a separate command to transfer data between databases,

the data stored in the second database in step (e) includes data not used by the second application,

the data stored in the first database in step (i) includes data not used by the first application, and

the data stored in the third database in step (i) includes data not used by the third application.

2. The method of claim 1 , further comprising:

(k) notifying the message server program of the data generated in step (j), wherein the notification is provided by the third application;

(l) receiving, in the first and second applications, notification from the message server program of the data generated in step (j);

(m) storing, in response to the notification received in step (l), at least a portion of the data generated in step (j) within the first database and within the second database;

(n) generating subsequent data regarding the PCB design with the first application using at least a portion of the data stored in step (m) within the first database; and

(o) generating more data regarding the PCB design with the second application using at least a portion of the data stored in step (m) within the second database.

3. The method of claim 2 , wherein

the data stored in the first database in step (m) includes data not used by the first application, and

the data stored in the second database in step (m) includes data not used by the second application.

4. The method of claim 1 , wherein at least one of the first and second applications comprises a software program for placing components on a PCB design and for routing connections between placed components.

5. The method of claim 1 , further comprising:

(k) initiating execution on the computer of a fourth application program which was not executing during performance of steps (a) through (j);

(l) storing at least a portion of the data stored in steps (b), (e) and (i) in a fourth database associated with the fourth application;

(m) receiving a fourth input from the user and directed to the fourth application; and

(n) generating further data regarding the PCB design, said further data being generated with the fourth application in response to the fourth input and using at least a portion of the data stored in step (l), and wherein:

step (l) occurs without manual user invocation of a separate command to import data from the first, second or third database to the fourth database.

6. A machine-readable medium having stored thereon data representing sequences of instructions which, when executed by a processor, cause the processor to perform steps comprising:

(a) generating data regarding a PCB design, said data being generated by a first of a plurality of printed circuit board (PCB) application programs simultaneously executing upon a computer, said data being generated in response to a user input directed to the first application;

(b) storing the generated data within a first database associated with the first application;

(c) notifying a message server program of the data generated in step (a), wherein the message server program is also simultaneously executing upon the computer, and wherein the notification is provided by the first application;

(d) receiving, in second and third applications of the plurality, notification from the message server program of the data generated in step (a);

(e) storing, in response to the notification received in step (d), at least a portion of the data generated in step (a) within a second database associated with the second application and within a third database associated with the third application;

(f) generating additional data regarding the PCB design, said additional data being generated with the second application in response to a user input directed to the second application and using at least a portion of the data stored in the second database in step (e);

(g) notifying the message server program of the data generated in step (f), wherein the notification is provided by the second application;

(h) receiving, in the first and third applications, notification from the message server program of the data generated in step (f);

(i) storing, in response to the notification received in step (h), at least a portion of the data generated in step (f) within the first database and within the third database; and

(j) generating further data regarding the PCB design, said further data being generated with the third application in response to a user input directed to the third application and using at least a portion of the data stored in the third database in step (i), wherein

steps (c) through (e) and steps (g) through (i) occur without manual user invocation of a separate command to transfer data between databases,

the data stored in the second database in step (e) includes data not used by the second application,

the data stored in the first database in step (i) includes data not used by the first application, and

the data stored in the third database in step (i) includes data not used by the third application.

7. The machine-readable medium of claim 6 , comprising further instructions for performing steps comprising:

(k) notifying the message server program of the data generated in step (j), wherein the notification is provided by the third application;

(l) receiving, in the first and second applications, notification from the message server program of the data generated in step (j);

(m) storing, in response to the notification received in step (l), at least a portion of the data generated in step (j) within the first database and within the second database;

(n) generating subsequent data regarding the PCB design with the first application using at least a portion of the data stored in step (m) within the first database; and

(o) generating more data regarding the PCB design with the second application using at least a portion of the data stored in step (m) within the second database.

8. The machine-readable medium of claim 7 , wherein

the data stored in the first database in step (m) includes data not used by the first application, and

the data stored in the second database in step (m) includes data not used by the second application.

9. The machine-readable medium of claim 6 , wherein at least one of the first and second applications comprises a software program for placing components on a PCB design and for routing connections between placed components.

10. The machine-readable medium of claim 6 , comprising further instructions for performing steps comprising:

(k) initiating execution on the computer of a fourth application program which was not executing during performance of steps (a) through (j);

(l) storing at least a portion of the data stored in steps (b), (e) and (i) in a fourth database associated with the fourth application;

(m) receiving a fourth input from the user and directed to the fourth application; and

(n) generating further data regarding the PCB design, said further data being generated with the fourth application in response to the fourth input and using at least a portion of the data stored in step (l), and wherein:

step (l) occurs without manual user invocation of a separate command to import data from the first, second or third database to the fourth database.

Assignments (2)
MERGER AND CHANGE OF NAME Recorded Jun 29, 2021
From: MENTOR GRAPHICS CORPORATION; SIEMENS INDUSTRY SOFTWARE INC.
To: SIEMENS INDUSTRY SOFTWARE INC.
Reel/Frame 056702/0712 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 8, 2004
From: PETUNIN, VLADIMIR V.
To: MENTOR GRAPHICS
Reel/Frame 015992/0426 →