ورود به حساب

نام کاربری گذرواژه

گذرواژه را فراموش کردید؟ کلیک کنید

حساب کاربری ندارید؟ ساخت حساب

ساخت حساب کاربری

نام نام کاربری ایمیل شماره موبایل گذرواژه

برای ارتباط با ما می توانید از طریق شماره موبایل زیر از طریق تماس و پیامک با ما در ارتباط باشید


09117307688
09117179751

در صورت عدم پاسخ گویی از طریق پیامک با پشتیبان در ارتباط باشید

دسترسی نامحدود

برای کاربرانی که ثبت نام کرده اند

ضمانت بازگشت وجه

درصورت عدم همخوانی توضیحات با کتاب

پشتیبانی

از ساعت 7 صبح تا 10 شب

دانلود کتاب EMBEDDED SYSTEMS A Contemporary Design Tool

دانلود کتاب سیستم های جاسازی شده یک ابزار طراحی معاصر

EMBEDDED SYSTEMS A Contemporary Design Tool

مشخصات کتاب

EMBEDDED SYSTEMS A Contemporary Design Tool

ویرایش: 2 
نویسندگان:   
سری:  
ISBN (شابک) : 9781119457503, 1119457505 
ناشر: JOHN WILEY 
سال نشر: 2018 
تعداد صفحات: 1082 
زبان: English 
فرمت فایل : PDF (درصورت درخواست کاربر به PDF، EPUB یا AZW3 تبدیل می شود) 
حجم فایل: 36 مگابایت 

قیمت کتاب (تومان) : 39,000



ثبت امتیاز به این کتاب

میانگین امتیاز به این کتاب :
       تعداد امتیاز دهندگان : 18


در صورت تبدیل فایل کتاب EMBEDDED SYSTEMS A Contemporary Design Tool به فرمت های PDF، EPUB، AZW3، MOBI و یا DJVU می توانید به پشتیبان اطلاع دهید تا فایل مورد نظر را تبدیل نمایند.

توجه داشته باشید کتاب سیستم های جاسازی شده یک ابزار طراحی معاصر نسخه زبان اصلی می باشد و کتاب ترجمه شده به فارسی نمی باشد. وبسایت اینترنشنال لایبرری ارائه دهنده کتاب های زبان اصلی می باشد و هیچ گونه کتاب ترجمه شده یا نوشته شده به فارسی را ارائه نمی دهد.


توضیحاتی درمورد کتاب به خارجی



فهرست مطالب

Cover
Title Page
Copyright
Contents
About the Author
Foreword
Preface
Acknowledgment
About the Companion Website
PART 1 HARDWARE AND SOFTWARE INFRASTRUCTURE
Chapter 1 The Hardware Side – Part 1: An Introduction
	1.1 Introduction
	1.2 The Hardware Side – Getting Started
	1.3 The Core Level
		1.3.1 The Microprocessor
		1.3.2 The Microcomputer
		1.3.3 The Microcontroller
		1.3.4 The Digital Signal Processor
	1.4 Representing Information
		1.4.1 Word Size
	1.5 Understanding Numbers
		1.5.1 Resolution
		1.5.2 Propagation of Error
			1.5.2.1 Addition
			1.5.2.2 Multiplication
	1.6 Addresses
	1.7 Instructions
	1.8 Registers – A First Look
	1.9 Embedded Systems – An Instruction Set View
		1.9.1 Instruction Set – Instruction Types
		1.9.2 Data Transfer Instructions
			1.9.2.1 Addressing Modes
		1.9.3 Execution Flow
			1.9.3.1 Sequential Flow
			1.9.3.2 Branch
			1.9.3.3 If‐else Construct
			1.9.3.4 Loop
			1.9.3.5 Procedure or Function Call
			1.9.3.6 Arithmetic and Logic
	1.10 Embedded Systems – A Register View
		1.10.1 The Basic Register
		1.10.2 Register Operations
			1.10.2.1 Write to a Register
			1.10.2.2 Read from a Register
	1.11 Register Transfer Language
	1.12 Register View of a Microprocessor
		1.12.1 The Datapath
		1.12.2 Processor Control
			1.12.2.1 Fetch
			1.12.2.2 Decode
			1.12.2.3 Execute
			1.12.2.4 Next
	1.13 Summary
	1.14 Review Questions
	1.15 Thought Questions
	1.16 Problems
Chapter 2 The Hardware Side – Part 2: Combinational Logic – A Practical View
	2.1 Introduction
	2.2 A Look at Real‐World Gates – Part 1: Signal Levels
		2.2.1 Logic Levels
		2.2.2 A First Look Inside the Logic Gate
		2.2.3 Fan‐In and Fan‐Out
	2.3 A Look at Real‐World Gates – Part 2: Time
		2.3.1 Rise and Fall Times
		2.3.2 Propagation Delay
		2.3.3 Race Conditions and Hazards
			2.3.3.1 Static Hazard
			2.3.3.2 Dynamic Hazard
	2.4 A Look at Real‐World Gates – Part 3: Signal Behavior in the Real World – the Legacy of Early Physicists
	2.5 Look For the Guilty – A First Look at Signal Quality
		2.5.1 Resistors
			2.5.1.1 A Discrete Component First‐Order Resistor Model
		2.5.2 Capacitors
			2.5.2.1 Discrete Component First‐Order Capacitor Model
		2.5.3 Inductors
			2.5.3.1 Magnetic Field Lines – The First Principle
			2.5.3.2 Magnetic Field Lines – The Second Principle
			2.5.3.3 Magnetic Field Lines – The Third Principle
	2.6 Inductance in Action
		2.6.1 Wires and Conductors
	2.7 Logic Circuit Models and Parasitic Components
		2.7.1 First‐Order RC Circuit Model
		2.7.2 First‐Order RL Circuit Model
		2.7.3 Second‐Order Series RLC Circuit Model
		2.7.4 Tristate Drivers
			2.7.4.1 Open Gate Inputs
	2.8 Testing Combinational Circuits – Introduction and Philosophy
	2.9 Modeling, Simulation, and Tools
	2.10 Structural Faults
		2.10.1 Stuck‐at Faults
			2.10.1.1 Stuck‐at‐Zero Faults
			2.10.1.2 Stuck‐at‐One Faults
		2.10.2 Open Circuit Faults
		2.10.3 Bridging Faults
			2.10.3.1 Nonfeedback Bridge Faults
			2.10.3.2 Feedback Bridge Faults
	2.11 Functional Faults
		2.11.1 Hazards and Race Conditions
	2.12 Summary
	2.13 Review Questions
	2.14 Thought Questions
	2.15 Problems
