"Codesigning" oftenly results in hybrid-like systems consisting of
general-purpose processor and one or many specialized devices. While core
processor still remains programmable these devices are aimed to execute
critical operations yelding high performance of the system.
Codesign process requires several steps to be performed to choose target core processor, synthesize suitable hardware extensions, establish proper interfaces between them, generate machine code etc.