Cadence Virtual Component Co-Design: An Environment for System Design and Its Application to Functional Specification and Architectural Selection for Automotive Systems