Chapter 10 Topics in Embedded Systems. 2 Chapter 10 Objectives Understand the ways in which embedded systems differ from general purpose systems. Be able.

Slides:



Advertisements
Similar presentations
Field Programmable Gate Array
Advertisements

Configuration management
purpose Search : automation methods for device driver development in IP-based embedded systems in order to achieve high reliability, productivity, reusability.
FPGA (Field Programmable Gate Array)
ECOE 560 Design Methodologies and Tools for Software/Hardware Systems Spring 2004 Serdar Taşıran.
Evolution and History of Programming Languages Software/Hardware/System.
1.1 Aims of testing Testing is a process centered around the goal of finding defects in a system. We are currently unable to produce defect-free systems.
EELE 367 – Logic Design Module 2 – Modern Digital Design Flow Agenda 1.History of Digital Design Approach 2.HDLs 3.Design Abstraction 4.Modern Design Steps.
Overview: Chapter 7  Sensor node platforms must contend with many issues  Energy consumption  Sensing environment  Networking  Real-time constraints.
MotoHawk Training Model-Based Design of Embedded Systems.
CMPT150, Ch 3, Tariq Nuruddin, Fall 06, SFU 1 Ch3. Combinatorial Logic Design Modern digital design involves a number of techniques and tools essential.
Embedded Systems: Introduction. Course overview: Syllabus: text, references, grading, etc. Schedule: will be updated regularly; lectures, assignments.
1 HW/SW Partitioning Embedded Systems Design. 2 Hardware/Software Codesign “Exploration of the system design space formed by combinations of hardware.
ENGIN112 L38: Programmable Logic December 5, 2003 ENGIN 112 Intro to Electrical and Computer Engineering Lecture 38 Programmable Logic.
02/02/20091 Logic devices can be classified into two broad categories Fixed Programmable Programmable Logic Device Introduction Lecture Notes – Lab 2.
1 Hardware description languages: introduction intellectual property (IP) introduction to VHDL and Verilog entities and architectural bodies behavioral,
Department of Electrical and Computer Engineering Texas A&M University College Station, TX Abstract 4-Level Elevator Controller Lessons Learned.
Chapter 13 Embedded Systems
1/31/20081 Logic devices can be classified into two broad categories Fixed Programmable Programmable Logic Device Introduction Lecture Notes – Lab 2.
ECE Lecture 1 1 ECE 3561 Advanced Digital Design Department of Electrical and Computer Engineering The Ohio State University.
ECE 331 – Digital System Design Tristate Buffers, Read-Only Memories and Programmable Logic Devices (Lecture #16) The slides included herein were taken.
Software Issues Derived from Dr. Fawcett’s Slides Phil Pratt-Szeliga Fall 2009.
CS 151 Digital Systems Design Lecture 38 Programmable Logic.
Copyright Arshi Khan1 System Programming Instructor Arshi Khan.
Tyus Carver, Josh Clark, Dock O'neal, Kyle Sekellick, Jeremy Smith,
Digital Circuit Implementation. Wafers and Chips  Integrated circuit (IC) chips are manufactured on silicon wafers  Transistors are placed on the wafers.
(1) Introduction © Sudhakar Yalamanchili, Georgia Institute of Technology, 2006.
1  Staunstrup and Wolf Ed. “Hardware Software codesign: principles and practice”, Kluwer Publication, 1997  Gajski, Vahid, Narayan and Gong, “Specification,
An Introduction Chapter Chapter 1 Introduction2 Computer Systems  Programmable machines  Hardware + Software (program) HardwareProgram.
ISE. Tatjana Petrovic 249/982/22 ISE software tools ISE is Xilinx software design tools that concentrate on delivering you the most productivity available.
Chap. 1 Overview of Digital Design with Verilog. 2 Overview of Digital Design with Verilog HDL Evolution of computer aided digital circuit design Emergence.
1 3-General Purpose Processors: Altera Nios II 2 Altera Nios II processor A 32-bit soft core processor from Altera Comes in three cores: Fast, Standard,
ASIC/FPGA design flow. FPGA Design Flow Detailed (RTL) Design Detailed (RTL) Design Ideas (Specifications) Design Ideas (Specifications) Device Programming.
PROGRAMMABLE LOGIC DEVICES (PLD)
Microcontroller Presented by Hasnain Heickal (07), Sabbir Ahmed(08) and Zakia Afroze Abedin(19)
집적회로 Spring 2007 Prof. Sang Sik AHN Signal Processing LAB.
INTRODUCTION SOFTWARE HARDWARE DIFFERENCE BETWEEN THE S/W AND H/W.
Visual C++ Programming: Concepts and Projects
CSE 494: Electronic Design Automation Lecture 2 VLSI Design, Physical Design Automation, Design Styles.
Lecture 2 1 ECE 412: Microcomputer Laboratory Lecture 2: Design Methodologies.
IEEE ICECS 2010 SysPy: Using Python for processor-centric SoC design Evangelos Logaras Elias S. Manolakos {evlog, Department of Informatics.
SE: CHAPTER 7 Writing The Program
Languages for HW and SW Development Ondrej Cevan.
Field Programmable Gate Arrays (FPGAs) An Enabling Technology.
Computer Architecture And Organization UNIT-II General System Architecture.
EE3A1 Computer Hardware and Digital Design
Fall 2004EE 3563 Digital Systems Design EE 3563 VHSIC Hardware Description Language  Required Reading: –These Slides –VHDL Tutorial  Very High Speed.
Chapter 4 MARIE: An Introduction to a Simple Computer.
An Overview of Hardware Design Methodology Ian Mitchelle De Vera.
What is a Microprocessor ? A microprocessor consists of an ALU to perform arithmetic and logic manipulations, registers, and a control unit Its has some.
Programmable Logic Device Architectures
ECE 551: Digital System Design & Synthesis Motivation and Introduction Lectures Set 1 (3 Lectures)
ECE Lecture 1 1 ECE 561 Digital Circuit Design Department of Electrical and Computer Engineering The Ohio State University.
Digital Design Using VHDL and PLDs ECOM 4311 Digital System Design Chapter 1.
Chapter 1 Basic Concepts of Operating Systems Introduction Software A program is a sequence of instructions that enables the computer to carry.
1 Multiplexers (Data Selectors) A multiplexer (MUX) is a device that allows several low-speed signals to be sent over one high-speed output line. “Select.
Slides created by: Professor Ian G. Harris Embedded Systems  Embedded systems are computer-based systems which are embedded inside another device (car,
Introduction to Computer Programming Concepts M. Uyguroğlu R. Uyguroğlu.
Victoria Ibarra Mat:  Generally, Computer hardware is divided into four main functional areas. These are:  Input devices Input devices  Output.
Embedded Systems. What is Embedded Systems?  Embedded reflects the facts that they are an integral.
Programmable Logic Devices
System-on-Chip Design
Basic Computer Organization and Design
ASIC Design Methodology
EEE2135 Digital Logic Design Chapter 1. Introduction
Overview of Embedded SoC Systems
Introduction to Verilog
ECNG 1014: Digital Electronics Lecture 1: Course Overview
Embedded System Development Lecture 1 1/10/2007
HIGH LEVEL SYNTHESIS.
Presentation transcript:

Chapter 10 Topics in Embedded Systems

2 Chapter 10 Objectives Understand the ways in which embedded systems differ from general purpose systems. Be able to describe the processes and practices of embedded hardware design. Understand key concepts and tools for embedded software development.

Introduction Embedded systems are real computer systems that support the operation of a device (or machine) that usually is not a computer. The user of the embedded system is rarely aware of its existence within the device. These systems are all around us. They are in watches, automobiles, coffeepots, TVs, telephones, aircraft, and just about any “intelligent” device that reacts to people or its environment.

Introduction Embedded systems are different from general- purpose systems in several important ways. Some key differences are: –Embedded systems are resource constrained. Utilization of memory and power are critical. The economy of hardware and software is often paramount, and can affect design decisions. –Partitioning of hardware and software is fluid. –Embedded systems programmers must understand every detail about the hardware. –Signal timing and event handling are crucial.

Embedded Hardware Overview We will classify embedded hardware according to the extent to which it is adapted or adaptable by the people who program and install the system into the device that it supports. Accordingly, we say that embedded hardware falls into categories of: –Off-the-shelf –Configurable –Fully-Customized Note: There are many other taxonomies. This one is convenient for our purposes.

Embedded Hardware Overview Using off-the-shelf hardware, minimal hardware customization possible. –Perhaps add memory or peripherals. The internal wiring stays the same. The most common off-the-shelf hardware is the microcontroller. –Microcontrollers are often derivatives of “old” PC technology. They are inexpensive because development costs were recouped long ago. –There are thousands of different microcontrollers.

Embedded Hardware Overview –Example microcontrollers are Motorola's 68HC12, Intel’s 8051, Microchip's 16F84A, and the PIC family. –A simplified block diagram of a microcontroller is shown at the right.

Embedded Hardware Overview –We have seen all of these components before except for the watchdog timer. –A watchdog timer helps guard against system hangs by continually checking for liveness. –Watchdog timers are not used in all microcontrollers.

Embedded Hardware Overview For some applications, microcontrollers are too limited in their functionality. Systems-on-a-chip (SOCs) are full blown computer systems-- including all supporting circuits-- that are etched on a single die. –Alternatively, separate chips are needed to provide the same services. –The additional chips are costly and consume power and space.

Embedded Hardware Overview Semi-custom systems-on-a-chip can be fabricated whenever a suitable off-the-shelf SOC is unavailable. The chip mask is created using blocks of pre- designed, pre-tested intellectual property (IP) circuits. The semi-custom approach is costly. To save money, off-the-shelf SOCs are preferred, even when their functionality is not an exact fit for the application.

Embedded Hardware Overview Programmable logic devices (PLDs) are configurable devices in which the behavior of the circuits can be changed to suit the needs of an application. –Programmable array logic (PAL) chips consist of programmable AND gates connected to a set of fixed OR gates. –Programmable logic array (PLA) chips consist of programmable AND gates connected through programmable OR gates.

Embedded Hardware Overview A programmed PAL and a programmed PLA:

Embedded Hardware Overview The behavior of field programmable gate arrays (FPGAs) is controlled through values stored in memory lookup tables rather than by changing connections between logic elements.

Embedded Hardware Overview –Truth tables are entered directly into FPGA memory.

Embedded Hardware Overview FPGAs typically consist of blocks of logic elements interconnected by switches and multiplexers in an “island” configuration.

Embedded Hardware Overview When: –Off-the-shelf microcontrollers and SOCs do not have sufficient functionality for the task at hand... –Or off-the-shelf microcontrollers and SOCs have too much functionality, with the excess consuming resources needlessly… –And a semi-custom chip cannot be economically fabricated from commercially available IP designs... –And PLDs are too expensive or too slow… The only option left is to design an application- specific integrated circuit (ASIC) from scratch.

Embedded Hardware Overview To design a chip from scratch we need to think about it from three points of view: What do we need the chip to do? Which logic components can provide the behavior we need? What is the best way to position the components on the silicon die in order to reduce cost and provide the best performance?

Embedded Hardware Overview Gajski’s Logic Synthesis Y-Chart depicts the relationship of these three dimensions of circuit design.

Embedded Hardware Overview Creating circuit designs along all three dimensions is an enormously complex task that is nearly impossible to do--with any amount of accuracy or effectiveness-- without a good toolset. Hardware definition languages (HDLs) were invented in the latter part of the twentieth century. HDLs help designers manage circuit complexity by expressing circuit logic in algorithmic terms.

Embedded Hardware Overview Two of the most popular HDLs are Verilog and VHDL. Verilog is a C-like language invented in It is now IEEE VHDL is an ADA-like HDL released in It is now IEEE The output from the compilation of both of these languages is a netlist, which is suitable for use as input to electronic design automation machines that produce integrated circuit masks.

Embedded Hardware Overview Traditional HDLs manipulate circuit definitions in terms of RTL and discrete signal patterns. Using these languages, engineers are strained to keep up with the complexity of today’s SOCs. To make design activities more accurate and cost efficient, the level of abstraction must be raised above the RTL level. SystemC and SpecC are two recent HDLs that were invented to help solve this problem.

Embedded Hardware Overview SystemC is an extension of C++ that includes classes and libraries specifically created for embedded systems design, to include modeling events, timing specifications, and concurrency. SpecC is a C-like language, created from the outset as a system design language. A SpecC development package includes a methodology that guides engineers through four phases of system development: –Specification, architecture, communication channels, and implementation.

Embedded Hardware Overview Embedded systems have been traditionally developed by specialized teams that collaboratively: –Produce a detailed specification derived from a functional description. –Select a suitable processor or decide to build one. –Determine the hardware-software partition. –Design the circuit and write the program(s) that will run on the system. –Prototype and test the system. This system design cycle is shown on the next slide.

Embedded Hardware Overview Notice the back arrows. These steps are costly.

Embedded Hardware Overview SystemC and SpecC facilitate changes to the traditional design lifecycle. –Hardware developers and software developers can speak the same language. –Codevelopment teams work side-by-side simultaneously creating hardware designs and writing programs. –Codevelopment shortens the development lifecycle and improves product quality. The embedded system codesign lifecycle is shown on the next slide.

Embedded Hardware Overview Rework takes place on a virtual system.

Embedded Software Overview Software development for embedded systems presents a distinct set of challenges. Some of these challenges are related to the uniqueness of the hardware, such as its particular memory organization. –Memory limitations are almost always a software development constraint. –Virtual memory is not suitable for most embedded applications.

Embedded Software Overview Embedded system memory can consist of several different kinds, including RAM, ROM, and flash, all sharing the same address space. Memory leaks in embedded systems are especially problematic.

Embedded Software Overview Embedded operating systems differ from general- purpose operating systems in a number of ways. –Responsiveness is one of the major distinguishing features. Not all embedded operating systems are real-time operating systems. –Timing requirements may differ little from a desktop computer. –Hard real-time systems have strict timing constraints. –In soft real-time systems, timing is important but not critical.

Embedded Software Overview Interrupt latency is the elapsed time between the occurrence of an interrupt and the execution of the first instruction of the interrupt service routine (ISR). –Interrupt latency is indirectly related to system responsiveness. The smaller the latency, the faster the response. Interrupts can happen at any time and in any order. The ISR for one interrupt possibly may not be completed before another interrupt occurs. –High-quality systems support such interrupt nesting.

Embedded Software Overview Memory footprint is another critical concern with embedded systems. –If an operating system takes up too much memory, additional memory may be required. –Memory consumes power. –Thus, the smaller the operating system, the better. Most embedded operating systems are modular, allowing only the most necessary features to be installed.

Embedded Software Overview IEEE , POSIX, is the specification for standardized Unix, to which Embedded Linux adheres. Other popular embedded operating systems include Windows CE, Windows XP Embedded, QNX, and MS-DOS. There are hundreds of others, each having its distinctive behavior and target hardware. Licensing costs for the operating system are as great a concern as hardware costs.

Embedded Software Overview General-purpose software development is usually iterative and incremental. –Code a little, test a little. Embedded systems development requires a much more rigorous and linear path. Functional requirements must be clear, complete, and accurate when work begins. Formal languages, such as Z, are helpful in providing accuracy and correctness.

Embedded Software Overview Large software projects are usually partitioned into chunks so that the chunks can be assigned to different teams. Embedded software doesn’t partition so easily, making team assignments difficult. To improve performance, some embedded programmers advocate the use of global variables and unstructured code. Others rail against this idea, saying that it is not good engineering practice regardless of the platform for which the software is written.

Embedded Software Overview Event handling is a major challenge to the embedded programmer. –It lies at the heart of embedded systems functionality Events can happen asynchronously and in any order. It is virtually impossible to test all possible sequences of events. Testing must be rigorous and thorough.

Embedded Software Overview Embedded programming is essentially a matter of raising and responding to signals. Hardware support may be designed into a chip to facilitate the tracing and debugging of signal patterns. –Examples are ICE, Motorola’s BDM, IEEE JTAG, and IEEE 5001 Nexus. Some platforms offer no tool support in the way of debuggers or even compilers. –Writing software for these systems is called bare metal programming.

37 Embedded systems differ from general-purpose systems because: –They are resource constrained. –Programming requires deep awareness of the underlying hardware. –Signal timing and event handling are critical. –The hardware-software partition is moveable. Embedded hardware can be off-the-shelf, semi- customized, fully-customized, or configurable. Chapter 10 Conclusion

38 Programmable logic devices include: –PALs: Programmable AND gates connected to a set of fixed OR gates. –PLA: Programmable AND gates connected through programmable OR gates. –FPGA: Logic functions provided through lookup tables. PLDs tend to be slow and expensive as compared to off-the-shelf ICs. Chapter 10 Conclusion

39 Hardware definition languages Verilog, VHDL specify the functions and layout of full-custom chips. SpecC and SystemC raise the level of abstraction in chip design. Hardware-software codesign and cosimulation reduces errors and brings products to market faster. Chapter 10 Conclusion

40 Embedded operating systems differ from general purpose operating systems in their timing and memory footprint requirements. IEEE , POSIX, is the specification for standardized Unix, to which Embedded Linux adheres. Other popular embedded operating systems include Windows CE, Windows XP Embedded, QNX, and MS-DOS. Chapter 10 Conclusion

41 Embedded software requires accurate specifications and rigorous development practices. –Formal languages help. Event processing requires careful specification and testing. Embedded system debugging can be supported by hardware interfaces to include ICE, BDM, JTAG, and Nexus. Chapter 10 Conclusion

42 End of Chapter 10