A Hands-On Guide to Designing Embedded Systems

This book introduces readers to the design of embedded systems. Techniques and principles that can be applied by the engineer to understand challenges before starting a project are presented. It provides a framework for developing embedded systems that will give readers a better understanding of the issues at hand to develop a solution, thereby lowering technical and programmatic risk and expediting time to market. Programmatic and system considerations are introduced, offering an overview of the engineering life cycle when developing an electronic solution from concept to completion. Hardware design architecture is discussed to help develop an architecture to meet the requirements placed upon it, along with the trade-offs required to achieve the budget. The FPGA development life cycle and the inputs and outputs from each stage, including design, test benches, synthesis, mapping, place and route, and power estimation, are also presented. Finally, the importance of reliability is explained, including why it needs to be considered, the current standards that exist, and the impact of not considering it. Written by experts in the field, this is the first book by engineers in the trenches that presents embedded systems design on a practical level.

1139847358
A Hands-On Guide to Designing Embedded Systems

This book introduces readers to the design of embedded systems. Techniques and principles that can be applied by the engineer to understand challenges before starting a project are presented. It provides a framework for developing embedded systems that will give readers a better understanding of the issues at hand to develop a solution, thereby lowering technical and programmatic risk and expediting time to market. Programmatic and system considerations are introduced, offering an overview of the engineering life cycle when developing an electronic solution from concept to completion. Hardware design architecture is discussed to help develop an architecture to meet the requirements placed upon it, along with the trade-offs required to achieve the budget. The FPGA development life cycle and the inputs and outputs from each stage, including design, test benches, synthesis, mapping, place and route, and power estimation, are also presented. Finally, the importance of reliability is explained, including why it needs to be considered, the current standards that exist, and the impact of not considering it. Written by experts in the field, this is the first book by engineers in the trenches that presents embedded systems design on a practical level.

124.0 In Stock
A Hands-On Guide to Designing Embedded Systems

A Hands-On Guide to Designing Embedded Systems

A Hands-On Guide to Designing Embedded Systems

A Hands-On Guide to Designing Embedded Systems

Hardcover

$124.00 
  • SHIP THIS ITEM
    In stock. Ships in 2-4 days.
  • PICK UP IN STORE

    Your local store may have stock of this item.

Related collections and offers


Overview

This book introduces readers to the design of embedded systems. Techniques and principles that can be applied by the engineer to understand challenges before starting a project are presented. It provides a framework for developing embedded systems that will give readers a better understanding of the issues at hand to develop a solution, thereby lowering technical and programmatic risk and expediting time to market. Programmatic and system considerations are introduced, offering an overview of the engineering life cycle when developing an electronic solution from concept to completion. Hardware design architecture is discussed to help develop an architecture to meet the requirements placed upon it, along with the trade-offs required to achieve the budget. The FPGA development life cycle and the inputs and outputs from each stage, including design, test benches, synthesis, mapping, place and route, and power estimation, are also presented. Finally, the importance of reliability is explained, including why it needs to be considered, the current standards that exist, and the impact of not considering it. Written by experts in the field, this is the first book by engineers in the trenches that presents embedded systems design on a practical level.


Product Details

ISBN-13: 9781630816834
Publisher: Artech House, Incorporated
Publication date: 10/31/2021
Pages: 252
Product dimensions: 7.20(w) x 10.20(h) x 0.80(d)

About the Author

Adam Taylor is founder and lead consultant at Adiuvo Engineering & Training Ltd. He received his BEng in electronic engineering from Sheffield Hallam University. He is a Senior Member of IEEE.

Dan Binnun is a cofounder and president of E3 DESIGNERS. He received his BSEE from the University of Hartford.

Saket Srivastava is a senior lecturer in electrical engineering at the University of Lincoln. He received his Ph.D. in electrical engineering at the University of South Florida.

Table of Contents

Acknowledgments xi

Introduction xv

Chapter 1 Programmatic and System-Level Considerations 1

1.1 Introduction: Sensors Think 1

1.2 Product Development Stages 2

1.3 Product Development Stages: Tailoring 5

1.4 Product Development: After Launch 6

1.5 Requirements 7

1.5.1 The V-Model 10

1.5.2 SensorsThink: Product Requirements 12

1.5.3 Creating Useful Requirements 13

1.5.4 Requirements: Finishing Up 16

1.6 Architectural Design 16

1.6.1 SEBoK: An Invaluable Resource 17

1.6.2 SensorsThink: Back to the Journey 20

1.6.3 Systems Engineering: An Overview 21

1.6.4 Architecting the System, Logically 23

1.6.5 Keep Things in Context (Diagrams) 24

1.6.6 Monitor Your Activity (Diagrams) 26

1.6.7 Know the Proper Sequence (Diagrams) 28

1.6.8 Architecting the System Physically 28

1.6.9 Physical Architecture: Playing with Blocks 29

1.6.10 Trace Your Steps 31

1.6.11 System Verification and Validation: Check Your Work 32

1.7 Engineering Budgets 33

1.7.1 Types of Budgets 33

1.7.2 Engineering Budgets: Some Examples 34

1.7.3 Engineering Budgets: Finishing Up 38

1.8 Interface Control Documents 38

1.8.1 Sticking Together: Signal Grouping 39

1.8.2 Playing with Legos: Connectorization 41

1.8.3 Talking Among Yourselves: Internal ICDs 42

1.9 Verification 42

1.9.1 Verifying Hardware 43

1.9.2 How Much Testing Is Enough? 43

1.9.3 Safely Navigating the World of Testing 44

1.9.4 A Deeper Dive into Derivation (of Test Cases) 45

1.10 Engineering Governance 47

1.10.1 Not Just Support for Design Reviews 48

1.10.2 Engineering Rule Sets 48

1.10.3 Compliance 49

1.10.4 Review Meetings 49

References 50

Chapter 2 Hardware Design Considerations 53

2.1 Component Selection 53

2.1.1 Key Component Identification for the SoC Platform 53

2.1.2 Key Component Selection Example: The SoC 57

2.1.3 Key Component Selection Example: Infrared Sensor 63

2.1.4 Key Component Selection: Finishing Up 65

2.2 Hardware Architecture 66

2.2.1 Hardware Architecture for the SoC Platform 66

2.2.2 Hardware Architecture: Interfaces 70

2.2.3 Hardware Architecture: Data Flows 72

2.2.4 -Hardware Architecture: Finishing Up 72

2.3 Designing the System 72

2.3.1 What to Worry About 73

2.3.2 Power Supply Analysis, Architecture, and Simulation 73

2.3.3 Processor and FPGA Pinout Assignments 74

2.3.4 System Clocking Requirements 75

2.3.5 System Reset Requirements 75

2.3.6 System Programming Scheme 75

2.3.7 Summary 76

2.3.8 Example: Zynq Power Sequence Requirements 76

2.4 Decoupling Your Components 78

2.4.1 Decoupling: By the Book 78

2.4.2 To Understand the Component, You Must Be the Component 78

2.4.3 Types of Decoupling 79

2.4.4 Example: Zynq-7000 Decoupling 80

2.4.5 Additional Thoughts: Specialized Decoupling 81

2.4.6 Additional Thoughts: Simulation 81

2.5 Connect with Your System 82

2.5.1 Contemplating Connectors 82

2.5.2 Example: System Communications 83

2.6 Extend the Life of the System: De-Rate 87

2.6.1 Why De-Rate? 87

2.6.2 What Can Be De-Rated? 87

2.6.3 Example: De-Rating the Zynq-7000 89

2.6.4 Additional Thoughts: Exceptions to the Rule 89

2.7 Test, Test, Test 90

2.7.1 Back to Basics: Pre-Power-On Checklist 90

2.7.2 Check for Signs of Life: Crawl Before Walking 93

2.7.3 Roll Up Your Sleeves and Get Ready to Run 94

2.7.4 Example: I2C Interface 95

2.7.5 Additional Thoughts 97

2.8 Integrity: Important for Electronics 97

2.8.1 Power Integrity 98

2.8.2 Signal Integrity 98

2.8.3 Digging Deeper into Power Integrity 99

2.8.4 Digging Deeper into Signal Integrity 100

2.8.5 Example: ULPI Pre-Layout Analysis 102

2.8.6 Suggested Additional Reading 104

2.9 PCB Layout: Not for the Faint of Heart 104

2.9.1 Floor Planning 106

2.9.2 Follow the Rats 108

2.9.3 Mechanical Constraints 110

2.9.4 Electrical Constraints 111

2.9.5 Stack-Up Design 113

2.9.6 Experience Matters 119

References 120

Chapter 3 FPGA Design Considerations 123

3.1 Introduction 123

3.2 FPGA Development Process 124

3.2.1 Introduction to the Target Device 126

3.2.2 FPGA Requirements 127

