Patent ID: 8473269
Filing Date: 2013-06-25
Classification: G06F

Abstract:
1. A processor-based method for co-simulating an electronic system design, comprising: instantiating a hardware design function block in the design in response to user input; establishing in response to user input, a specification of a software execution platform including external ports and software to execute on the platform; automatically instantiating a software execution platform interface block in response to a user instruction to import the software execution platform into the design, the software execution platform interface block having ports compatible with the external ports of the software execution platform; generating a first simulation model from the hardware design function block and the software execution platform interface block and a second simulation model from the software execution platform; displaying a user interface object for selecting between a lock-step mode or an asynchronous mode for co-simulation; setting a simulation mode to one of the lock-step mode or the asynchronous mode in response to user input; co-simulating the first and second simulation models; in response to user designation of a first portion of the software to be co-simulated in lock-step mode, and user designation of a second portion of the software to be co-simulated in asynchronous mode, co-simulating in lock-step mode in response to entering execution of the first portion of the software during co-simulation, and co-simulating in asynchronous mode in response to entering execution of the second portion of the software during co-simulation; wherein while co-simulating in the lock-step mode, the first simulation model and the second simulation model each repeat a sequence including waiting to commence execution until the other signals completion of executing for a selected number of simulation cycles, reading data from the other upon commencing execution, executing for the selected number of cycles, and signaling completion upon completing execution of the selected number of simulation cycles; wherein while co-simulating in the asynchronous mode, each of the first simulation model and the second simulation model execute independent of a number of simulation cycles for which the other executes, and the co-simulating of the first simulation model stalls while waiting for data from the second simulation model and the co-simulating resumes in response to the data from the second simulation model being available; and communicating data between the first simulation model and the second simulation model via the software execution platform interface block.