Notes - Department of Electrical Engineering and Computing Systems

Download Report

Transcript Notes - Department of Electrical Engineering and Computing Systems

Embedded Systems
(Cyber-Physical Systems):
Introduction
Course goals: understand the major issues in
embedded systems development and learn about
some commonly available tools to quickly and
efficiently produce embedded systems for specific
applicataion
Course overview:
Syllabus: text, references, grading, etc.
Schedule: will be updated regularly;
lectures, assignments, labs
Project / Team formation
Student survey
A: a special-purpose processor, with associated software, for a
specific application or set of applications; has ONLY the hardware /
software resources needed for the application.Architecture:(Peckol, ch 11):
“SAFER”:
(virtual) machine model:
clearly separated
“MORE EFFICIENT”:
common implementation: layers
upper layers may have
access to some
lower-level functions:
Some common embedded system
implementations
--specific processor architectures: Intel
8051, ARM, PIC, PowerPC, …
--FPGA prototypes and implementations:
Altera, Xilinx, …
--ASICs
Processor Examples
Control
“Harvard architecture”:
--PIC processor family
Instruc.
I/O
“von Neumann architecture”:
Data
ALU
Control
--simple processor
--mP 3 processor
I/O
--MIPS processor
--NIOS II processor core (Altera “soft core” processor)
Memory
Data +
Instruc.
ALU
5
PIC processor family: processor is fixed, developer programs it
Reference: http://en.wikipedia.org/wiki/PIC_microcontroller
• PIC: peripheral interface controller
• Originally (~1975) for offloading I/O functions from a CPU
• Harvard architecture: data and instructions (“code”) are stored separately—thus a
data item and an instruction do not need to be the same length
• Newer versions have a stack
• One accumulator (referred to as W), but memory is usually referred to as a
“register file”
• Some versions allow a type of indirect addressing
• Usually referred to as a RISC machine; may have up to 70 instructions
• May be able to access external memory (newer versions)
• Many development tools & languages available
Data
“Code”
(Instructions)
6
Hardware basis in this course: Altera FPGAs (PLAs)
FPGA
(EXAMPLE)
CARRY IN
GLOBAL BUS
IN
BUS
OUT
BUS
LOGICBUS
(LOOK-UP
TABLE or
LUT)
CLOCK
RESET
MEM IN
MEMORY
MEM OUT
(1-BIT)
LOCAL BUS
RAM BLOCK
CARRY OUT
SINGLE FPGA CELL
DESIGNING AN FPGA-BASED CIRCUIT /
PROCESSOR:
• USE HIGH-LEVEL ABSTRACTION,
LIBRARIES, IP
• USE HARDWARE DESCRIPTION
LANGUAGES (Verilog, VHDL)
• USE AUTOMATED TOOLS TO PRODUCE
LAYOUT
• MAY FINE-TUNE DESIGN DETAILS
• DESIGN APPLICATION-SPECIFIC
PROCESSOR / SOFTWARE
• or USE / MODIFY PROCESSOR
ARCHITECTURE PROVIDED BY FPGA
MANUFACTORER (ALTERA: NIOS II)
Final product: “embedded system”
Reference:
http://en.wikipedia.org/wiki/Embedded_system
Typical embedded system (implemented in FPGA):
• Special-purpose “computer” designed for device it controls
• user is provided with a processor with basic functionality
• processor can be programmed in software
• Additional features can be added using the FPGA resources to
customize the design for a specific intended use
• Processor core may be “hard” (built-in as part of the chip) or
“soft” (using some of available FPGA resources. Ex: Altera
Nios II processor)
• Processor may have options—e.g., number of registers, floating
point units
• Specialized CAD tools allow inclusion of additional
functionality
• Hardware / software codesign now becomes a possibility
Codesign:
Strengths:
Performance,
Resource Usage
Weaknesses:
Flexibility, Design
Productivity;
The basic codesign process:
Strengths:
Flexibility, Design
Productivity;
Weaknesses:
Performance,
Resource Usage
(diagram: course on codesign by Niemann, Univ. of Dortmund, Winter 2008)
Reference: http://www.ece.cmu.edu/~koopman/iccd96/iccd96.html#introduction
Much of the following information is taken from this site
Typical embedded system properties:
• Processor: application–specific, not general-purpose
• Human interface: may be as simple as a flashing light or as
complicated as real-time robotic vision.
• I/O: analog I/O is typical
• Diagnostic port: may be used for diagnosing the system that is being
controlled -- not just for diagnosing the computer.
• Special-purpose hardware: [field programmable (FPGA),
application specific (ASIC), or even non-digital] may be used to
increase performance or safety.
• Operating system: typically must handle real-time processing (Note:
“real-time” is NOT necessarily the same as “fast”)
• Software: often has fixed function; specific to application.
• Business considerations: often play a big role in design choices.
Examples (Koopman):
*
*Design change with cost above this magnitude can affect profitability, so typically needs management okay.
Design issues:
• System may need to be real-time / reactive
(does not mean “fast” necessarily)
• Usually must be small and not weigh much
• Must be safe and reliable
• Must meet budget constraints (cost)
• May need to work in harsh environmental
conditions (e.g., in an automobile)
• May need to deal with security issues
System requirements:
• Focus is on end-use capability, not on CPU
performance, memory size, etc.
• System software must be safe and reliable
• Power usage should be low, depending on
applications
• System typically controls a physical system—
sensors / actuators
Embedded system lifecycle / requirements:
• Components—same component may work in
several different systems—this can lower cost
• Safety certification—must often meet rigorous
requirements (e.g., medical, aviation,
automotive, military)
• Recertification—if system is modified
• Logistics / repair—accessibility is important
• Upgrades—need to be handled efficiently
• Component availability—may be long-term
needs
“business model”:
What are design / production costs?
What is the life-cycle?
Are there “product families”?
Design culture:
Computer/ VLSI—simulate, simulate, simulate
Mechanical/sensors—build, build, build
Differing world views need to be reconciled
Skills an embedded systems designer needs
(*this course; [not covered] ):
• *C programming / programming
• HDL: *Verilog / [VHDL]
• Hardware design: *Altera FPGAs / [Xilinx ….]
• Computer architecture
• *?A/D & D/A conversion (I/O)
• Operating systems
• *Real-time programming, operating systems
• (*)Project skills: Writing/documentation;
Engineering design; Teamwork; Managing
• [Business training]
i.e., thorough knowledge of hardware and software
design, implementation, and test + understanding of
consumer/business issues
Lab 1: tonight, 825 Old Chem
--student survey
--ideally each student will have a laptop running windows
(or possibly linux)
--tools can be downloaded from the Altera site:
http://www.altera.com/education/univ/unv-index.html
--boards: we would like to use the Altera DE-1 board, ideally
each team will acquire one; to start we can do design and
simulation
--work on understanding how to implement simple circuits in
Verilog and how to simulate them and get timing information (2week assignment, due September 10)