3.2.3 FPGA Architecture 129

3.3 Accelerating Design Using IP Libraries 130

3.4 Pin Planning and Constraints 131

3.4.1 Physical Constraints 134

3.4.2 Timing Constraints 137

3.4.3 Timing Exceptions 138

3.4.4 Physical Constraints: Placement 139

3.5 Clock Domain Crossing 140

3.6 Test Bench and Verification 143

3.6.1 What Is Verification? 143

3.6.2 Self-Checking Test Benches 144

3.6.3 Corner Cases, Boundary Conditions, and Stress Testing 145

3.6.4 Code Coverage 146

3.6.5 Test Functions and Procedures 146

3.6.6 Behavioral Models 147

3.6.7 Using Text IO Files 147

3.6.8 What Else Might We Consider? 148

3.7 Finite State Machine Design 148

3.7.1 Defining a State Machine 148

3.7.2 Algorithmic State Diagrams 149

3.7.3 Moore or Mealy: What Should I Choose? 149

3.7.4 Implementing the State Machine 150

3.7.5 State Machine Encoding 151

3.7.6 Increasing Performance of State Machines 153

3.7.7 Good Design Practices for FPGA Implementation 155

3.7.8 FUR Lepton Interface 155

3.8 Defensive State Machine Design 157

3.8.1 Detection Schemes 157

3.8.2 Hamming Schemes 159

3.8.3 Deadlock and Other Issues 160

3.8.4 Implementing Defensive State Machines in Xilinx Devices 161

3.9 How Does FPGA Do Math? 162

3.9.1 Representation of Numbers 162

3.10 Fixed Point Mathematics 163

3.10.1 Fixed-Point Rules 164

3.10.2 Overflow 166

3.10.3 Real-World Implementation 167

3.10.4 RTL Implementation 169

3.11 Polynomial Approximation 170

3.11.1 The Challenge with Some Algorithms 171

3.11.2 Capitalize on FPGA Resources 172

3.11.3 Multiple Trend Lines Selected by Input Value 173

3.12 The CORDIC Algorithm 173

3.13 Convergence 176

3.14 Where Are These Used? 176

3.15 Modeling in Excel 176

3.16 Implementing the CORDIC 177

3.17 Digital Filter Design and Implementation 179

3.17.1 Filter Types and Topologies 179

3.17.2 Frequency Response 181

3.17.3 Impulse Response 181

3.17.4 Step Response 182

3.17.5 Windowing the Filter 182

3.18 Fast Fourier Transforms 184

3.18.1 Time or Frequency Domain? 184

3.19 How Do We Get There? 184

3.19.1 Where Do We Use These? 186

3.19.2 FPGA-Based Implementation 186

3.19.3 Higher-Speed Sampling 188

3.20 Working with ADC and DAC 189

3.20.1 ADC and DAC Key Parameters 189

3.20.2 The Frequency Spectrum 191

3.20.3 Communication 191

3.20.4 DAC Filtering 192

3.20.5 In-System Test 192

3.21 High-Level Synthesis 193

Chapter 4 When Reliability Counts 199

4.1 Introduction to Reliability 199

4.2 Mathematical Interpretation of System Reliability 201

4.2.1 The Bathtub Curve 202

4.2.2 Failure Rate (A) 202

4.2.3 Early Life Failure Rate 204

4.2.4 Key Terms 205

4.2.5 Repairable and Nonrepairable Systems 206

4.2.6 MTTF, MTBF, and MTTR 206

4.2.7 Maintainability 208

4.2.8 Availability 209

4.3 Calculating System Reliability 210

4.3.1 Scenario 1: All Critical Components Connected in Series 212

4.3.2 Scenario 2: All Critical Components Connected in Parallel 215

4.3.3 Scenario 3: All Critical Components Are Connected in Series-Parallel Configuration 216

4.4 Faults, Errors, and Failure 216

4.4.1 Classification of Faults 218

4.4.2 Fault Prevention Versus Fault Tolerance: Which One Can Address System Failure Better? 219

4.5 Fault Tolerance Techniques 221

4.5.1 Redundancy Technique for Hardware Fault Tolerance' 223

4.5.2 Software Fault Tolerance 224

4.6 Worst-Case Circuit Analysis 227

4.6.1 Sources of Variation 230

4.6.2 Numerical Analysis Using SPICE Modeling 233

Selected Bibliography 240

About the Authors 241

Index 243

From the B&N Reads Blog

Customer Reviews