Claims
- 1. A method of processing multiple submodels of a partitioned model, the multiple submodels including a first submodel and a second submodel, said method comprising:
coupling a first submodel and a second submodel of a partitioned model, said coupling comprising:
providing a first coupler interfaced with said first submodel; providing a second coupler interfaced with said second submodel; interfacing said first coupler and said second coupler, said interfacing comprising providing a buffer between said first coupler and said second coupler; and collectively processing said first submodel and said second submodel, wherein said first submodel and said second submodel communicate employing said first coupler, said buffer and said second coupler.
- 2. The method of claim 1, wherein said model is a logic design.
- 3. The method of claim 1, wherein said collectively processing comprises distributively processing said first submodel and said second submodel, said distributively processing comprising a distributed process control.
- 4. The method of claim 1, wherein said collectively processing further comprises processing said first submodel on a first simulator instance, and processing said second submodel on a second simulator instance, said first simulator instance being different from said second simulator instance, said first simulator instance employing said buffer to communicate with said second simulator instance.
- 5. The method of claim 4, wherein said first simulator instance resides on a first computing unit and said second simulator instance resides on a second computing unit.
- 6. The method of claim 1, wherein at least one submodel and associated coupler include at least one mapped data port and a clock/cycle port, said clock/cycle port providing at least one clock/cycle signal, said at least one signal being employed to transfer data between said at least one submodel and associated coupler through said at least one mapped data port.
- 7. The method of claim 6, wherein at least one of said first coupler and said second coupler comprises a top level coupler entity and a coupler shared library, said at least one first coupler and second coupler employing said top level coupler entity to connect to said respective first submodel and second submodel, wherein said top level coupler entity comprises multiple ports mapped to said at least one input, said at least one output and said clock/cycle port of said at least one first submodel and second submodel, at least one of said first coupler and said second coupler employing said coupler shared library to transmit data between said coupler and said buffer.
- 8. The method of claim 1, wherein said buffer comprises a communication medium, said communication medium providing at least one protocol for passing and monitoring data between said first coupler and said second coupler.
- 9. The method of claim 1, wherein said collectively processing further comprises:
transmitting data to said buffer by said first coupler, said data being obtained from said first submodel, retrieving said data from said buffer by said second coupler and providing said data to said second submodel; and commensurate with said transmitting and retrieving of said data, ensuring integrity of said data.
- 10. The method of claim 9, wherein said ensuring integrity comprises:
inserting a checksum value into said data; checking said data in said buffer to determine correctness of said data by at least one of said first coupler and said second coupler; and at least one of retransmitting said data to said buffer and rereading said data from said buffer by said at least one first coupler and second coupler, if said data is incorrect.
- 11. The method of claim 10, wherein said inserting comprises calculating said checksum value, said calculating comprising applying at least one logical operation to said data.
- 12. The method of claim 10, wherein said checking comprises:
calculating a new checksum value for said data; and comparing said new checksum value with said checksum value.
- 13. The method of claim 9, wherein said ensuring integrity further comprises:
providing a first series of files in said buffer write accessible by said first coupler and read accessible by said second coupler; providing a second series of files in said buffer read accessible by said first coupler and write accessible by said second coupler; writing to said first series of files by said first coupler and reading data from said first series of files by said second coupler in a predefined order; and writing to said second series of files by said second coupler and reading data from said second series of files by said first coupler in said predefined order.
- 14. The method of claim 1, wherein said interfacing further comprises monitoring data in said buffer to provide monitoring statistics, said monitoring statistics facilitating statically repartitioning said first submodel and said second submodel to optimize said collectively processing.
- 15. The method of claim 1, wherein said model is represented in VHDL.
- 16. A system for processing multiple submodels of a partitioned model, the multiple submodels including a first submodel and a second submodel, said system comprising:
means for coupling a first submodel and a second submodel of a partitioned model, said means for coupling comprising:
means for providing a first coupler interfaced with said first submodel; means for providing a second coupler interfaced with said second submodel; means for interfacing said first coupler and said second coupler, said means for interfacing comprising means for providing a buffer between said first coupler and said second coupler; and means for collectively processing said first submodel and said second submodel, wherein said first submodel and said second submodel communicate employing said first coupler, said buffer and said second coupler.
- 17. The system of claim 16, wherein said model is a logic design.
- 18. The system of claim 16, wherein said means for collectively processing comprises means for distributively processing said first submodel and said second submodel, said means for distributively processing comprising a distributed process control.
- 19. The system of claim 16, wherein said means for collectively processing further comprises means for processing said first submodel on a first simulator instance, and means for processing said second submodel on a second simulator instance, said first simulator instance being different from said second simulator instance, said first simulator instance employing said buffer to communicate with said second simulator instance.
- 20. The system of claim 19, wherein said first simulator instance resides on a first computing unit and said second simulator instance resides on a second computing unit.
- 21. The method of claim 16, wherein at least one submodel and associated coupler include at least one mapped data port and a clock/cycle port, said clock/cycle port providing at least one clock/cycle signal, said at least one signal being employed to transfer data between said at least one submodel and associated coupler through said at least one mapped data port.
- 22. The system of claim 21, wherein at least one of said first coupler and said second coupler comprises a top level coupler entity and a coupler shared library, said at least one first coupler and second coupler employing said top level coupler entity to connect to said respective first submodel and second submodel, wherein said top level coupler entity comprises multiple ports mapped to said at least one input, said at least one output and said clock/cycle port of said at least one first submodel and second submodel, at least one of said first coupler and said second coupler employing said coupler shared library to transmit data between said coupler and said buffer.
- 23. The system of claim 16, wherein said buffer comprises a communication medium, said communication medium providing at least one protocol for passing and monitoring data between said first coupler and said second coupler.
- 24. The system of claim 16, wherein said means for collectively processing further comprises:
means for transmitting data to said buffer by said first coupler, said data being obtained from said first submodel, means for retrieving said data from said buffer by said second coupler and means for providing said data to said second submodel; and means for ensuring integrity of said data during said transmitting and retrieving of said data.
- 25. The system of claim 24, wherein said means for ensuring integrity comprises:
means for inserting a checksum value into said data; means for checking said data in said buffer to determine correctness of said data by at least one of said first coupler and said second coupler; and means for retransmitting said data to said buffer and for rereading said data from said buffer by said at least one first coupler and second coupler, if said data is incorrect.
- 26. The system of claim 25, wherein said means for inserting comprise means for calculating said checksum value, said means for calculating comprising means for applying at least one logical operation to contents of said data.
- 27. The system of claim 25, wherein said means for checking comprises:
means for calculating a new checksum value for said data; and means for comparing said new checksum value with said checksum value.
- 28. The system of claim 24, wherein said means for ensuring integrity further comprises:
means for providing a first series of files in said buffer write accessible by said first coupler and read accessible by said second coupler; means for providing a second series of files in said buffer read accessible by said first coupler and write accessible by said second coupler; means for writing to said first series of files by said first coupler and reading data from said first series of files by said second coupler in a predefined order; and means for writing to said second series of files by said second coupler and reading data from said second series of files by said first coupler in said predefined order.
- 29. The system of claim 16, wherein said means for interfacing further comprises means for monitoring data in said buffer to provide monitoring statistics, said monitoring statistics facilitating statically repartitioning said first submodel and said second submodel to optimize said collectively processing.
- 30. The system of claim 16, wherein said model is represented in VHDL.
- 31. A simulation system for processing multiple submodels of a model, the multiple submodels comprising a first submodel and a second submodel, said simulation system comprising:
at least one computing unit adapted to couple a first submodel and a second submodel of a partitioned model by providing a first coupler interfaced with said first submodel, a second coupler interfaced with said second submodel, and by interfacing said first coupler and said second coupler with a buffer disposed between said first coupler and said second coupler; and wherein said at least one computing unit is further adapted to collectively process said first submodel and said second submodel, wherein said first submodel and said second submodel communicate employing said first coupler, said buffer and said second coupler.
- 32. The simulation system of claim 31, wherein said at least one computing unit comprises multiple simulator instances, said multiple simulator instances including a first simulator instance and a second simulator instance, said first simulator instance processing said first submodel and said second simulator instance processing said second submodel, said first simulator instance being different from said second simulator instance.
- 33. The simulation system of claim 32, wherein said first simulator instance resides on a first computing unit and said second simulator instance resides on a second computing unit.
- 34. At least one program storage device readable by a machine, tangibly embodying at least one program of instructions executable by the machine to perform a method of processing multiple submodels of a partitioned model, the multiple submodels including a first submodel and a second submodel, the method comprising:
coupling a first submodel and a second submodel of a partitioned model, said coupling comprising:
providing a first coupler interfaced with said first submodel; providing a second coupler interfaced with said second submodel; interfacing said first coupler and said second coupler, said interfacing comprising providing a buffer between said first coupler and said second coupler; and collectively processing said first submodel and said second submodel, wherein said first submodel and said second submodel communicate employing said first coupler, said buffer and said second coupler.
- 35. The at least one program storage device of claim 34, wherein said model is a logic design.
- 36. The at least one program storage device of claim 34, wherein said collectively processing comprises distributively processing said first submodel and said second submodel, said distributively processing comprising a distributed process control.
- 37. The at least one program storage device of claim 34, wherein said collectively processing further comprises processing said first submodel on a first simulator instance, and processing said second submodel on a second simulator instance, said first simulator instance being different from said second simulator instance, said first simulator instance employing said buffer to communicate with said second simulator instance.
- 38. The at least one program storage device of claim 37, wherein said first simulator instance resides on a first computing unit and said second simulator instance resides on a second computing unit.
- 39. The at least one program storage device of claim 34, wherein at least one submodel and associated coupler include at least one mapped data port and a clock/cycle port, said clock/cycle port providing at least one clock/cycle signal, said at least one signal being employed to transfer data between said at least one submodel and associated coupler through said at least one mapped data port.
- 40. The at least one program storage device of claim 39, wherein at least one of said first coupler and said second coupler comprises a top level coupler entity and a coupler shared library, said at least one first coupler and second coupler employing said top level coupler entity to connect to said respective first submodel and second submodel, wherein said top level coupler entity comprises multiple ports mapped to said at least one input, said at least one output and said clock/cycle port of said at least one first submodel and second submodel, at least one of said first coupler and said second coupler employing said coupler shared library to transmit data between said coupler and said buffer.
- 41. The at least one program storage device of claim 34, wherein said buffer comprises a communication medium, said communication medium providing at least one protocol for passing and monitoring data between said first coupler and said second coupler.
- 42. The at least one program storage device of claim 34, wherein said collectively processing further comprises:
transmitting data to said buffer by said first coupler, said data being obtained from said first submodel, retrieving said data from said buffer by said second coupler and providing said data to said second submodel; and commensurate with said transmitting and retrieving of said data, ensuring integrity of said data.
- 43. The at least one program storage device of claim 42, wherein said ensuring integrity comprises:
inserting a checksum value into said data; checking said data in said buffer to determine correctness of said data by at least one of said first coupler and said second coupler; and at least one of retransmitting said data to said buffer and rereading said data from said buffer by said at least one first coupler and second coupler, if said data is incorrect.
- 44. The at least one program storage device of claim 43, wherein said inserting comprises calculating said checksum value, said calculating comprising applying at least one logical operation to said data.
- 45. The at least one program storage device of claim 43, wherein said checking comprises:
calculating a new checksum value for said data; and comparing said new checksum value with said checksum value.
- 46. The at least one program storage device of claim 42, wherein said ensuring integrity further comprises:
providing a first series of files in said buffer write accessible by said first coupler and read accessible by said second coupler; providing a second series of files in said buffer read accessible by said first coupler and write accessible by said second coupler; writing to said first series of files by said first coupler and reading data from said first series of files by said second coupler in a predefined order; and writing to said second series of files by said second coupler and reading data from said second series of files by said first coupler in said predefined order.
- 47. The at least one program storage device of claim 34, wherein said interfacing further comprises monitoring data in said buffer to provide monitoring statistics, said monitoring statistics facilitating statically repartitioning said first submodel and said second submodel to optimize said collectively processing.
- 48. The at least one program storage device of claim 34, wherein said model is represented in VHDL.
CROSS-REFERENCE TO RELATED APPLICATIONS
[0001] This application contains subject matter which is related to the subject matter of the following co-filed applications, each of which is assigned to the same assignee as this application. Each of the below-listed applications is hereby incorporated herein by reference in its entirety
[0002] “FACILITATING SIMULATION OF A MODEL WITHIN A DISTRIBUTED ENVIRONMENT”, Rich et al., Ser. No. ______, and
[0003] “PARTITIONING A MODEL INTO A PLURALITY OF INDEPENDENT PARTITIONS TO BE PROCESSED WITHIN A DISTRIBUTED ENVIRONMENT”, Rich et al., Ser. No. ______, (IBM Docket