The use of a virtual instruction set for the software synthesis of Hw/Sw embedded systems