Table Of ContentDaniel D. Gajski (cid:127) Samar Abdi
Andreas Gerstlauer (cid:127) Gunar Schirner
Embedded System Design
Modeling, Synthesis and Verification
Daniel D. Gajski Samar Abdi
Center for Embedded Computer Systems Center for Embedded Computer Systems
University of California, Irvine University of California, Irvine
2010, AIR Bldg. 2010, AIR Bldg.
Irvine, CA 92697-2620 Irvine, CA 92697-2620
USA USA
gajski@uci.edu sabdi@uci.edu
Andreas Gerstlauer Gunar Schirner
Department of Electrical & Center for Embedded Computer Systems
Computer Engineering University of California, Irvine
University of Texas at Austin 2010, AIR Bldg.
1 University Station C0803 Irvine, CA 92697-2620
Austin, TX 78712 USA
USA hschirne@uci.edu
gerstl@ece.utexas.edu
ISBN978-1-4419-0503-1 e-ISBN978-1-4419-0504-8
DOI10.1007/978-1-4419-0504-8
Springer Dordrecht Heidelberg London New York
Library of Congress Control Number: 20099931042
©SpringerScience + BusinessMedia,LLC2009
Allrightsreserved. Thisworkmaynotbetranslatedorcopiedinwholeorinpartwithoutthewritten
permissionofthepublisher(SpringerScience+BusinessMedia,LLC,233SpringStreet,NewYork,NY
10013,USA),exceptforbriefexcerptsinconnectionwithreviewsorscholarlyanalysis.Useinconnection
withanyformofinformationstorageandretrieval,electronicadaptation,computersoftware,orbysimilar
ordissimilarmethodologynowknownorhereafterdevelopedisforbidden.
Theuseinthispublicationoftradenames,trademarks,servicemarks,andsimilarterms,eveniftheyare
notidentifiedassuch,isnottobetakenasanexpressionofopinionastowhetherornottheyaresubject
toproprietaryrights.
Printedonacid-freepaper
Springer is part of Springer Science+Business Media (www.springer.com)
Preface
RATIONALE
Inthelasttwentyfiveyears,designtechnology,andtheEDAindustryinpartic-
ular, have been very successful, enjoying an exceptional growth that has been
paralleled only by advances in semiconductor fabrication. Since the design
problems at the lower levels of abstraction became humanly intractable and
timeconsuming earlierthenthoseathigherabstraction levels,researchers and
the industry alike were forced to devote their attention first to problems such
as circuit simulation, placement, routing and floorplanning. As these prob-
lemsbecomemoremanageable, CADtoolsforlogicsimulation andsynthesis
were developed successfully and introduced into the design process. As de-
signcomplexitieshavegrownandtime-to-markethaveshrunkdrastically,both
industry and academia have begun to focus on levels of design that are even
higher then layout and logic. Since higher levels of abstraction reduce by an
orderofmagnitudethenumberofobjectsthatadesignerneedstoconsider,they
haveallowedindustrytodesignandmanufacturecomplexapplication-oriented
integrated circuitsinshorterperiodsoftime.
Followinginthefootstepsoflogicsynthesis,register-transferandhigh-level
synthesis have contributed to raising abstraction levels in the design method-
ology to the processor level. However, they are used for the design of a sin-
glecustomprocessor, anapplication-specific orcommunication componentor
an interface component. These components, along with standard processors
and memories, are used as components in systems whose design methodol-
ogy requires even higher levels of abstraction: system level. A system-level
design focuses on the specification of the systems in terms of some models
of computations using some abstract data types, as well as the transformation
or refinement of that specification into a system platform consisting of a set
of processor-level components, including generation of custom software and
hardware components. To this point, however, in spite of the fact that sys-
vi EMBEDDEDSYSTEMDESIGN:
tems have been manufactured foryears, industry and academia have not been
sufficientlyfocusedondevelopingandformalizingasystem-leveldesigntech-
nology andmethodology, eventhough therewasaclearneedforit. Thisneed
has been magnified by appearance of embedded systems, which can be used
anywhereandeverywhere,inplains,trains,houses,humans,environment, and
manufacturingandinanypossibleinfrastructure. Theyareapplicationspecific
andtightlyconstrained bydifferent requirements emanating fromtheenviron-
ment they operate in. Together with ever increasing complexities and market
pressures,thismakestheirdesignatremendouschallengeandthedevelopment
ofaclearandwell-definedsystem-level designtechnology unavoidable.
Therearetworeasonsforemphasizingmoreabstract,system-levelmethod-
ologies. Thefirstisthefactthathigh-levelabstractionsareclosertoadesigner’s
usual way of reasoning. It would be difficult to imagine, for example, how a
designer could specify, model and communicate asystem design by means of
a schematic or hundred thousand lines of VHDL or Verilog code. The more
complex the design, the more difficult it is for the designer to comprehend its
functionality when it is specified on register-transfer level of abstraction. On
theotherhand,whenasystemisdescribedwithanapplication-oriented model
of computation as a set of processes that operate on abstract data types and
communicate results through abstract channels, the designer willfind itmuch
easiertospecifyandverifyproperfunctionality andtoevaluatevariousimple-
mentations using different technologies. The second reason is that embedded
systemareusuallydefinedbytheexpertsinapplicationdomainwhounderstand
applicationverywell,buthaveonlybasicknowledgeofdesigntechnologyand
practice. System-level design technology allows them to specify, explore and
verify their embedded system products without expert knowledge of system
engineering andmanufacturing.
Itmustbeacknowledgedthatresearchonsystemdesigndidstartmanyyears
ago; at the time, however, it remained rather focused to specific domains and
communities. Forexample, thecomputer architecture community has consid-
eredwaysofpartitioningandmappingcomputationstodifferentarchitectures,
suchashypercubes, multiprocessors, massivelyparallelorheterogeneous pro-
cessors. The software engineering community has been developing methods
forspecifyingandgeneratingsoftwarecode. TheCADcommunityhasfocused
onsystemissuessuchasspecificationcapture,languages,andmodeling. How-
ever, simulation languages and models are not synthesizable or verifiable for
lack of proper design meaning and formalism. That resulted in proliferation
of models and modeling styles that arenot useful beyond themodeler’s team.
By introduction of well-defined model semantics, and corresponding model
transformations fordifferent design decision, itispossible togenerate models
automatically. Suchmodelsarealsosynthesizableandverifiable. Furthermore,
modelautomation relieves designers fromerror-prone modelcoding andeven
PREFACE vii
learningthemodelinglanguage. Thisapproach isappealing toapplication ex-
pertssincetheyneedtoknowonlytheapplicationandexperimentwithasetof
design decisions. Unfortunately, auniversally accepted theoretical framework
and CAD environments that support system design methodologies based on
theseconceptsarenotcommerciallyavailableyet,althoughsomeexperimental
versions demonstrated several orders of magnitude productivity gain. On the
other hand, embedded-system design-technology based on these concepts has
maturedtothepointthatabooksummarizingthebasicideasandresultsdevel-
opedsofarwillhelpstudents andpractitioners inembedded systemdesign.
In this book, wehave tried to include ideas and results from awide variety
of sources and research projects. However, due to the relative youth of this
field, we may have overlooked certain interesting and useful projects; for this
we apologize in advance, and hope to hear about those projects so they may
beincorporated intofuture editions. Also,thereareseveralimportant system-
level topics that, for various reasons, we have not been able to cover in detail
here, such as testing and design fortest. Nevertheless, webelieve that abook
on embedded system techniques and technology will help upgrade computer
scienceandengineeringeducationtowardsystem-levelandtowardapplication
oriented embedded systems, stimulate design automation community tomove
beyondsystem levelsimulationanddevelopsystem-level synthesis andverifi-
cation tools and support the new emerging embedded application community
tobecomemoreinnovativeandself-sustaining.
AUDIENCE
This book is intended for four different groups within the embedded system
community. First, it should be an introductory book for application-product
designers and engineers in the field of mechanical, civil, bio-medical, electri-
cal, and environmental, energy, communication, entertainment and other ap-
plication fields. This book may help them understand and design embedded
systems in their application domain without an expert knowledge of system
design methods bellow system-level. Second, this book should also appeal to
system designers and system managers, who may be interested in embedded
system methodology, software-hardware co-design and design process man-
agement. Theymayusethisbooktocreateanewsystemlevelmethodologyor
toupgradeoneexistingintheircompany. Third,thisbookcanalsobeusedby
CAD-tooldevelopers,whomaywanttousesomeofitsconceptsinexistingor
futuretoolsforspecificationcapture,designexplorationandsystemmodeling,
synthesis and verification. Finally, since the book surveys the basic concepts
andprinciplesofsystem-designtechniquesandmethodologies, includingsoft-
ware and hardware, it could be valuable to advanced teachers and academic
viii EMBEDDEDSYSTEMDESIGN:
programs that want to teach software and hardware concepts together instead
of in non-related courses. That is particularly needed in today’s embedded
systems where software and hardware are interchangeable. From this point,
the book would also be valuable for an advanced undergraduate or graduate
course targeting students who want to specialize in embedded system, design
automation and system design and engineering. Since the book covers multi-
ple aspects of system design, it would be very useful reference forany senior
projectcourseinwhichstudentsdesignarealprototypeorforgraduateproject
forsystem-leveltooldevelopment.
ORGANIZATION
Thisbook hasbeenorganized into eightchapters thatcanbedivided intofour
parts. Chapter 1 and 2 present the basic issues in embedded system design
anddiscussvarioussystem-designmethodologiesthatcanbeusedincapturing
system behavior and refining it into system implementation. Chapter 3 and 4
deal with different models of computations and system modeling at different
levelsofabstractionaswellassystemsynthesisfromthosemodels. Chapter5,
6, and 7 deal with issues and possible solutions in synthesis and verification
of software and hardware component needed ina embedded system platform.
Finally,Chapter8reviewsthekeydevelopmentsandselectedcurrentacademic
andcommercialtoolsinthefieldofsystemdesign,systemsoftwareandsystem
hardwareaswellascasestudyofembedded systemenvironments.
Given an understanding of the basic concepts defined in Chapter 1 and 2,
eachchaptershouldbeself-contained andcanbereadindependently. Wehave
used the same writing style and organization in each chapter of the book. A
typicalchapterincludesanintroductory example,definesthebasicconcepts,it
describes the main problems to be solved. It contains a description of several
possiblesolutions,methodsoralgorithmstotheproblemsthathavebeenposed,
andexplainstheadvantagesanddisadvantagesofeachapproach. Eachchapter
alsoincludesrelationshiptopreviouslypublishedworkinthefieldanddiscusses
someopenproblemsineachtopic.
Thisbook could be used inseveral different courses. Onecourse would be
forapplication expertswithonlyabasicknowledgeofcomputersengineering.
Itwouldemphasize application issues, system specification inapplication ori-
ented models of computation, system modeling and exploration as presented
in Chapter 1 - 4. The second course for embedded system designers would
emphasizesystemlanguages, specification capture, systemsynthesisandveri-
ficationwithemphasisonChapter3,Chapter4,andChapter7. Thethirdcourse
mayemphasizesystemdevelopmentwithcomponentsynthesisandtoolsasde-
scribed inChapter5-Chapter8. Inwhicheveritisused, though, wefeelthat
PREFACE ix
thisbookwillhelptofillthevacuumincomputerscienceandengineering cur-
riculum where there is need and demand for emphasis on teaching embedded
system design techniques inaddition to supporting lowerlevels ofabstraction
dealingwithcircuit, logicandarchitecture design.
Wehopethatthematerialselectionandthewritingstylewillapproachyour
expectations; wewelcomeyoursuggestions andcomments.
DanielGajski,AndreasGerstlauer, SamarAbdi,GunarSchirner
Acknowledgments
Thisbookwasinthemakingformanyyears: fromconceptstomethodologies
to experiments. Many generations of researchers at the Center for Embedded
SystemsatUCIparticipated infindingandprovingwhatworksandwhatdoes
not. Wewouldliketothankthemembersofthefirstgenerationthatestablished
basicprinciplesofembeddedsystems: FrankVahid,SanjivNarayan,JieGong
and Smita Bakshi. We would also like to acknowledge the second generation
thatbroughtusSpecCandSystemonChipEnvironment: JianwenZhu,Rainer
Doemer, Lukai Cai, Haobo Yu, Sequin Zhao, Dongwan Shin, and Jerry Peng.
Andthethirdgeneration thatmadeEmbeddedSystemEnvironment available:
LochiYu,HansuCho,YongyunHwang,InesViskic. Inaddition,wewouldlike
to acknowledge the NISC team: Mehrdad Reshadi, Bita Gorjiara and Jelena
Trajkovic for their high-level synthesis contributions and Pramod Chandraria
forhisworkondesigndrivers.
We would also like to thank Quoc-Viet Dang, who helped us with book
formatting,figurecreation,generation, andwithoutwhomthisbookwouldnot
be possible. We also want to thank our editors Matt Nelson and Brian Thill
whomadethesentencesreadableandideasflowwithoutinterruptions. Wealso
wanttothankSimoneLacinafromgrafikdesign-lacina.de foranexcellent and
artisticcover.
However,thehighestcreditsgotoGraceWuandMelanieKilianformaking
ourcenterworkflawlesslywhilewewereworkingandthinkingaboutthebook.
Last but not the least, we would like to thank Carl Harris from Springer
forencouragement andasking ateveryconference inthelast5yearsthesame
question: "WhenistheOrangebookcoming?"
Contents
Preface v
Acknowledgments xi
ListofFigures xix
ListofTables xxv
1. INTRODUCTION 1
1.1 System-DesignChallenges 1
1.2 AbstractionLevels 3
1.2.1 Y-Chart 3
1.2.2 Processor-LevelBehavioralModel 5
1.2.3 Processor-levelstructuralmodel 7
1.2.4 Processor-levelsynthesis 10
1.2.5 System-LevelBehavioralModel 13
1.2.6 SystemStructuralModel 14
1.2.7 SystemSynthesis 14
1.3 SystemDesignMethodology 18
1.3.1 Missingsemantics 20
1.3.2 ModelAlgebra 21
1.4 System-LevelModels 23
1.5 PlatformDesign 27
1.6 SystemDesignTools 29
1.7 Summary 32
2. SYSTEMDESIGNMETHODOLOGIES 35
2.1 Bottom-upMethodology 35
2.2 Top-downMethodology 37
2.3 Meet-in-the-middleMethodology 38
xiv EMBEDDEDSYSTEMDESIGN:
2.4 PlatformMethodology 40
2.5 FPGAMethodology 43
2.6 System-levelSynthesis 44
2.7 ProcessorSynthesis 45
2.8 Summary 47
3. MODELING 49
3.1 ModelsofComputation 50
3.1.1 Process-BasedModels 52
3.1.2 State-BasedModels 58
3.2 SystemDesignLanguages 65
3.2.1 NetlistsandSchematics 66
3.2.2 Hardware-DescriptionLanguages 66
3.2.3 System-LevelDesignLanguages 68
3.3 SystemModeling 68
3.3.1 DesignProcess 69
3.3.2 AbstractionLevels 71
3.4 ProcessorModeling 72
3.4.1 ApplicationLayer 73
3.4.2 OperatingSystemLayer 75
3.4.3 HardwareAbstractionLayer 78
3.4.4 HardwareLayer 80
3.5 CommunicationModeling 83
3.5.1 ApplicationLayer 84
3.5.2 PresentationLayer 88
3.5.3 SessionLayer 90
3.5.4 NetworkLayer 92
3.5.5 TransportLayer 93
3.5.6 LinkLayer 94
3.5.7 StreamLayer 98
3.5.8 MediaAccessLayer 99
3.5.9 ProtocolandPhysicalLayers 100
3.6 SystemModels 102
3.6.1 SpecificationModel 103
3.6.2 NetworkTLM 104
3.6.3 ProtocolTLM 106
3.6.4 BusCycle-AccurateModel(BCAM) 107
3.6.5 Cycle-AccurateModel(CAM) 108