Abstract

SystemC has gained popularity as a modeling language in the design of highly complex, heterogeneous, and large concurrent systems. Efficient and accurate simulation of the SystemC designs has become increasingly important. In this paper, we analyze the synchronization dependencies of concurrent systems modeled in the SystemC environment, where SystemC models are simulated through a discrete event simulation kernel that schedules events at runtime. We discuss different possibilities of SystemC communication constructs that may lead to deadlocks. We create a framework for system level designers to detect the deadlocks as soon as they occur, thus avoiding more complicated scenarios later in the simulation. This is accomplished by extension of the SystemC simulation kernel to build a dynamic dependency graph incrementally at runtime, and then applying an incremental deadlock detection algorithm to the graph. We demonstrate our approach through the well established dining philosopher problem and two real world designs, CS6100 JPEG encoder and MPEG-2 decoder. The overhead on the overall simulation is shown to be insignificant

Full Text
Published version (Free)

Talk to us

Join us for a 30 min session where you can share your feedback and ask us any queries you have

Schedule a call