Software/Hardware Codesign for Validation and Verification

Embedded computer applications are requiring more performance, higher reliability, and lower development and maintenance costs. These requirements are being met by fault-tolerant, distributed parallel processors with tightly integrated software and hardware. Software/hardware codesign provides a mechanism for exploring the myriad of alternative system architectures during the early stages of the development of a system, and can be used during the later stages of software and hardware design to make sure that the detailed design decisions do not cause the software and hadware designs to diverge. This paper discusses software/hardware codesign, presents an approach to codesign and a tool set that supports the approach, and discusses an example of using codesign methods and tools for validation and verification.