Chapter 3 The Hardware Side – Part 3: Storage Elements and Finite‐State Machines – A Practical View
	3.1 Introduction
	3.2 The Concepts of State and Time
		3.2.1 Time
		3.2.2 State
		3.2.3 State Changes
	3.3 The State Diagram
	3.4 Finite‐State Machines – A Theoretical Model
	3.5 Designing Finite–State Machines – Part 1: Registers
		3.5.1 Storage Registers
		3.5.2 Shift Registers
			3.5.2.1 Shift Right Shift Register
			3.5.2.2 Parallel In/Serial Out – Serial In/Parallel Out Left Shift Registers
		3.5.3 Linear Feedback Shift Registers
	3.6 Designing Finite‐State Machines – Part 2: Counting and Dividing
		3.6.1 Dividers
			3.6.1.1 Divide by Two
		3.6.2 Asynchronous Dividers and Counters
		3.6.3 Synchronous Dividers and Counters
		3.6.4 Johnson Counters
			3.6.4.1 Two‐Stage Johnson Counter
			3.6.4.2 Three‐ or Greater Stage Johnson Counter
	3.7 Practical Considerations – Part 1: Timing in Latches and Flip‐Flops
		3.7.1 Gated Latches
		3.7.2 Flip‐Flops
		3.7.3 Propagation Delays
		3.7.4 Timing Margin
	3.8 Practical Considerations – Part 2: Clocks and Clock Distribution
		3.8.1 The Source
			3.8.1.1 Frequency
			3.8.1.2 Precision and Stability
		3.8.2 Designing a Clock System
			3.8.2.1 Single‐Phase Clocks
			3.8.2.2 Multiple‐Phase Clocks
			3.8.2.3 More Than Four Phases
			3.8.2.4 Multiple Clocks Versus Multiple Phases
			3.8.2.5 Gating the Clock
	3.9 Testing Sequential Circuits
		3.9.1 The Finite‐State Machine Model Revisited
		3.9.2 Sequential Circuit Test – A First Look
			3.9.2.1 Defining Homing and Transfer Sequences
		3.9.3 Scan Design Techniques
		3.9.4 Boundary Scan – Extending Scan‐Path Techniques
	3.10 Summary
	3.11 Review Questions
	3.12 Thought Questions
	3.13 Problems
Chapter 4 Memories and the Memory Subsystem
	4.1 Introduction
	4.2 Classifying Memory
	4.3 A General Memory Interface
	4.4 ROM Overview
		4.4.1 Read Operation
	4.5 Static RAM Overview
		4.5.1 Write Operation
		4.5.2 Read Operation
	4.6 Dynamic RAM Overview
		4.6.1 Read Operation
		4.6.2 Write Operation
		4.6.3 Refresh Operation
	4.7 Chip Organization
	4.8 Terminology
	4.9 A Memory Interface in Detail
	4.10 An SRAM Design
		4.10.1 The Memory Array
		4.10.2 Reading and Writing
		4.10.3 Write
		4.10.4 Read
	4.11 A DRAM Design
		4.11.1 DRAM Timing Analysis
			4.11.1.1 Core Components
		4.11.2 DRAM Refresh
	4.12 The DRAM Memory Interface
		4.12.1 Refresh Timing
		4.12.2 Refresh Address
		4.12.3 Refresh Arbitration
	4.13 The Memory Map
	4.14 Memory Subsystem Architecture
	4.15 Basic Concepts of Caching
		4.15.1 Locality of Reference
		4.15.2 Cache System Architecture
	4.16 Designing a Cache System
		4.16.1 A High‐Level Description
	4.17 Caching – A Direct Mapped Implementation
	4.18 Caching – An Associative Mapping Cache Implementation
	4.19 Caching – A Block‐Set Associative Mapping Cache Implementation
	4.20 Dynamic Memory Allocation
		4.20.1 Swapping
		4.20.2 Overlays
		4.20.3 Multiprogramming
			4.20.3.1 Fixed
			4.20.3.2 Variable Number
	4.21 Testing Memories
		4.21.1 RAM Memory
		4.21.2 ROM Memory
	4.22 Summary
	4.23 Review Questions
	4.24 Thought Questions
	4.25 Problems
Chapter 5 An Introduction to Software Modeling
	5.1 Introduction
	5.2 An Introduction to UML
	5.3 UML Diagrams
	5.4 Use Cases
		5.4.1 Writing a Use Case
	5.5 Class Diagrams
		5.5.1 Class Relationships
			5.5.1.1 Inheritance or Generalization
			5.5.1.2 Interface
			5.5.1.3 Containment
	5.6 Dynamic Modeling with UML
	5.7 Interaction Diagrams
		5.7.1 Call and Return
		5.7.2 Create and Destroy
		5.7.3 Send
	5.8 Sequence Diagrams
	5.9 Fork and Join
	5.10 Branch and Merge
	5.11 Activity Diagram
	5.12 State Chart Diagrams
		5.12.1 Events
		5.12.2 State Machines and State Chart Diagrams
			5.12.2.1 UML State Chart Diagrams
			5.12.2.2 Transitions
			5.12.2.3 Guard Conditions
			5.12.2.4 Composite States
	5.13 Dynamic Modeling with Structured Design Methods
		5.13.1 Brief Introduction to the Structured Design Philosophy
		5.13.2 Data and Control Flow Diagrams
			5.13.2.1 The Elements
	5.14 Summary
	5.15 Review Questions
	5.16 Thought Questions
	5.17 Problems
Chapter 6 The Software Side – Part 1: The C Program
	6.1 Introduction
	6.2 Software and Its Manifestations
		6.2.1 Combining Hardware and Software
		6.2.2 High‐Level Language
		6.2.3 Preprocessor
		6.2.4 Cross Compiler
		6.2.5 Assembler
		6.2.6 Linker and Loader
		6.2.7 Storing
	6.3 An Embedded C Program
		6.3.1 A Program
		6.3.2 Developing Embedded Software
			6.3.2.1 Abstraction
	6.4 C Building Blocks
		6.4.1 Fundamental Data – What's in a Name?
			6.4.1.1 Identifiers in C
		6.4.2 Defining Variables – Giving Them a Name and a Value
		6.4.3 Defining Variables – Giving Them a Type, Scope, and Storage Class
			6.4.3.1 Type
			6.4.3.2 The const Qualifier
			6.4.3.3 Variable Names Revisited
			6.4.3.4 Type Conversions
			6.4.3.5 Scope
			6.4.3.6 Storage Class
	6.5 C Program Structure
		6.5.1 Separate Compilation
		6.5.2 Translation Units
		6.5.3 Linking and Linkage
			6.5.3.1 Linking
			6.5.3.2 Linkage
		6.5.4 Where C Finds Functions
		6.5.5 Makefiles
		6.5.6 Standard and Custom Libraries
		6.5.7 Debug and Release Builds
	6.6 Summary
	6.7 Review Questions
	6.8 Thought Questions
	6.9 Problems
