This paper presents the underlying methodology of Cosmos, an interactive approach for hardware software co-design capable of handling multiprocessor systems and distributed architectures. The approach covers the co-design process through a set of user guided transformations allowing semi-automatic partitioning. The transformations are based on a powerful set of primitives for functional partitioning, structural reorganization and communication transformation. It leads to a fast transformation of a systemlevel speci cation into an architecture with a short design time and fast exploration of design space. The application of this approach is illustrated using a design example starting from a system-level speci cation given in SDL to a distributed hardware software architecture described in C VHDL. We show that the use of transformational approach allows: