In this thesis, we provide a system level design methodology aimed for the design of embedded systems. Our methodology is geared towards the concurrent design of hardware components and software agents. Our choice of tool/language pair is CoWare N2C design tool and SystemC specification language. Our design flow is completed with a high performance hardware synthesis methodology relying behavioral synthesis. A case study, the design of an ATM switch, is carried out to illustrate the proposed ideas