Chapter 7 The Software Side – Part 2: Pointers and Functions
	7.1 Introduction
	7.2 Bitwise Operators
		7.2.1 Bit Manipulation Operations
		7.2.2 Testing, Resetting, and Setting Bits
		7.2.3 Arithmetic Operations
	7.3 Pointer Variables and Memory Addresses
		7.3.1 Getting Started
		7.3.2 Simple Pointer Arithmetic
			7.3.2.1 Pointer Comparison
		7.3.3 Const Pointers
		7.3.4 Generic and NULL Pointers
			7.3.4.1 Generic Pointers
			7.3.4.2 Null Pointers
	7.4 The Function
		7.4.0
			7.4.1.1 Function Header
			7.4.1.2 Function Name
			7.4.1.3 Arguments or Parameter List
			7.4.1.4 Return
			7.4.1.5 The Function Body
		7.4.2 Using a Function
		7.4.3 Pass By Value
		7.4.4 Pass By Reference
		7.4.5 Function Name Scope
		7.4.6 Function Prototypes
		7.4.7 Nesting Functions
	7.5 Pointers to Functions
	7.6 Structures
		7.6.1 The Struct
		7.6.2 Initialization
		7.6.3 Access
		7.6.4 Operations
		7.6.5 Structs as Data Members
			7.6.5.1 Accessing Members
			7.6.5.2 Initialization and Assignment
			7.6.5.3 Functions
		7.6.6 Pointers to Structs
			7.6.6.1 Accessing Members
		7.6.7 Passing Structs and Pointers to Structs
	7.7 The Interrupt
		7.7.1 The Interrupt Control Flow
		7.7.2 The Interrupt Event
		7.7.3 The Interrupt Service Routine – ISR
		7.7.4 The Interrupt Vector Table
		7.7.5 Control of the Interrupt
			7.7.5.1 Enable–Disable
			7.7.5.2 Recognizing an Interrupting Event
			7.7.5.3 Interrupting and Masking an Interrupting Event
	7.8 Summary
	7.9 Review Questions
	7.10 Thought Questions
	7.11 Problems
Part 2 DEVELOPING THE FOUNDATION
Chapter 8 Safety, Security, Reliability, and Robust Design
	8.1 Introduction
	8.2 Safety
	8.3 Reliability
	8.4 Faults, Errors, and Failures
	8.5 Another Look at Reliability
	8.6 Some Real‐World Examples
		8.6.1 Big Word … Small Register
		8.6.2 It's My Turn – Not Yours
		8.6.3 Where Do I Put My Stuff?
	8.7 Single‐Point and Common Mode Failure Model
	8.8 Safe Specifications
	8.9 Safe, Secure, and Robust Designs
		8.9.1 Understanding System Requirements
		8.9.2 Managing Essential Information
		8.9.3 The Review Process
		8.9.4 Bug Lists
		8.9.5 Errors and Exceptions
		8.9.6 Use the Available Tools
	8.10 Safe and Robust Designs – The System
	8.11 System Functional Level Considerations
		8.11.1 Control and Alarm Subsystems
		8.11.2 Memory and Bus Subsystems
		8.11.3 Data Faults and the Communications Subsystem
		8.11.4 Power and Reset Subsystems
		8.11.5 Peripheral Device Subsystems
		8.11.6 Clock Subsystem
	8.12 System Architecture Level Considerations
		8.12.1 Fail Operational2/Fail Operational Capability
			8.12.1.1 Same Design
			8.12.1.2 Alternative Designs
		8.12.2 Reduced Capability
			8.12.2.1 Lightweight Redundancy
			8.12.2.2 Monitor Only
	8.13 Busses – The Subsystem Interconnect
		8.13.1 The Star Configuration
		8.13.2 The Multidrop Bus Configuration
		8.13.3 The Ring Configuration
	8.14 Data and Control Faults – Data Boundary Values
		8.14.1 Type Conformance
		8.14.2 Boundary Values
	8.15 Data and Control Faults – The Communications Subsystem
		8.15.1 Damaged Data
			8.15.1.1 Detectability
			8.15.1.2 Extent
			8.15.1.3 Response
		8.15.2 Managing Damaged Data
			8.15.2.1 Parity
			8.15.2.2 Linear Codes
	8.16 The Power Subsystem
		8.16.1 Full Operation
		8.16.2 Reduced Operation
		8.16.3 Backup Operation
	8.17 Peripheral Devices – Built‐in Self‐Test (BIST)
		8.17.1 Self‐Tests
		8.17.2 Busses
		8.17.3 ROM Memory
		8.17.4 RAM Memory
			8.17.4.1 Peripheral Devices
			8.17.4.2 What to Do If a Test Fails?
	8.18 Failure Modes and Effects Analysis
	8.19 Security – Look Behind You
	8.20 Understanding the Problem – Looking at the System
	8.21 Analyzing the Problem – Looking at Potential Vulnerabilities
	8.22 Understanding the Problem – Looking at the Attacks
		8.22.1 Looking at the Software
		8.22.2 Looking at the Hardware
	8.23 Dealing with the Problem – Protecting Against the Attacks
		8.23.1 Protecting the Software
			8.23.1.1 First Steps
			8.23.1.2 Second Steps
			8.23.1.3 Third Steps
			8.23.1.4 Fourth Steps
		8.23.2 Software Testing Tools
		8.23.3 Protecting the Hardware
			8.23.3.1 First Steps
			8.23.3.2 Second Steps
			8.23.3.3 Third Steps
		8.23.4 Protecting a Network Interface
			8.23.4.1 First Steps
			8.23.4.2 Second Steps
		8.23.5 Firewall
	8.24 Closure
	8.25 Tomorrow
	8.26 Summary
	8.27 Review Questions
	8.28 Thought Questions
	8.29 Problems
