Abstract

An embedded computer system (or simply embedded system) is a digital system which uses a microprocessor running software to implement some or all of its functions. Hardware-software co-design is any design technique for the creation of systems with both hardware and software components. Embedded systems are clearly important---microprocessors are used in products ranging from microwave ovens to laser printers to engine controllers. This panel considers what makes embedded system design difficult today and how CAD and CASE can help. Embedded system must be designed under sever constraints. On the one hand, they must often meet performance goals to be viable in the marketplace. On the otherhand, manufacturing cost is important---microprocessors are often used to save money, and the designer wastes money by using a larger processor than necessary. Time-to-market is often critical, since companies often believe (perhaps erroneously) that software implementations will be finished faster. Finally, embedded systems must often be expandable---companies expect to roll out new, improved versions of products by taking advantage of the existing hardware platform and software base. The design of an embedded system may require delicate balancing of hardware and software resource requirements. Performance requirements may force some operations to be done in custom hardware. In current design practice, hardware-software partitioning is often done too early, leading to suboptimal design times and delays in software development. Even if no custom hardware is required, the embedded system designer must choose a hardware architecture on which the software is to be executed. The designer must choose the size and number of CPUs, memory size, peripherals, and so forth. Hardware and software elements must be designed simultaneously, then integrated into a complete system. Concurrent design techniques help to keep track of the design and ensure that constraints are satisfied. Embedded system design practice today is about where VLSI design practice was in the late 1970's. Complex chips were designed before Mead and Conway, but with only the vaguest notion of design abstraction or methodology and with primitive tools. The VLSI revolution helped designers understand their chip designs more abstractly, which led to the development of methodologies and tools which vastly improved designer productivity. Similarly, embedded systems are designed today with only the crudest of tools and with very little learning from one system to the next. We need to understand the common characteristics of embedded systems and develop tools which automate specific steps in the embedded system design process. Only by rationalizing and automating embedded system design can we take advantage of the vast increases in programmable computing power delivered by VLSI.

Talk to us

Join us for a 30 min session where you can share your feedback and ask us any queries you have

Schedule a call

Disclaimer: All third-party content on this website/platform is and will remain the property of their respective owners and is provided on "as is" basis without any warranties, express or implied. Use of third-party content does not indicate any affiliation, sponsorship with or endorsement by them. Any references to third-party content is to identify the corresponding services and shall be considered fair use under The CopyrightLaw.