Soc(system on a chip)

Systems on Chips: An embedded system is a combination of hardware and software to perform a specific function. Hardware is chosen for its performance (speed) while software is chosen for its flexibility and low-cost. Embedded system applications are no more restricted to industrial process and avionics/defense controllers, they are expanding to all fields where electronic is used: consumer electronics, multimedia, automotive, communication, etc. An embedded system is often composed of one or more processors/DSPs, memory blocks, I/O devices and custom components, connected to each others through a shared bus and/or dedicated channels. We will refer by software the code running on processors/DSPs, and by hardware the surrounded functional blocks. Thanks to the micro-electronic advances in integration and the progress made by silicon manufacturers, implementation of embedded systems is observing a quick shifting from systems on boards (SOB) to systems on chips (SOC) where all components are on the same die  However, design methodologies used for SOB cannot meet the challenges and complexities of SOC, and the gape between integration and productivity is increasing: the number of devices per integrated circuit is growing about 50% every year, while productivity is growing only about 20% for the same period. To reduce this gape, a co-design methodology based on concurrent and simultaneous development of the hardware and the software is required. The objectives of co-design are better design productivity, better optimization of the system, more engineering flexibility and shorter time-to-market. Research in co-design has been very intensive during the last fiveFig. 1 Typical SOC architectureyears [14,17,18,5,8], and many academic co-design tools have been developed like Chinook [20], Polis [21] and Ptolemy [22]. The global co-design flow has been defined, and many co-design problems like hardware-software partitioning and communication synthesis have been addressed. Nevertheless, today in the industry co-design stills not a practice due to the lack of mature CAD tools to support it; even though there are few promising new commercial tools like co-ware that cover all co-design phases from specification to implementation.This paper reviews the co-design methodology with a special focus on the unresolved problems. It is organized as follows. Section 2 presents the limitations of traditional design methodologies to handle SOC complexities. Section 3 discusses the different levels of specification used during co-design, and the requirements of the specification formalisms. Section 4 and section 5 present the challenges and the main unresolved problems for two important co-design steps, co-development and virtual-integration.