Chapter 9 Embedded Systems Design and Development – Hardware–Software Co‐Design
	9.1 Introduction
	9.2 System Design and Development
		9.2.1 Getting Ready – Start Thinking
		9.2.2 Getting Started
	9.3 Life‐Cycle Models
		9.3.1 The Waterfall Model
		9.3.2 The V Cycle Model
		9.3.3 The Spiral Model
		9.3.4 Rapid Prototyping – Incremental
	9.4 Problem Solving – Six Steps To Design
	9.5 Hardware–Software Co‐Design
		9.5.1 The First Steps
		9.5.2 Traditional Embedded Systems Development
	9.6 History
		9.6.1 Advantages of the Co‐Design Methodology
	9.7 Co‐Design Process Overview
	9.8 The Co‐Design Process
	9.9 Laying the Foundation
	9.10 Identifying the Requirements
	9.11 Formulating the Requirements Specification
		9.11.1 The Environment
			9.11.1.1 Characterizing External Entities
		9.11.2 The System
			9.11.2.1 Characterizing the System
	9.12 The System Design Specification
		9.12.1 The System
		9.12.2 Quantifying the System
			9.12.2.0 Quantifying the Specification
	9.13 System Requirements Versus System Design Specifications
	9.14 Executing the Hardware–Software Co‐Design Process
	9.15 Functional Decomposition
		9.15.0 Identifying the Functions
		9.15.0 Functional Decomposition
	9.16 Partitioning and Mapping to an Architecture
		9.16.1 Initial Thoughts
		9.16.2 Coupling
		9.16.3 Cohesion
		9.16.4 A Few More Considerations
		9.16.5 Approaches to Partitioning and Mapping
			9.16.5.1 The Approach
			9.16.5.2 The Method
		9.16.6 Evaluation of a Partition
			9.16.6.0 Mapping to Hardware and Software
	9.17 Architectural Design
		9.17.1 Mapping Functions to Hardware
		9.17.2 Hardware and Software Specification and Design
			9.17.2.0 Developing the Architecture
	9.18 Functional Model Versus Architectural Model
		9.18.1 The Functional Model
		9.18.2 The Architectural Model
		9.18.3 The Need for Both Models
	9.19 Modeling Tools and Languages for Co‐Design
		9.19.1 Why are We Modeling?
		9.19.2 What are We Modeling?
		9.19.3 Characterizing the Model
		9.19.4 Classes of MoCs
			9.19.4.1 Conceptual Model
			9.19.4.2 Analytic Model
		9.19.5 A Look at Some Models
			9.19.5.1 The Logic Circuit
			9.19.5.2 The Random Access Machine – RAM
			9.19.5.3 The Turing Machine
			9.19.5.4 The Pushdown Automaton Machine
			9.19.5.5 The Basic Finite State Machine
			9.19.5.6 Communicating Finite State Machines
			9.19.5.7 Extended FSM
			9.19.5.8 Co‐Design FSM
			9.19.5.9 Program State Machines
			9.19.5.10 UML State Charts
			9.19.5.11 Petri Nets
			9.19.5.12 Kahn Process Network
			9.19.5.13 Control Flow – Data Flow – CDFG Graphs
	9.20 Co‐Synthesis
		9.20.1 Constraints
		9.20.2 Software Synthesis
			9.20.2.1 System Characterization
			9.20.2.2 Scheduling
			9.20.2.3 Synthesis Methods
	9.21 Implementing The System
		9.21.1 Analyzing the System Design
			9.21.1.1 Static Analysis
			9.21.1.2 Dynamic Analysis
	9.22 Co‐Simulation
		9.22.1 Tools Supporting Modeling
		9.22.2 Types of Simulations
		9.22.3 Approaches
			9.22.3.1 Detailed Processor Model
			9.22.3.2 Cycle‐Based Simulation – Bus Model
			9.22.3.3 Instruction Set Architecture – ISA Mode
			9.22.3.4 Compiled Model
			9.22.3.5 Hardware Model
			9.22.3.6 Master Slave Model
			9.22.3.7 Distributed Co‐Simulation
			9.22.3.8 Heterogeneous Modeling – The Ptolemy Project
			9.22.3.9 Domains
			9.22.3.10 Classes of MoCs
	9.23 Co‐Verification
		9.23.1 Hardware–Software Co‐Verification
		9.23.2 Tools Supporting Simulation and Verification
			9.23.2.1 Basic Capabilities
			9.23.2.2 Levels of Abstraction
	9.24 Other Considerations
		9.24.1 Capitalization and Reuse
			9.24.1.1 Capitalization
			9.24.1.2 Reuse
		9.24.2 Requirements Traceability and Management
			9.24.2.1 Requirements Traceability
			9.24.2.2 Requirements Management
	9.25 Archiving the Project
	9.26 Summary
	9.27 Review Questions
	9.28 Thought Questions
	9.29 Problems
Chapter 10 Hardware Test and Debug
	10.1 Introduction
	10.2 Some Vocabulary
	10.3 Putting Together a Strategy
	10.4 Formulating a Plan
	10.5 Formalizing the Plan – Writing a Specification
	10.6 Executing the Plan – The Test Procedure and Test Cases
	10.7 Applying the Strategy – Egoless Design
	10.8 Applying the Strategy – Design Reviews
	10.9 Applying the Strategy – Module Debug and Test
		10.9.1 Black Box Tests
		10.9.2 White Box Tests
		10.9.3 Gray Box Tests
	10.10 Applying the Strategy – The First Steps
		10.10.1 The Parts
		10.10.2 Initial Tests and Measurements – Before Applying Power
		10.10.3 Initial Tests and Measurements – Immediately After Applying Power
	10.11 Applying the Strategy – Debugging and Testing
		10.11.1 The Reset System
		10.11.2 The Clocks and Timing
		10.11.3 The Inputs and Outputs
		10.11.4 Sudden Failure during Debugging
	10.12 Testing and Debugging Combinational Logic
	10.13 Path Sensitizing
		10.13.1 Single Variable–Single Path
			10.13.1.1 Testing
			10.13.1.2 Debugging
		10.13.2 Single Variable–Two Paths
	10.14 Masking and Untestable Faults
	10.15 Single Variable–Multiple Paths
	10.16 Bridge Faults
	10.17 Debugging – Sequential Logic
	10.18 Scan Design Testing
	10.19 Boundary‐Scan Testing
	10.20 Memories and Memory Systems
	10.21 Applying the Strategy – Subsystem and System Test
	10.22 Applying the Strategy – Testing for Our Customer
		10.22.1 Alpha and Beta Tests
		10.22.2 Verification Tests
		10.22.3 Validation Tests
		10.22.4 Acceptance Tests
		10.22.5 Production Tests
	10.23 Self‐Test
		10.23.1 On Demand
		10.23.2 In Background
	10.24 Summary
	10.25 Review Questions
	10.26 Thought Questions
	10.27 Problems
