Along with the evolution of vehicle electronic systems from independent control in each domain system to the integration control of the whole vehicle system, ECU systems have become increasingly complicated and large-scale. This has made it extremely difficult to develop the entire system coherently and efficiently from the functional level down to implementation level. On the other hand, the development methodology focusing on single ECU system used today has been facing an additional challenge because of increasingly strict requirements for safety design based on multi-ECU systems.To address these challenges, we have been working on developing virtual development of Engine ECU by modeling technology.In order to achieve optimum electronic systems, it is necessary to build many real devices and evaluate the performance of systems. However, it is also becoming necessary to build virtual devices because of the increasingly complicated and large-scale systems. So the physical level, connecting between functional level and implementation level, should also be applied to virtual development. On the other hand, not only the functions, but also the safety design needs virtual technology to apply fault injection. Therefore, we have been using system level modeling and simulation technology with SystemC language which provides the concepts of time.In the phase of physical level design, how to decide the architecture of ECU, such as microcomputer, software and peripheral LSI, is very important as well as how to design the safety monitoring system to meet the safety requirements. So the important requirements of virtual development environment are as follows, HW/SW partitioning decision, CPU processing load estimation, and failure simulation.These requirements can be met by designing each functional model of system such as ADC and drive circuit, connecting these models as a system and simulating the behavior of the whole system.Virtual development is also efficient for safety design. Because the data transferred in the system can be changed to failure data forcibly by covering functional models with failure models, which makes it easy to achieve fault injection.