Table Of ContentAdvanced Techniques for
Embedded Systems Design
and Test
Advanced Techniques for
Embedded Systems Design
and Test
edited by
Juan Carlos Lopez
Technical University of Madrid
Roman Hermida
Complutense University of Madrid
Walter Geisselhardt
Gerhard-Mercator-University Duisburg
SPRINGER-SCIENCE+BUSINESS MEDIA, B.V.
A c.I.P. Catalogue record for this book is available from the Library of Congress.
ISBN 978-1-4419-5031-4 ISBN 978-1-4757-4419-4 (eBook)
DOI 10.1007/978-1-4757-4419-4
Printed on acid-free paper
All Rights Reserved
© 1998 Springer Science+Business Media Dordrecht
Originally published by Kluwer Academic Publishers in 1998
Softcover reprint of the hardcover 1s t edition 1998
No part of the material protected by this copyright notice may be reproduced or
utilized in any form or by any means, electronic or mechanical,
including photocopying, recording or by any information storage and
retrieval system, without written permission from the copyright owner.
CONTENTS
Contributors vii
Preface ix
Juan Carlos L6pez, Roman Hermida,
Walter Geisselhardt
1. Embedded System Specification 1
Eugenio Villar, Maite Veiga
2. Supporting Early System-Level Design Space
Exploration in the Deep Submicron Era 31
Margarida F. Jacome, Juan Carlos L6pez
3. Knowledge Based Hardware-Software
Partitioning of Electronic Systems 53
Marza Luisa L6pez-Vallejo, Juan Carlos L6pez
4. An Industrial Case Study in HW-SW Co-Design
using CASTLE 77
Paul G. PlOger, Horst Gunther, Eduard Moser
5. Automatic Formal Derivation Applied to
High-Level Synthesis 103
Jose Manuel Mendzas, Roman Hermida
vi Advanced Techniques for Embedded Systems Design and Test
6. Overlapped Scheduling Techniques for
High-Level Synthesis and Multiprocessor
Realizations of DSP Algorithms 125
Sabih H. Gerez, Sonia M. Heemstra de Groot,
Erwin R. Bonsma, Marc 1.M. Heijligers
7. Synthesis of Reconfigurable Control Devices
Based on Object-Oriented Specifications 151
Valery Sklyarov, Antonio Adrego da Rocha,
Antonio de Brito Ferrari
8. Estimation of Circuit Physical Features in
High-Level Synthesis Based on
Standard Cells 179
Milagros Fernandez, Hortensia Mecha
9. Test Synthesis of Digital Systems 201
Pablo Sanchez, Victor Fernandez
10. Advances in ATPG by Exploiting
the Behavioral View 231
Walter Geisselhardt, Heinz-Dieter Huemmer
11. Behavioral Fault Simulation 261
lean-Franr,;ois Santucci, Paul Bisgambiglia,
Dominique Federici
Index 285
CONTRIBUTORS
Antonio Adrego de Rocha Walter Geisselhardt
University of Aveiro Gerhard-Mercator University
A veiro, Portugal Duisburg, Germany
Paul Bisgamhiglia Sahih H. Gerez
University of Corsica University of Twente
Corte, France Enschede, The Netherlands
Erwin R. Bonsma Horst Gunther
University of Twente GMD
Enschede, The Netherlands St. Augustin, Germany
Dominique Federici Sonia M. Heemstra de Groot
University of Corsica University of Twente
Corte, France Enschede, The Netherlands
Antonio B. Ferrari Marc J. M. Heijligers
University of A veiro Eindhoven Univ. of Technology
A veiro, Portugal The Netherlands
Milagros Fernandez Roman Hermida
Complutense Univ. of Madrid Complutense Univ. of Madrid
Madrid, Spain Madrid, Spain
Victor Fernandez Heinz-Dieter Huemmer
University of Cantabria Gerhard-Mercator University
Santander, Spain Duisburg, Germany
vii
Vlll Advanced Techniques for Embedded Systems Design and Test
Margarida F. Jacome Paul G. PlOger
University of Texas GMD
Austin, TX, USA St. Augustin, Germany
Juan Carlos Lopez Pablo Sanchez
Technical Univ. of Madrid University of Cantabria
Madrid, Spain Santander, Spain
Maria Luisa Lopez-Vallejo Jean-Fran~ois Santucci
Technical Univ. of Madrid University of Corsica
Madrid, Spain Corte, France
Hortensia Mecha Valery Sklyarov
Complutense Univ. of Madrid University of A veiro
Madrid, Spain A veiro, Portugal
Jose Manuel Mendias Maite Veiga
Complutense Univ. of Madrid University of Cantabria
Madrid, Spain Santander, Spain
Eduard Moser Eugenio Villar
Robert BOSCH GmbH University of Cantabria
Stuttgart, Germany Santander, Spain
PREFACE
As electronic technology reaches the point where complex systems can be integrated
on a single chip, and higher degrees of performance can be achieved at lower costs
by means of putting together well-coupled hardware and software components,
designers must devise new ways to undertake the laborious task of coping with the
numerous, and non-trivial, problems that arise during the conception of such
systems. On the other hand, shorter design cycles (so that electronic products can fit
into shrinking market windows) put companies, and consequently designers, under
pressure in a race to obtain reliable products in the minimum period of time.
Given this scenario, automation has been one of the answers of the design
community. With the aid of highly sophisticated tools, designers have been able to
deal with more and more complex designs, relying on computer programs to
accomplish the more tedious tasks. Abstraction has also been traditionally used to
allow the designers to get rid of annoying implementation details while better
focusing on the decision making process. New methodologies have appeared
supported by these two aspects. Their importance has been crucial in making it
possible for system designers to take over the traditional electronic design process.
Embedded systems is one of the fields that these methodologies are mainly
targeting. The inherent complexity of these systems, with hardware and software
components that usually execute concurrently, and the very tight cost and
performance constraints, make them specially suitable to introduce higher levels of
abstraction and automation, so as to allow the designer to tackle better the many
problems that appear during their design.
Hardware-Software Co-design is currently considered as the best method to deal
with the design of those heterogeneous systems under the above discussed
constraints, assuring design quality and reliability. Co-design explores reasonable
implementations of a specific system by combining hardware and software solutions.
The co-design process must evaluate the numerous implementation alternatives and
the many tradeoffs involved in the system design. But the design space for such
complex systems is huge and the quality of the final solution strongly depends on the
way that space exploration has been carried out. Performance and cost estimations
turn out to be essential in this task.
ix
x Advanced Techniques for Embedded Systems Design and Test
System specification gains importance in a co-design methodology. It helps the
designer to better capture the conceptual view of the system with the minimum
effort, that is, to describe the system functionality far away from implementation
details (hardware and software parts, for instance). New languages offer more
powerful means of expressing more abstract concepts in an easier way, facilitating
the whole specification task.
On the other hand, the task of deciding which system functionality will be
performed by either hardware or software components, becomes essential. The
boundary between hardware and software represents the main tradeoff when
designing a complex system, since that decision clearly affects the cost and
performance of the final implementation. This is not an easy task and numerous
efforts are being made to come up with new models and algorithms to perform the
hardware-software partitioning.
Of course, the design of the hardware part is still a problem where more mature
(software) methodologies are being applied. The describe-and-synthesize paradigm
has been successfully used to take on this issue. Synthesis is a translation process
from a behavioral description into a net of components that implements the given
behavior. The ability to accept specifications with increasing abstraction level and
the optimization of the synthesized results, as well as the search for new application
domains, have been among the relevant topics in this field. Synthesis has been
strongly marked for the last ten years at least by research on High-Level Synthesis,
which has shaped a new specific activity field.
High-level synthesis has presented a polymorphic nature. The number of design
related problems where these techniques are applied has grown considerably in the
last years. There has been, of course, research on the classical problems of
scheduling, allocation, binding, etc., but some other important topics have also been
addressed. Area and delay estimation for example, has deserved a lot of attention
because the high-level design decisions can only be correctly made if based on fine
estimations of their impact on the final circuit layout.
Formal support for correct synthesis is an emerging area of activity, because the
original promise of correct by construction synthesis results cannot be held true if
we consider the enormous complexity of the synthesis tools. Therefore, there is a
trend to link synthesis and verification so that the elementary decisions taken by
synthesis algorithms can be verified, before continuing the design process.
After generating a design, traditional test approaches modify the design by
adding new circuits that allow system functionality testing through the application of
selected stimuli. Such modifications can imply significant increments of the initial
chip area. However, recent research has shown that integrating testability
considerations within the synthesis process may lead to testable designs as the whole
circuit area is optimized.
The complexity of test generation has been traditionally tackled using divide-and
conquer strategies. But the use of more abstract views of the system has been
introduced as a powerful way to cope with this problem. On the other hand,
Preface
Xl
generation of stimuli is becoming influenced by new results derived from the
analysis of the initial behavioral specification.
The design of complete systems on a chip is more and more performed by means
of both, (numerous) reusable blocks taken from a library, and (a few) others
specifically designed. All these components either include built-in self-test
capabilities or come with test sets to exercise both structure and functionality.
Behavioral specifications help to integrate the tests of the different components into
an overall test procedure.
This book gathers almost all these topics, presenting recent developments in
methodologies and tools for the specification, synthesis, verification, and test of
embedded systems, characterized by the use of high-level languages as a road to
productivity.
The use of new languages for the specification of these complex systems opens
new ways to better describe (and analyze) the system functionality. Chapter 1 is
devoted to this phase of the design cycle, studying the features that a good
specification language for embedded systems should show and presenting the role it
plays in a co-design methodology. Special emphasis on the use of ADA as
embedded system specification language is given.
Early and efficient design space exploration is one of the main goals of the design
community. Design assistance turns out to be a real need when the complexity of
actual systems grows and the variety of potential implementations is huge. In
Chapter 2, new ideas on modeling and characterizing design methodologies to
support the search for cost-effective solutions to a given design problem are
discussed. Algorithms, models and mechanisms for helping in the decision making
process are proposed.
Hardware-Software partitioning is addressed in Chapter 3. The decision on the
particular implementation of the different functional components has a strong impact
on the cost and performance of the final product. Therefore, the way this process is
accomplished (models, algorithms, cost functions, ... ) is of great importance.
Furthermore, this decision is specially hard when it has to be based on imprecise and
usually uncertain information. Knowledge-based techniques and fuzzy models are
the foundation on which the partitioning system proposed in this chapter is built.
To test the value of co-design, the development of an industrial case study, based
on a specific methodology, is analyzed in Chapter 4. The main steps of the design
flow are studied in detail, describing methods, tools and results that help to draw
some conclusions about the feasibility of using a co-design methodology in an
industrial environment.
To assure the correctness of the design process has been one of the challenges of
recent research works. Within a trend lately suggested by some authors, Chapter 5
discusses the possibility of incorporating formal verification actions during synthesis
steps. Some ideas are presented about the formalisms that can be valid to support