150 likes | 164 Views
Learn about embedded systems, FPGAs, hardware basics, design processes, and more. Develop specialized processors and software efficiently.
E N D
Course overview: Syllabus: text, references, grading, etc. Schedule: will be updated regularly; lectures, assignments Project / Team formation Student survey
CARRY IN IN OUT BUS BUS CLOCK RESET MEM IN BUS LOGIC (LOOK-UP TABLE or LUT) MEMORY (1-BIT) MEM OUT CARRY OUT Goal: quickly and efficiently produce special-purpose processors / software for specific applications Hardware basis in this course: FPGAs (PLAs) GLOBAL BUS FPGA (EXAMPLE) LOCAL BUS RAM BLOCK SINGLE FPGA CELL
DESIGNING AN FPGA-BASED CIRCUIT / PROCESSOR: • USE HIGH-LEVEL ABSTRACTION • USE HARDWARE DESCRIPTION LANGUAGES • USE AUTOMATED TOOLS TO PRODUCE LAYOUT • MAY FINE-TUNE DESIGN DETAILS • DESIGN APPLICATION-SPECIFIC PROCESSOR / SOFTWARE
Final product: “embedded system” Reference: http://en.wikipedia.org/wiki/Embedded_system
Embedded system implemented in FPGA: • Special-purpose “computer” designed to be IN 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 addition of additional functionality • Hardware / software codesign now becomes a possibility
Strengths: Flexibility, Design Productivity; Weaknesses: Performance, Resource Usage Strengths: Performance, Resource Usage Weaknesses: Flexibility, Design Productivity; The basic codesign process: (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. • Software: often has a fixed function, and is specific to the 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 FPGAs / FPGAs] • Computer architecture • *?A/D & D/A conversion (I/O) • Operating systems • *Real-time programming, op sys • (*)Project skills: Writing/documentation; Engineering design; Teamwork; Managing • [Business training]