This document discusses design technologies for improving productivity in embedded systems design. It focuses on automation through synthesis, reuse through intellectual property cores, and verification through hardware/software co-simulation. Synthesis is described as automatically converting a system's behavioral description into a structural implementation to optimize design metrics. Logic synthesis, register-transfer synthesis, and behavioral synthesis are discussed as techniques that operate at different levels of abstraction in the design process.