The goal of this chapter is to explain why it is important for you to learn SystemC. If you already know why you are studying SystemC, then you can jump ahead to Chapter 2. If you are learning SystemC for a college course or because your boss says you must, then you may benefit from this chapter. If your boss doesn’t know why you need to spend your time learning SystemC, then you may want to show your boss this chapter.
SystemC is a system design and modeling language. This language evolved to meet a system designer’s requirements for designing and integrating today’s complex electronic systems very quickly while assuring that the final system will meet performance expectations.
Typically, today’s systems contain both application-specific hardware and software. Furthermore, the hardware and software are usually co-developed on a tight schedule with tight real-time performance constraints and stringent requirements for low power. Thorough functional (and architectural) verification is required to avoid expensive and sometimes catastrophic failures in the device. In some cases, these failures result in the demise of the company or organization designing the errant system. The prevailing name for this concurrent and multi-disciplinary approach to the design of complex systems is electronic system-level design or ESL.