PART 3 DOING THE WORK
Chapter 11 Real‐Time Kernels and Operating Systems
	11.1 Introduction
	11.2 Tasks and Things
	11.3 Programs and Processes
	11.4 The CPU Is a Resource
		11.4.1 Setting a Schedule
		11.4.2 Changing Context
	11.5 Threads – Lightweight and Heavyweight
		11.5.1 A Single Thread
		11.5.2 Multiple Threads
	11.6 Sharing Resources
		11.6.1 Memory Resource Management
			11.6.1.1 System‐Level Management
		11.6.2 Process‐Level Management
		11.6.3 Reentrant Code
	11.7 Foreground / Background Systems
	11.8 The Operating System
	11.9 The Real‐Time Operating System (RTOS)
	11.10 Operating System Architecture
	11.11 Tasks and Task Control Blocks
		11.11.1 The Task
		11.11.2 The Task Control Block
		11.11.3 A Simple Kernel
		11.11.4 Interrupts Revisited
	11.12 Memory Management Revisited
		11.12.1 Duplicate Hardware Context
		11.12.2 Task Control Blocks
		11.12.3 Stacks
			11.12.3.1 Runtime Stack
			11.12.3.2 Application Stacks
			11.12.3.3 Multiprocessing Stacks
	11.13 Summary
	11.14 Review Questions
	11.15 Thought Questions
	11.16 Problems
Chapter 12 Tasks and Task Management
	12.1 Introduction
	12.2 Time, Time‐Based Systems, and Reactive Systems
		12.2.1 Time
		12.2.2 Reactive and Time‐Based Systems
	12.3 Task Scheduling
		12.3.1 CPU Utilization
		12.3.2 Scheduling Decisions
		12.3.3 Scheduling Criteria
			12.3.3.1 Priority
			12.3.3.2 Turnaround Time
			12.3.3.3 Throughput
			12.3.3.4 Waiting Time
			12.3.3.5 Response Time
	12.4 Scheduling Algorithms
		12.4.1 Asynchronous Interrupt Event Driven
		12.4.2 Polled and Polled with a Timing Element
		12.4.3 State Based
		12.4.4 Synchronous Interrupt Event Driven
		12.4.5 Combined Interrupt Event Driven
		12.4.6 Foreground–Background
		12.4.7 Time‐Shared Systems
			12.4.7.1 First‐Come First‐Served
			12.4.7.2 Shortest Job First
			12.4.7.3 Round Robin
		12.4.8 Priority Schedule
			12.4.8.1 Rate‐Monotonic
			12.4.8.2 Earliest Deadline
			12.4.8.3 Least Laxity
			12.4.8.4 Maximum Urgency
	12.5 Real‐Time Scheduling Considerations
	12.6 Algorithm Evaluation
		12.6.1 Deterministic Modeling
		12.6.2 Queuing Models
		12.6.3 Simulation
		12.6.4 Implementation
	12.7 Tasks, Threads, and Communication
		12.7.1 Getting Started
		12.7.2 Intertask / Interthread Communication
		12.7.3 Shared Variables
			12.7.3.1 Global Variables
			12.7.3.2 Shared Buffer
			12.7.3.3 Shared Double Buffer – Ping‐Pong Buffer
			12.7.3.4 Ring Buffer
			12.7.3.5 Mailbox
		12.7.4 Messages
			12.7.4.1 Communication
			12.7.4.2 Buffering
	12.8 Task Cooperation, Synchronization, and Sharing
		12.8.1 Critical Sections and Synchronization
		12.8.2 Flags
		12.8.3 Token Passing
		12.8.4 Interrupts
		12.8.5 Semaphores
		12.8.6 Process Synchronization
		12.8.7 Spin Lock and Busy Waiting
		12.8.8 Counting Semaphores
	12.9 Talking and Sharing in Space
		12.9.1 The Bounded Buffer Problem
		12.9.2 The Readers and Writers Problem
	12.10 Monitors
		12.10.1 Condition Variables
		12.10.2 Bounded Buffer Problem with Monitor
	12.11 Starvation
	12.12 Deadlocks
	12.13 Summary
	12.14 Review Questions
	12.15 Thought Questions
	12.16 Problems
Chapter 13 Deadlocks
	13.1 Introduction
	13.2 Sharing Resources
	13.3 System Model
	13.4 Deadlock Model
		13.4.1 Necessary Conditions
	13.5 A Graph Theoretic Tool – The Resource Allocation Graph
	13.6 Handling Deadlocks
	13.7 Deadlock Prevention
		13.7.1 Mutual Exclusion
		13.7.2 Hold and Wait
		13.7.3 No Preemption
		13.7.4 Circular Wait
	13.8 Deadlock Avoidance
		13.8.1 Algorithms Based on the Resource Allocation Graph
		13.8.2 Banker's Algorithm and Safe States
	13.9 Deadlock Detection
		13.9.1 Detection in a Single‐Instance Environment
		13.9.2 Deadlock Recovery
			13.9.2.1 Task Termination
			13.9.2.2 Resource Preemption
	13.10 Summary
	13.11 Review Questions
	13.12 Thought Questions
	13.13 Problems
