In this paper, we demonstrate the application of the specify-explore- re ne (SER) paradigm for an IP-centric codesign of embedded systems. We describe the necessary design tasks required to map an abstract executable speci cation of the system to the architectural implementation model. We also describe the nal and intermediate models generated as a result of these design tasks. The executable speci cation and its re nements should support easy insertion and reuse of IPs. Although several languages are currently used for system design, none of them completely meets the unique requirements of system modelling with support for IP reuse. This paper discusses the requirements and objectives for system languages and describes a C-based language called SpecC, which precisely covers these requirements in an orthogonal manner. Finally, we describe the design environment which is based on our code- sign methodology.