Function/Architecture Optimization and Co-Design of Embedded Systems