Chapter 14 Performance Analysis and Optimization
	14.1 Introduction
	14.2 Getting Started
	14.3 Performance or Efficiency Measures
		14.3.1 Introduction
		14.3.2 The System
		14.3.3 Some Limitations
	14.4 Complexity Analysis – A High‐Level Measure
	14.5 The Methodology
		14.5.1 A Simple Experiment
		14.5.2 Working with Big Numbers
		14.5.3 Asymptotic Complexity
	14.6 Comparing Algorithms
		14.6.1 Big‐O Notation
		14.6.2 Big‐O Arithmetic
	14.7 Analyzing Code
		14.7.1 Constant Time Statements
		14.7.2 Looping Constructs
			14.7.2.1 For Loops
			14.7.2.2 While Loops
		14.7.3 Sequences of Statements
		14.7.4 Conditional Statements
		14.7.5 Function Calls
	14.8 Analyzing Algorithms
		14.8.1 Analyzing Search
			14.8.1.1 Linear Search
			14.8.1.2 Binary Search
		14.8.2 Analyzing Sort
			14.8.2.1 Selection Sort
			14.8.2.2 Quick Sort
	14.9 Analyzing Data Structures
		14.9.1 Array
		14.9.2 Linked List
	14.10 Instructions in Detail
		14.10.1 Getting Started
		14.10.2 Flow of Control
			14.10.2.1 Sequential
			14.10.2.2 Branch
			14.10.2.3 Loop
			14.10.2.4 Function Call
		14.10.3 Analyzing the Flow of Control – Two Views
			14.10.3.1 Sequential Flow
			14.10.3.2 Branch
			14.10.3.3 Loop
			14.10.3.4 Function Call
			14.10.3.5 Co‐routine
			14.10.3.6 Interrupt Call
	14.11 Time, etc. – A More Detailed Look
		14.11.1 Metrics
	14.12 Response Time
		14.12.1 Polled Loops
		14.12.2 Co‐routine
		14.12.3 Interrupt‐Driven Environment
			14.12.3.1 Preemptive Schedule
			14.12.3.2 Nonpreemptive Schedule
		14.12.4 Meeting Real‐Time Constraints
			14.12.4.1 Deadline Monotonic Analysis
			14.12.4.2 Vocabulary
			14.12.4.3 Analysis
			14.12.4.4 Priority Ceiling Protocol
	14.13 Time Loading
		14.13.1 Instruction Counting
		14.13.2 Simulation
			14.13.2.1 Models
		14.13.3 Timers
		14.13.4 Instrumentation
	14.14 Memory Loading
		14.14.1 Memory Map
		14.14.2 Designing a Memory Map
			14.14.2.1 Instruction/Firmware Area
			14.14.2.2 RAM Area
			14.14.2.3 Stack Area
	14.15 Evaluating Performance
		14.15.1 Early Stages
		14.15.2 Mid‐stages
		14.15.3 Later Stages
	14.16 Thoughts on Performance Optimization
		14.16.1 Questions to Ask
	14.17 Performance Optimization
		14.17.1 Common Mistakes
	14.18 Tricks of the Trade
	14.19 Hardware Accelerators
	14.20 Introduction – Target Low Power
	14.21 Low Power – A High‐Level View
		14.21.1 Zero Power Consumption
		14.21.2 Static Power Consumption
			14.21.2.1 Sources of Static Power Consumption
			14.21.2.2 Addressing Static Power Consumption
		14.21.3 Dynamic Power Consumption
			14.21.3.1 Sources of Dynamic Power Consumption – Hardware
			14.21.3.2 Sources of Dynamic Power Consumption – Software
	14.22 Addressing Dynamic Power Consumption – Hardware
		14.22.1 Power Management Schemes – Hardware
		14.22.2 Advanced Configuration and Power Interface (ACPI)
		14.22.3 Dynamic Voltage and Frequency Scaling
	14.23 Addressing Dynamic Power Consumption – Software
		14.23.1 Measuring Power Consumption
		14.23.2 Caches and Performance
	14.24 Trade‐Offs
	14.25 Summary
	14.26 Review Questions
	14.27 Thought Questions
	14.28 Problems
Part 4 DEVELOPING THE FOUNDATION
Chapter 15 Working Outside of the Processor I: A Model of Interprocess Communication
	15.1 Communication and Synchronization with the Outside World
	15.2 First Steps: Understanding the Problem
	15.3 Interprocess Interaction Revisited
	15.4 The Model
		15.4.1 Information
		15.4.2 Places
		15.4.3 Control and Synchronization
		15.4.4 Transport
	15.5 Exploring the Model
		15.5.1 The Transport Mechanism
			15.5.1.1 The Interconnection Topology
			15.5.1.2 Star
			15.5.1.3 Ring
		15.5.2 Control and Synchronization
		15.5.3 Information Flow
			15.5.3.1 Direction of Flow
			15.5.3.2 Magnitude of the Flow
			15.5.3.3 I/O Timing
			15.5.3.4 Software Device Drivers
		15.5.4 Places
	15.6 Summary
	15.7 Review Questions
	15.8 Thought Questions
Chapter 16 Working Outside of the Processor I: Refining the Model of Interprocess Communication
	16.1 Communication and Synchronization with the Outside World
	16.2 The Local Device Model
		16.2.1 Control, Synchronization, and Places
			16.2.1.1 A Serial Model
			16.2.1.2 A Parallel Model
		16.2.2 Information – Data
		16.2.3 Transport
	16.3 Implementing the Local Device Model – A First Step
		16.3.1 An Overview
			16.3.1.1 Main Memory Address Space
			16.3.1.2 I/O Ports
			16.3.1.3 Peripheral Processor
		16.3.2 Main Memory Address Space – Memory‐Mapped I/O
			16.3.2.1 Address Bus
			16.3.2.2 Data Bus
			16.3.2.3 Control Bus
			16.3.2.4 Read
			16.3.2.5 Write
			16.3.2.6 Bidirectional Bus
		16.3.3 I/O Ports – Program‐Controlled I/O
		16.3.4 The Peripheral Processor
	16.4 Implementing the Local Device Model – A Second Step
		16.4.1 Information Interchange – An Event
		16.4.2 Information Interchange – A Shared Variable
		16.4.3 Information Interchange – A Message
	16.5 Implementing an Event‐Driven Exchange – Interrupts and Polling
		16.5.1 Polling
		16.5.2 Interrupts
			16.5.2.1 Single Interrupt Line with Single Device
			16.5.2.2 Single Interrupt Line with Multiple Devices
			16.5.2.3 Multiple Interrupt Lines
		16.5.3 Masking Interrupts
	16.6 A Message
		16.6.1 Asynchronous Information Exchange
			16.6.1.1 Strobes
			16.6.1.2 Strobe with Acknowledge
			16.6.1.3 Full Handshake
			16.6.1.4 Resynchronization
			16.6.1.5 Analysis
		16.6.2 Synchronous Information Exchange
			16.6.2.1 Bit Synchronization
	16.7 The Remote Device Model
		16.7.1 Places and Information
		16.7.2 Control and Synchronization
		16.7.3 Transport
	16.8 Implementing the Remote Device Model – A First Step
		16.8.1 The OSI and TCP/IP Protocol Stacks
			16.8.1.1 OSI – Physical Layer
			16.8.1.2 OSI – Data Link Layer
			16.8.1.3 TCP/IP – Host to Network
			16.8.1.4 OSI – Network Layer
			16.8.1.5 TCP/IP – Internet Layer
			16.8.1.6 OSI – Transport Layer
			16.8.1.7 TCP/IP – Transport Layer
			16.8.1.8 OSI – Session Layer
			16.8.1.9 OSI – Presentation Layer
			16.8.1.10 OSI – Application Layer
			16.8.1.11 TCP/IP – Application Layer
		16.8.2 The Models
			16.8.2.1 The Client–Server Model
			16.8.2.2 The Peer‐to‐Peer Model
			16.8.2.3 The Group Multicast Model
	16.9 Implementing the Remote Device Model – A Second Step
		16.9.1 The Messages
		16.9.2 The Message Structure
		16.9.3 Message Control and Synchronization
			16.9.3.1 The Header
			16.9.3.2 The Transfer Scheme
	16.10 Working with Remote Tasks
		16.10.1 Preliminary Thoughts on Working with Remote Tasks
			16.10.1.1 Local vs. Remote Addresses and Data
			16.10.1.2 Repeated Task Execution
			16.10.1.3 Node Failure, Link Failure, Message Loss
		16.10.2 Procedures and Remote Procedures
			16.10.2.1 Calling a Remote Procedure – RPC Semantics
			16.10.2.2 The Transport
			16.10.2.3 Message Source and Destination
			16.10.2.4 The Protocol
			16.10.2.5 RPC Interface Definition
		16.10.3 Node Failure, Link Failure, Message Loss
			16.10.3.1 Node Failure and Loss
			16.10.3.2 Message Loss
	16.11 Group Multicast Revisited
		16.11.1 Atomic Multicast
		16.11.2 Reliable Multicast
	16.12 Connecting to Distributed Processes – Pipes, Sockets, and Streams
		16.12.1 Pipes
		16.12.2 Sockets
		16.12.3 Stream Communication
	16.13 Summary
	16.14 Review Questions
	16.15 Thought Questions
	16.16 Problems
