The design process of embedded systems has changed substantially in recent years. One of the main reasons for this change is the pressure to shorten time-to-market when designing digital systems. To shorten the product cycles, programmable processes are used to implement more and more functionality of the embedded system. Therefore, nowadays, embedded systems are very often implemented by heterogeneous systems consisting of ASICs, processors, memories and peripherals. As a consequence, the research topic of hardware/software co-design, dealing with the problems of designing these heterogeneous systems, has gained great importance. Hardware/Software Co-design for Data Flow Dominated Embedded Systems introduces the different tasks of hardware/software co-design including system specification, hardware/software partitioning, co-synthesis and co-simulation. The book summarizes and classifies state-of-the-art co-design tools and methods for these tasks. In addition, the co-design tool COOL is presented which solves the co-design tasks for the class of data-flow dominated embedded systems. Author Ralf Niemann put this book's primary emphasis on the hardware/software partitioning and the co-synthesis phase and their coupling. In contrast to many other publications in this area, a mathematical formulation of the hardware/software partitioning problem is given. This problem formulation supports target architectures consisting of multiple processors and multiple ASICs. Several novel approaches are presented and compared for solving the partitioning problem, including an MILP approach, a heuristic solution and an approach based on genetic algorithms. The co-synthesis phase is based on the idea of controlling the system by means of a static run-time scheduler implemented in hardware. New algorithms are introduced which generate a complete set of hardware and software specifications required to implement heterogeneous systems. All of these techniques are described in detail and exemplified. This book is intended to serve students and researchers working on hardware/software co-design. At the same time, the variety of presented techniques automating the design tasks of hardware/software systems will be of interest to industrial engineers and designers of digital systems. "Niemann's method should be known by all persons working in the field. Hence, I recommend this book for everyone who is interested in hardware/software co-design." --Prof. Peter Marwedel, Ph.D, University of Dortmund Embedded Systems Group Table of Contents List of Figures List of Tables 1. Introduction Embedded Systems Hardware/Software Co-Design Outline of the Thesis 2. Co-Design Systems Co-Design for System Specification and Modelling Co-Design for Heterogeneous Implementation Processor Synthesis Single-Processor Architectures with one ASIC Single-Processor Architectures with many ASICs Multi-Processor Architectures Other Co-Design Approaches Comparison of Co-Design Approaches Overview of COOL Classification of COOL 3. Specification of Embedded Systems Models of Computation State-Oriented Models Activity-Oriented Models Structure-Oriented Models Data-Oriented Models Heterogeneous Models Requirements for Embedded System Specification Survey of System Specification Languages VHDL for System Specification System Specification in COOL 4. Hardware/Software Partitioning The Hardware/Software Partitioning Problem Hardware/Software Mapping Hardware Sharing Interfacing Scheduling Functional Pipelining Related Work Hardware/Software Partitioning in COOL Special Aspects of HW/SW Partitioning in COOL Hardware/Software Cost Estimation Software Cost Estimation Hardware Cost Estimation Interface Cost Estimation Generation of the Partitioning Graph Formulation of the HW/SW Partitioning Problem Optimization Linear and Integer Linear Programming Evolutionary Algorithms The MILP-Model The Decision Variables The Objective Function The Constraints Hardware Sharing Interfacing Scheduling HW/SW Partitioning based on Heuristic Scheduling Step I: Mapping with Approximated Schedule Step II: Scheduling solved by MILP Step III: Scheduling solved by List Scheduling Results I: Scheduling Algorithms Results II: HW/SW Partitioning using Heuristic Scheduling HW/SW Partitioning based on Genetic Algorithms GA Parameters GA Encoding GA Fitness Function Analysis of the GA Approach Results III: HW/SW Partitioning based on GA GA Approach for Extended HW/SW Partitioning 5. Hardware/Software Co-Synthesis The Co-Synthesis Problem Communication Synthesis Specification Refinement Related Work Co-Synthesis in COOL Hardware/Software Systems generated by COOL System Controller I/O Controller Bus Arbiter Controller for Data Paths Bus Drivers Simulation Models for Memory and Processors State-Transition Graph State-Transition Graph Generation State-Transition Graph Optimization Memory Allocation Refinement and Controller Generation Data-Related Refinements for Hardware and Software Software Refinement Hardware Refinement Controller Generation Results IV: Application Study of a Fuzzy Controller 6. The COOL Framework Implementation of COOL Description of COOL Graphical User Interface Validation using Simulation Specification of Design Constraints Hardware/Software Partitioning Co-Synthesis Co-Simulation 7. Summary and Conclusions Summary and Contribution to Research Future Work Bibliography References Notations Abbreviations Index Hardcover; 244 pages.
|