Codesign of Embedded Systems-The SPI Workbench