Chapter 17 Working Outside of the Processor II: Interfacing to Local Devices
	17.1 Shared Variable I/O – Interfacing to Peripheral Devices
	17.2 The Shared Variable Exchange
	17.3 Generating Analog Signals
		17.3.1 Binary Weighted Digital‐to‐Analog Converter
		17.3.2 R/2R Ladder Digital‐to‐Analog Converter
	17.4 Common Measurements
		17.4.1 Voltage
		17.4.2 Current
		17.4.3 Resistance
	17.5 Measuring Voltage
		17.5.1 Dual Slope Analog‐to‐Digital Conversion
		17.5.2 Successive Approximation Analog‐to‐Digital Conversion
			17.5.2.1 Sample and Hold
		17.5.3 VCO Analog‐to‐Digital Conversion
	17.6 Measuring Resistance
	17.7 Measuring Current
	17.8 Measuring Temperature
		17.8.1 Sensors
		17.8.2 Making the Measurement
		17.8.3 Working with Nonlinear Devices
	17.9 Generating Digital Signals
		17.9.1 Motors and Motor Control
		17.9.2 DC Motors
		17.9.3 Servo Motors
		17.9.4 Stepper Motors
	17.10 Controlling DC and Servo Motors
		17.10.1 DC Motors
		17.10.2 Servo Motors
		17.10.3 Controlling Stepper Motors
		17.10.4 Motor Drive Circuitry
		17.10.5 Motor Drive Noise
	17.11 LEDs and LED Displays
		17.11.1 Individual LEDs
		17.11.2 Multi‐LED Displays
	17.12 Measuring Digital Signals
		17.12.1 The Approach
		17.12.2 Working with Asynchronous Signals
		17.12.3 Buffering Input Signals
		17.12.4 Inside vs. Outside
		17.12.5 Measuring Frequency and Time Interval
			17.12.5.1 Measuring the Period – An Internal Implementation
			17.12.5.2 Measuring the Period – An External Implementation
			17.12.5.3 Counting for a Known Interval – An Internal Implementation
			17.12.5.4 Counting for a Known Interval – An External Implementation
	17.13 Summary
	17.14 Review Questions
	17.15 Thought Questions
	17.16 Problems
Chapter 18 Working Outside of the Processor III: Interfacing to Remote Devices
	18.1 Common Network‐Based I/O Architectures
	18.2 Network‐Based Systems
	18.3 RS‐232/EIA‐232 – Asynchronous Serial Communication
		18.3.1 Introduction
		18.3.2 The EIA‐232 Standard
			18.3.2.1 What It Is …
			18.3.2.2 What they Think It Is …
		18.3.3 EIA‐232 Addressing
		18.3.4 Asynchronous Serial Communication
		18.3.5 Configuring the Interface
		18.3.6 Data Recovery and Timing
		18.3.7 EIA‐232 Interface Signals
		18.3.8 An Implementation
	18.4 The Universal Serial Bus – Synchronous Serial Communication
		18.4.1 Background
		18.4.2 The Universal Serial Bus Architecture
		18.4.3 The Universal Serial Bus Protocol
		18.4.4 USB Devices
		18.4.5 Transfer Types
		18.4.6 Device Descriptors
		18.4.7 Network Configuration
		18.4.8 USB Transactions
		18.4.9 USB Interface Signals
		18.4.10 The Physical Environment
			18.4.10.1 Low‐Speed Cables
			18.4.10.2 High‐Speed Cables
			18.4.10.3 Cables and Cable Power
		18.4.11 Detecting Device Attachment and Speed
		18.4.12 Differential Pair Signaling
		18.4.13 Implementation
	18.5 I2C – A Local Area Network
		18.5.1 The Architecture
		18.5.2 Electrical Considerations
		18.5.3 Basic Operation
		18.5.4 Flow of Control
		18.5.5 Multiple Masters
			18.5.5.1 Arbitration
			18.5.5.2 Synchronization
		18.5.6 Using the I2C Bus
	18.6 The Controller Area Network – The CAN Bus
		18.6.1 The Architecture
		18.6.2 Electrical Considerations
		18.6.3 Message Types
		18.6.4 Message Format
		18.6.5 Basic Operation
			18.6.5.1 Synchronization
			18.6.5.2 Error Management
			18.6.5.3 Transmission and Arbitration
		18.6.6 Using the CAN Bus
	18.7 Summary
	18.8 Review Questions
	18.9 Thought Questions
	18.10 Problems
