Claims
- 1. A method for simultaneous editing of at least a portion of a printed circuit board (PCB) design by multiple users, comprising:
transmitting the PCB design portion to first and second clients for graphical display at each of the clients; transmitting, for display at each of the clients, a protection boundary associated with a PCB design object being edited at the first client; and rejecting a request from the second client to edit an object within a region bounded by the protection boundary.
- 2. The method of claim 1, wherein the protection boundary comprises the object being edited at the first client.
- 3. A method for editing a printed circuit board (PCB) master design during an editing session throughout which each of first and second users may edit a PCB master design portion and view edits made to the same PCB master design portion by the other of the first and second users during the editing session, comprising:
transmitting the PCB master design portion to the first and second users at respective first and second clients for graphical display on each of said clients, the graphical displays including representations of PCB artwork corresponding to the PCB master design portion; receiving, during the editing session, a first edit request from the first client and a second edit request from the second client; applying the first and second edit requests to the PCB master design; and transmitting synchronization data to the first and second clients, the synchronization data permitting update of the graphical displays on the first and second clients during the editing session to reflect the first and second edits.
- 4. The method of claim 3, further comprising:
receiving a subsequent edit request from the first client to edit an object in the PCB master design portion; and locking the object so as to prevent editing of the object based on a request received from the second client.
- 5. The method of claim 3, wherein:
at least one of the edit requests is automatically generated in response to selection of an object and a command, the object is at least one of a route, a component, a trace, a via, text, and a drawing object, and the command is at least one of move left, move right, delete and add.
- 6. The method of claim 3, further comprising:
placing the first and second edit requests in a queue; and applying the first and second edit requests on a first-in-first-out (FIFO) basis.
- 7. The method of claim 3, wherein the PCB master design portion comprises an entire PCB design.
- 8. The method of claim 3, further comprising:
determining if the first edit request conflicts with the second edit request.
- 9. The method of claim 8, wherein said determining if the first edit request conflicts with the second edit request comprises at least one of:
determining whether acceptance of both the first and second edit requests will violate a spacing rule, determining whether acceptance of both the first and second edit requests will violate a geometry rule, and determining whether acceptance of both the first and second edit requests will violate a connectivity rule.
- 10. The method of claim 3, wherein:
one of the edit requests is automatically generated in response to the first or second user selecting, moving, and then releasing a first object, and another of the edit requests is automatically generated in response to the first or second user selecting a second object and then moving the second object to a graphically represented deletion area.
- 11. A method for editing a printed circuit board (PCB) master design during an editing session throughout which each of first and second users may edit a PCB master design portion and view edits made to the same PCB master design portion by the other of the first and second users during the editing session, comprising:
transmitting the PCB master design portion to the first and second users at respective first and second clients for graphical display on each of said clients, the graphical displays including representations of PCB artwork corresponding to the PCB master design portion; receiving, during the editing session, a first edit request from the first client and a second edit request from the second client; applying the first edit request to the PCB master design; transmitting synchronization data to the first and second clients, the synchronization data permitting update of the graphical displays on the first and second clients during the editing session to reflect the application of the first edit request; determining if the first edit request conflicts with the second edit request; and reporting a conflict between the first and second edit requests to the second client.
- 12. A server for receiving and processing requests to edit a printed circuit board (PCB) master design during an editing session throughout which each of first and second users may edit a PCB master design portion and view edits made to the same PCB master design portion by the other of the first and second users during the editing session, comprising:
a database for maintaining the master design; connections to first and second clients; and a processor configured to:
transmit the PCB design portion to first and second clients for graphical display at each of the clients, transmit, for display at each of the clients, a protection boundary associated with a PCB design object being edited at the first client, and reject a request from the second client to edit an object within a region bounded by the protection boundary.
- 13. The server of claim 12, wherein the protection boundary comprises the object being edited at the first client.
- 14. A server for receiving and processing requests to edit a printed circuit board (PCB) master design during an editing session throughout which each of first and second users may edit a PCB master design portion and view edits made to the same PCB master design portion by the other of the first and second users during the editing session, comprising:
a database for maintaining the master design; connections to first and second clients; and a processor configured to:
transmit the PCB master design portion to the first and second users at the respective first and second clients for graphical display on each of said clients, the graphical displays including representations of PCB artwork corresponding to the PCB master design portion, receive, during the editing session, a first edit request from the first client and a second edit request from the second client, apply the first and second edit requests to the PCB master design, and transmit synchronization data to the first and second clients, the synchronization data permitting update of the graphical displays on the first and second clients during the editing session to reflect the first and second edits.
- 15. The server of claim 14, wherein the processor is further configured to:
receive a subsequent edit request from the first client to edit an object in the PCB master design portion, and lock the object so as to prevent editing of the object based on a request received from the second client.
- 16. The server of claim 14, wherein:
at least one of the edit requests is automatically generated in response to selection of an object and a command, the object is at least one of a route, a component, a trace, a via, text, and a drawing object, and the command is at least one of move left, move right, delete and add.
- 17. The server of claim 14, wherein the processor is further configured to:
place the first and second edit requests in a queue; and apply the first and second edit requests on a first-in-first-out (FIFO) basis.
- 18. The server of claim 14, wherein the PCB master design portion comprises an entire PCB design.
- 19. The server of claim 14, wherein the processor is further configured to:
determine if the first edit request conflicts with the second edit request.
- 20. The server of claim 19, wherein the processor is configured to determine if the first edit request conflicts with the second edit request by:
determining whether acceptance of both the first and second edit requests will violate a spacing rule, determining whether acceptance of both the first and second edit requests will violate a geometry rule, and determining whether acceptance of both the first and second edit requests will violate a connectivity rule.
- 21. The server of claim 14, wherein:
one of the edit requests is automatically generated in response to the first or second user selecting, moving, and then releasing a first object, and another of the edit requests is automatically generated in response to the first or second user selecting a second object and then moving the second object to a graphically represented deletion area.
- 22. A server for receiving and processing requests to edit a printed circuit board (PCB) master design during an editing session throughout which each of first and second users may edit a PCB master design portion and view edits made to the same PCB master design portion by the other of the first and second users during the editing session, comprising:
a database for maintaining the master design; connections to first and second clients; and a processor configured to:
transmit the PCB master design portion to the first and second users at respective first and second clients for graphical display on each of said clients, the graphical displays including representations of PCB artwork corresponding to the PCB master design portion, receive, during the editing session, a first edit request from the first client and a second edit request from the second client, apply the first edit request to the PCB master design, transmit synchronization data to the first and second clients, the synchronization data permitting update of the graphical displays on the first and second clients during the editing session to reflect the application of the first edit request, determine if the first edit request conflicts with the second edit request, and report a conflict between the first and second edit requests to the second client.
- 23. 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:
transmitting a printed circuit board (PCB) design portion to first and second clients for graphical display at each of the clients; transmitting, for display at each of the clients, a protection boundary associated with a PCB design object being edited at the first client; and rejecting a request from the second client to edit an object within a region bounded by the protection boundary.
- 24. The machine-readable medium of claim 23, wherein the protection boundary comprises the object being edited at the first client.
- 25. 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:
transmitting a PCB master design portion during an editing session throughout which each of first and second users may edit a PCB master design portion and view edits made to the same PCB master design portion by the other of the first and second users during the editing session, wherein:
the PCB master design portion is transmitted to the first and second users at respective first and second clients for graphical display on each of said clients, and the graphical displays include representations of PCB artwork corresponding to the PCB master design portion; receiving, during the editing session, a first edit request from the first client and a second edit request from the second client; applying the first and second edit requests to the PCB master design; and transmitting synchronization data to the first and second clients, the synchronization data permitting update of the graphical displays on the first and second clients during the editing session to reflect the first and second edits.
- 26. The machine readable medium of claim 25, comprising further instructions for performing steps comprising:
receiving a subsequent edit request from the first client to edit an object in the PCB master design portion; and locking the object so as to prevent editing of the object based on a request received from the second client.
- 27. The machine readable medium of claim 25, wherein:
at least one of the edit requests is automatically generated in response to selection of an object and a command, the object is at least one of a route, a component, a trace, a via, text, and a drawing object, and the command is at least one of move left, move right, delete and add.
- 28. The machine readable medium of claim 25, comprising further instructions for performing steps comprising:
placing the first and second edit requests in a queue; and accepting the first and second edit requests on a first-in-first-out (FIFO) basis.
- 29. The machine readable medium of claim 25, wherein the PCB master design portion comprises an entire PCB design.
- 30. The machine readable medium of claim 25, comprising further instructions for performing steps comprising:
determining if the first edit request conflicts with the second edit request.
- 31. The machine readable medium of claim 30, wherein said determining if the first edit request conflicts with the second edit request comprises at least one of:
determining whether acceptance of both the first and second edit requests will violate a spacing rule, determining whether acceptance of both the first and second edit requests will violate a geometry rule, and determining whether acceptance of both the first and second edit requests will violate a connectivity rule.
- 32. The machine readable medium of claim 25, wherein:
one of the edit requests is automatically generated in response to the first or second user selecting, moving, and then releasing a first object, and another of the edit requests is automatically generated in response to the first or second user selecting a second object and then moving the second object to a graphically represented deletion area.
- 33. 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:
transmitting a PCB master design portion during an editing session throughout which each of first and second users may edit a PCB master design portion and view edits made to the same PCB master design portion by the other of the first and second users during the editing session, wherein:
the PCB master design portion is transmitted to the first and second users at respective first and second clients for graphical display on each of said clients, and the graphical displays include representations of PCB artwork corresponding to the PCB master design portion; receiving, during the editing session, a first edit request from the first client and a second edit request from the second client; applying the first edit request to the PCB master design; transmitting synchronization data to the first and second clients, the synchronization data permitting update of the graphical displays on the first and second clients during the editing session to reflect the application of the first edit request; determining if the first edit request conflicts with the second edit request; and reporting a conflict between the first and second edit requests to the second client.
- 34. A method for editing a printed circuit board (PCB) master design, comprising:
displaying on first and second clients a graphical representation of PCB artwork corresponding to a PCB master design portion; editing the PCB master design portion from the first client during an editing session throughout which each of first and second users at the respective first and second clients may edit the PCB master design portion and view edits made to the PCB master design portion by the other of the first and second users during the editing session; editing the PCB master design portion from the second client during the editing session; updating the display of the first client, during the editing session, to reflect one or more edits made from the second client during the editing session; and updating the display of the second client, during the editing session, to reflect one or more edits made from the first client during the editing session.
- 35. The method of claim 34, further comprising:
locking an object within the PCB master design portion upon selection of said object at the first client; and preventing, based on said selection, editing of the object from the second client.
- 36. The method of claim 34, wherein:
at least one of the edits is automatically generated in response to selection of an object and a command, the object is at least one of a route, a component, a trace, a via, text, and a drawing object, and the command is at least one of move left, move right, delete and add.
- 37. The method of claim 34, further comprising:
receiving at one of the first and second clients a report of a conflict between third and fourth edits respectively attempted from the first and second clients.
- 38. The method of claim 34, wherein the PCB master design portion comprises the entire PCB master design.
CROSS-REFERENCE TO RELATED APPLICATIONS
[0001] This application is a continuation of U.S. patent application Ser. No. 10/269,614, filed Oct. 10, 2002 and titled “Parallel Electronic Design Automation: Shared Simultaneous Editing,” now U.S. Pat. No. ______(which application is entitled to the benefit of U.S. Provisional Application Ser. No. 60/341,037, filed Dec. 10, 2001) and incorporated by reference herein.
Provisional Applications (1)
|
Number |
Date |
Country |
|
60341037 |
Dec 2001 |
US |
Continuations (1)
|
Number |
Date |
Country |
Parent |
10269614 |
Oct 2002 |
US |
Child |
10780902 |
Feb 2004 |
US |