As a program can be modeled as data structures and control flows, the program verification problem can be reduced into verification of control flows with respect to the program data. Although a control flow can be represented as a Petri Net, the original Petri Net is not strong enough in representing a program without considering the program data. In this work, we focus on verifying a so-called Control Flow Petri Net (CF-PN) structure, a special form of Petri Net, which can capture both control flows and data manipulations of a program. This structure can also capture synchronization in concurrency systems such as multi-thread programs or asynchronous circuits. A model checking module for verifying such structures has been developed and added to PAT, a model checking tool originated from National University of Singapore (NUS). We also demonstrate our method in some working case studies of well-known verification situations.