Chapter 19 Programmable Logic Devices
	19.1 Introduction
	19.2 Why Use Programmable Logic Devices?
	19.3 Basic Concepts
	19.4 Basic Configurations
		19.4.1 The (P)ROM
		19.4.2 Programmable Array Logic – PAL
		19.4.3 Programmable Logic Array – PLA
		19.4.4 Programmable Logic Sequencer – PLS
		19.4.5 PLA vs. PAL vs. (P)ROM
	19.5 Programmable and Reprogrammable Technologies
		19.5.1 Programmable Technologies
		19.5.2 Reprogrammable Technologies
	19.6 Architectures
		19.6.1 PLDs
		19.6.2 CPLD
		19.6.3 FPGAs
	19.7 The Design Process
	19.8 Design Examples
		19.8.1 Lane Departure Detection Implementation and Acceleration
			19.8.1.1 Introduction
			19.8.1.2 Requirements
			19.8.1.3 Design
			19.8.1.4 Results
			19.8.1.5 Section Summary
		19.8.2 Local Area Tracking System – LATS with uCLinux™ OS
			19.8.2.1 Introduction
			19.8.2.2 Requirements
			19.8.2.3 System Description
			19.8.2.4 Design Procedure
			19.8.2.5 Test Plan
	19.9 Summary
	19.10 Review Questions
	19.11 Thought Questions
Chapter 20 Practical Considerations Signal Behavior in the Real World – Part 1 – Noise and Crosstalk
	20.1 Introduction – The Real World Again
	20.2 Noise
	20.3 Power Supply and Ground Noise
		20.3.1 Common Path Noise
		20.3.2 Power Distribution Wiring
			20.3.2.1 Resistance
			20.3.2.2 Inductance
		20.3.3 Board Level Bypass
			20.3.3.1 Computing the Board Level Bypass Capacitor
		20.3.4 Local Bypass Capacitors
			20.3.4.1 Computing the Local Bypass Capacitors
		20.3.5 Power and Ground Planes
	20.4 Crosstalk and Loops
		20.4.1 Crosstalk
			20.4.1.1 Preventing or Reducing Crosstalk
		20.4.2 Loops
	20.5 Summary
	20.6 Review Questions
	20.7 Problems
Chapter 21 Practical Considerations Signal Behavior in the Real World – Part 2 – High‐Speed Signaling
	21.1 Introduction – The Real World Yet Again
	21.2 The Problem
		21.2.1 Terminology
			21.2.1.1 Noise
			21.2.1.2 Switching Noise
			21.2.1.3 Crosstalk
			21.2.1.4 Ringing
			21.2.1.5 Attenuation or Loss
			21.2.1.6 Jitter
			21.2.1.7 Period Jitter
			21.2.1.8 Cycle‐to‐Cycle Jitter
			21.2.1.9 Nth‐cycle Jitter
			21.2.1.10 Aperture Time
			21.2.1.11 Reflection
			21.2.1.12 Ground Bounce
			21.2.1.13 Transmitter Output Timing Jitter
			21.2.1.14 Capacitive Loading
	21.3 The Working Environment
		21.3.1 The Signaling Environment
		21.3.2 The PCB Environment
			21.3.2.1 Microstrip
			21.3.2.2 Stripline
			21.3.2.3 Signal Propagation
			21.3.2.4 Distributed Versus Lumped
		21.3.3 Point‐to‐Point Wiring
			21.3.3.1 Signal Distortion
		21.3.4 Electromagnetic Interference in Point‐to‐Point Wiring
			21.3.4.1 EMI to Crosstalk in Point‐to‐Point Wiring
	21.4 The Transmission Line
		21.4.1 The Lossless Transmission Line
		21.4.2 The Finite Transmission Line
			21.4.2.1 Transient Input
		21.4.3 Reflections – Termination Schemes
		21.4.4 Unterminated Signal Path
			21.4.4.1 Low Source Impedance – TTL/ECL Drivers
			21.4.4.2 High Source Impedance – CMOS Drivers
		21.4.5 Parallel Termination – End Terminated
			21.4.5.1 End Terminated – Biased Termination
			21.4.5.2 End Terminated – Split Termination
		21.4.6 Source Terminated – Series Termination
	21.5 Differential Signaling
		21.5.1 Environment
	21.6 Signals in the Nonideal (Real) World
	21.7 Other Considerations
	21.8 Examining the Environment
		21.8.1 Test Equipment
		21.8.2 The Eye Diagram
			21.8.2.1 Generating the Eye Diagram
			21.8.2.2 Interpreting the Eye Diagram
	21.9 Back of the Envelope Examination
		21.9.1 A First Step Check List
		21.9.2 Routing and Topology
			21.9.2.1 Topology Alternatives
	21.10 Summary
	21.11 Review Questions
	21.12 Thought Questions
	21.13 Problems
Appendix A Verilog Overview: The Verilog Hardware Description Language
	A.1 Introduction
	A.2 An Overview of a Verilog Program
	A.3 Creating a Verilog Program
		A.3.1 Some Concepts in a Verilog Source File
		A.3.2 Modules
			A.3.2.1 Module Name
			A.3.2.2 Inputs and Outputs Declarations
			A.3.2.3 Nets and Variables
			A.3.2.4 Declaring Multibit Signals
			A.3.2.5 Subsets of Multibit Expressions
			A.3.2.6 $display and $monitor Statements
			A.3.2.7 $stop and $finish Statements
			A.3.2.8 $time Statement
	A.4 Three Models – The Gate Level, the Dataflow, and the Behavioral
		A.4.1 The Structural/Gate‐Level Model
			A.4.1.1 Creating Modules
			A.4.1.2 Using Modules
			A.4.1.3 Delays
			A.4.1.4 Defining Constants
		A.4.2 The Dataflow Model
			A.4.2.1 Continuous Assignment
			A.4.2.2 Delays
			A.4.2.3 Operators
		A.4.3 The Behavioral Model
			A.4.3.1 Program Structure
			A.4.3.2 Procedural Assignment
			A.4.3.3 Delays
			A.4.3.4 Flow of Control
	A.5 Testing and Verifying the Circuit
		A.5.1 The Circuit Module
		A.5.2 The Test Module
			A.5.2.1 Clocks and Resets
		A.5.3 The Test Bench
		A.5.4 Performing the Simulation
	A.6 Summary
Further Reading
Index
EULA




نظرات کاربران