ECOE 560 Design Methodologies and Tools for Software/Hardware Systems Spring 2006 Serdar Taşıran.

Slides:



Advertisements
Similar presentations
SOC Design: From System to Transistor
Advertisements

ECOE 560 Design Methodologies and Tools for Software/Hardware Systems Spring 2004 Serdar Taşıran.
7/23 CSE 325 Embedded Microprocessor System Design Fall 2010 Computer Science & Engineering Department Arizona State University Tempe, AZ Dr. Yann-Hang.
© 2008 Wayne Wolf Overheads for Computers as Components, 2nd ed. Introduction What are embedded computing systems? Challenges in embedded computing system.
Embedded Systems: Introduction
Today’s Lecture What is the embedded system?
CHAPTER 1 THE 8051 MICROCONTROLLERS. Microcontroller vs. General- Purpose Microprocessor General-purpose microprocessors have ◦ No RAM ◦ No ROM ◦ No I/O.
Khaled A. Al-Utaibi  Computers are Every Where  What is Computer Engineering?  Design Levels  Computer Engineering Fields  What.
Introduction to Operating Systems CS-2301 B-term Introduction to Operating Systems CS-2301, System Programming for Non-majors (Slides include materials.
Spring 08, Jan 15 ELEC 7770: Advanced VLSI Design (Agrawal) 1 ELEC 7770 Advanced VLSI Design Spring 2007 Introduction Vishwani D. Agrawal James J. Danaher.
Spring 07, Jan 16 ELEC 7770: Advanced VLSI Design (Agrawal) 1 ELEC 7770 Advanced VLSI Design Spring 2007 Introduction Vishwani D. Agrawal James J. Danaher.
Department of Electrical and Computer Engineering Texas A&M University College Station, TX Abstract 4-Level Elevator Controller Lessons Learned.
VLSI Layout Algorithms CSE 6404 A 46 B 65 C 11 D 56 E 23 F 8 H 37 G 19 I 12J 14 K 27 X=(AB*CD)+ (A+D)+(A(B+C)) Y = (A(B+C)+AC+ D+A(BC+D)) Dr. Md. Saidur.
Chapter 1. Introduction This course is all about how computers work But what do we mean by a computer? –Different types: desktop, servers, embedded devices.
Define Embedded Systems Small (?) Application Specific Computer Systems.
Introduction Operating Systems’ Concepts and Structure Lecture 1 ~ Spring, 2008 ~ Spring, 2008TUCN. Operating Systems. Lecture 1.
ASPPRATECH.
Copyright Arshi Khan1 System Programming Instructor Arshi Khan.
Chapter 1 Sections 1.1 – 1.3 Dr. Iyad F. Jafar Introduction.
Dalya Gaber. Definition:- Embedded system is any device that includes a computer but is not itself a general purpose computer. It has hardware & software.
1 ECE 354 Slides modified from Moritz/Koren/Burleson/Kundu, UMass ; Wolf, Computers as Components, Morgan Kaufman, 2005 Embedded Systems.
(1) Introduction © Sudhakar Yalamanchili, Georgia Institute of Technology, 2006.
L29:Lower Power Embedded Architecture Design 성균관대학교 조 준 동 교수,
Using a Formal Specification and a Model Checker to Monitor and Guide Simulation Verifying the Multiprocessing Hardware of the Alpha Microprocessor.
Codesign of Embedded Systems1 Introduction to Embedded Systems Part of HW/SW Codesign of Embedded Systems Course (CE )
1 ECE 354 © Koren/Moritz 2008, some slides modified from Burleson, UMass and Wolf, Computers as Components, Morgan Kaufman, 2005 ECE 354 Lecture 1 The.
1 Chapter 2. The System-on-a-Chip Design Process Canonical SoC Design System design flow The Specification Problem System design.
1 COMP201 Computer Systems Dr Richard Nelson Room G.1.29.
ECE-777 System Level Design and Automation Introduction 1 Cristinel Ababei Electrical and Computer Department, North Dakota State University Spring 2012.
©2008 The McGraw-Hill Companies, Inc. All rights reserved. Digital Electronics Principles & Applications Seventh Edition Chapter 13 Computer Systems Roger.
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,
CAD Techniques for IP-Based and System-On-Chip Designs Allen C.-H. Wu Department of Computer Science Tsing Hua University Hsinchu, Taiwan, R.O.C {
COMP3221/9221: Microprocessors and Embedded Systems COMP3221: Microprocessors and Embedded Systems Lecture 31: Embedded Systems
Lecture 13 Introduction to Embedded Systems Graduate Computer Architecture Fall 2005 Shih-Hao Hung Dept. of Computer Science and Information Engineering.
Micro processor and Micro Controllers
Computers organization & Assembly Language Chapter 0 INTRODUCTION TO COMPUTING Basic Concepts.
Section 10: Advanced Topics 1 M. Balakrishnan Dept. of Comp. Sci. & Engg. I.I.T. Delhi.
Microcontroller Presented by Hasnain Heickal (07), Sabbir Ahmed(08) and Zakia Afroze Abedin(19)
High Performance Embedded Computing © 2007 Elsevier Lecture 3: Design Methodologies Embedded Computing Systems Mikko Lipasti, adapted from M. Schulte Based.
High Performance Embedded Computing © 2007 Elsevier Chapter 1, part 2: Embedded Computing High Performance Embedded Computing Wayne Wolf.
Lecture 2 1 ECE 412: Microcomputer Laboratory Lecture 2: Design Methodologies.
Computer Organization and Design Computer Abstractions and Technology
IC Products Processors –CPU, DSP, Controllers Memory chips –RAM, ROM, EEPROM Analog –Mobile communication, audio/video processing Programmable –PLA, FPGA.
Computer Organization & Assembly Language © by DR. M. Amer.
1 chapter 1 Computer Architecture and Design ECE4480/5480 Computer Architecture and Design Department of Electrical and Computer Engineering University.
This course is designed by Dr. Khaled A. Al-Utaibi.
What is a Microprocessor ? A microprocessor consists of an ALU to perform arithmetic and logic manipulations, registers, and a control unit Its has some.
DR. SIMING LIU SPRING 2016 COMPUTER SCIENCE AND ENGINEERING UNIVERSITY OF NEVADA, RENO CS 219 Computer Organization.
Introduction to VLSI Design Amit Kumar Mishra ECE Department IIT Guwahati.
Software Systems Division (TEC-SW) ASSERT process & toolchain Maxime Perrotin, ESA.
CS244-Introduction to Embedded Systems and Ubiquitous Computing Instructor: Eli Bozorgzadeh Computer Science Department UC Irvine Winter 2012.
Computer Organization IS F242. Course Objective It aims at understanding and appreciating the computing system’s functional components, their characteristics,
1 Chapter 1 Basic Structures Of Computers. Computer : Introduction A computer is an electronic machine,devised for performing calculations and controlling.
BITS Pilani Pilani Campus Pawan Sharma ES C263 Microprocessor Programming and Interfacing.
Heterogeneous Processing KYLE ADAMSKI. Overview What is heterogeneous processing? Why it is necessary Issues with heterogeneity CPU’s vs. GPU’s Heterogeneous.
Case Study #1 Microcontroller System. What is a microcontroller? A microcontroller can be considered a self-contained system with a processor, memory.
Definition CASE tools are software systems that are intended to provide automated support for routine activities in the software process such as editing.
ECE354 Embedded Systems Introduction C Andras Moritz.
ELEC 7770 Advanced VLSI Design Spring 2016 Introduction
THE PROCESS OF EMBEDDED SYSTEM DEVELOPMENT
Formal Methods (i.e. mathematical, algorithmic) for Software and Hardware Designs and, more generally, Design Tools and Technologies
Computer Architecture CSCE 350
Chapter 1: The 8051 Microcontrollers
ELEC 7770 Advanced VLSI Design Spring 2014 Introduction
ELEC 7770 Advanced VLSI Design Spring 2012 Introduction
ELEC 7770 Advanced VLSI Design Spring 2010 Introduction
CS 501: Software Engineering Fall 1999
Introduction to Embedded Systems
CHAPTER 1 THE 8051 MICROCONTROLLERS
System design techniques
Presentation transcript:

ECOE 560 Design Methodologies and Tools for Software/Hardware Systems Spring 2006 Serdar Taşıran

ECOE 560, Spring Outline of today’s lecture What is a software/hardware (embedded) system? Examples Characteristics The design problem Course outline Design automation methodologies and tools Levels of abstraction in design descriptions

ECOE 560, Spring Definition Embedded system: any device that includes a programmable computer but is not itself a general- purpose computer. Take advantage of application characteristics to optimize the design: don’t need all the general-purpose bells and whistles.

ECOE 560, Spring Examples Personal digital assistant (PDA). Printer. Cell phone. Automobile: engine, brakes, dash, etc. Television. Household appliances. PC keyboard (scans keys).

ECOE 560, Spring Example: BMW 850i brake and stability control system Anti-lock brake system (ABS): pumps brakes to reduce skidding. Automatic stability control (ASC+T): controls engine to improve stability. ABS and ASC+T communicate. ABS was introduced first---needed to interface to existing ABS module.

ECOE 560, Spring BMW 850i, cont’d. brake sensor brake sensor brake sensor brake sensor ABS hydraulic pump

ECOE 560, Spring Characteristics of embedded systems Sophisticated functionality. Real-time operation. Low manufacturing cost. Low power. Designed to tight deadlines by small teams.

ECOE 560, Spring Functional complexity Often have to run sophisticated algorithms or multiple algorithms. Cell phone, laser printer. Often provide sophisticated user interfaces.

ECOE 560, Spring Real-time operation Must finish operations by deadlines. Hard real time: missing deadline causes failure. Soft real time: missing deadline results in degraded performance. Many systems are multi-rate: must handle operations at widely varying rates.

ECOE 560, Spring Non-functional requirements Many embedded systems are mass-market items that must have low manufacturing costs. Limited memory, microprocessor power, etc. Power consumption is critical in battery-powered devices. Excessive power consumption increases system cost even in wall-powered devices.

ECOE 560, Spring Design teams Often designed by a small team of designers. Often must meet tight deadlines. 6 month market window is common. Can’t miss back-to-school window for calculator.

ECOE 560, Spring Example: HP DesignJet drafting plotter Plots up to 36 inches wide at 300 DPI. Combines a variety of tasks: host communication; graphics language interpretation; rasterization; device control.

ECOE 560, Spring The plotting process HP-GL/2PostScript rasterizer raster memory plotter controller

ECOE 560, Spring Design considerations Memory utilization is important. 36 inches x large x 300 DPI x n bits/pixel is a lot of memory. Requires clever algorithms to minimize raster memory requirements. Requires real-time control. Requires concurrency: read new data, rasterize, control print head.

ECOE 560, Spring HP DesignJet hardware architecture i960KA adrs latch bus if 1 MB ROM 2 MB DRAM proc. support ASIC || if RS- 422 pen ctrl ASIC swath RAM servo proc. (8052) EEPROM DRAM ctrl front panel stepper motor carriage PC board

ECOE 560, Spring Early architectural decisions Chose Intel 80960KA as main processor. Handled parsing, rasterization control, print engine control. Multiplexed bus reduced pin count. Could be upgraded to floating-point if necessary. Used modular I/O to host system. Did not use disk for local storage.

ECOE 560, Spring System components 2 MB RAM (SIMM sockets for more). Three ASICs: pen interface; processor support; carriage. Servo processing performed by 8052 microcontroller.

ECOE 560, Spring Rasterization Plot is generated in swaths. Separate swath memory. Pixels are generated in row order by main processor. Pixels are fed to pens in column order. Pen interface ASIC transforms row order to column order.

ECOE 560, Spring Data flows i960KA adrs latch bus if 1 MB ROM 2 MB DRAM proc. support ASIC || if RS- 422 pen ctrl ASIC swath RAM servo proc. (8052) EEPROM DRAM ctrl front panel stepper motor carriage PC board parsing and rasterization swath generation drawing

ECOE 560, Spring Operations Servo processor controls stepper motor. Carriage processor must write, read pen alignment marks. Processor support ASIC provides multiple functions: interrupt and mailbox communication. Motion controller decodes position of print carriage and paper; watchdogs servo.

ECOE 560, Spring Pen interface ASIC Interfaces to i960 bus, swath memory, carriage ASIC. Pen interface reads pixels from swath in predetermined pattern using pixel address generator. Must support bidirectional printing since head prints both ways.

ECOE 560, Spring Carriage ASIC Interfaces to carriage processor bus, pen interface ASIC, servo controller. Reads timing control registers using the CPU bus. Delay registers add correction for pen alignment.

ECOE 560, Spring Development process Pixel shuffling algorithm for pen interface/carriage ASICs was prototyped in C. Built emulators for ASICs to allow parallel development of i960 software and hardware.

ECOE 560, Spring Software development environment Plotter software could be run on Unix workstation or target platform. Differed in I/O and print engine subsystems. Print engine was emulated on host with X window interface showing swath state. Used in-house RTOS. HP-GL/2 parser was legacy code.

ECOE 560, Spring Software development environment, cont’d. Rewrote vector/raster converter from assembly language to C to port to i960. Used gdb960 as monitor debugger on target system, communicating with host. Front panel developed on PC, tested by user interface designers, marketing. Paper loading designed by mechanical engineers.

ECOE 560, Spring Outline of today’s lecture What is a software/hardware (embedded) system? Course outline Design automation methodologies and tools Levels of abstraction in design descriptions

ECOE 560, Spring Course Outline System design flow Modeling, specifying, and representing systems: Description languages for design specifications and implementations Modeling formalisms: Models of computation and concurrency Fundamentals: Boolean algebras, functions, relations. Propositional logic, first-order logic. Temporal logics. Hardware implementation (component) technologies: CPUs, ASICs, FPGAs, DSPs, IP blocks, I/O components, networks, buses, on-chip communication networks, reconfigurable platforms. Software implementation (component) technologies: Operating systems, real-time operating systems, inter-process communication, scheduling. Analysis, verification, testing: Functionality. Design and implementation verification. Simulation, emulation, formal verification. Analysis, verification, testing: Performance and timing. Timing analysis and verification of hardware and software. Performance evaluation and estimation. Analysis, verification, testing: Power. Power analysis, optimization of hardware and software. Power minimization techniques. System partitioning, architecture exploration. Hardware synthesis. Software synthesis Interface design and synthesis

ECOE 560, Spring Outline of today’s lecture What is a software/hardware (embedded) system? Course outline Design automation methodologies and tools Levels of abstraction in design descriptions

ECOE 560, Spring Design methodologies A procedure for designing a system. Understanding your methodology helps you ensure you didn’t skip anything. Compilers, software engineering tools, computer-aided design (CAD) tools, etc., can be used to: help automate methodology steps; keep track of the methodology itself.

ECOE 560, Spring Design goals Performance. Overall speed, deadlines. Functionality and user interface. Manufacturing cost. Power consumption. Other requirements (physical size, etc.)

ECOE 560, Spring Design Challenges: Increasing Device and Context Complexity Exponential increase in device complexity—increasing with Moore’s law (or faster)! System context in which devices are deployed (e.g. cellular radio) are increasing in complexity as well exponential increases in design productivity Complexity We have exponentially more components!

ECOE 560, Spring Design Challenges: Deep Submicron Effects Smaller geometries are causing a wide variety of effects that we have largely ignored in the past: Cross-coupled capacitances Signal integrity Resistance Inductance DSM Effects Design of each transistor is getting more difficult!

ECOE 560, Spring Design Challenges: Heterogeneous Components Greater diversity of on-chip elements Processors Software Memory Analog More components doing different things! Heterogeneity

ECOE 560, Spring Design Challenges: Stronger Market Pressures Decreasing design window Less tolerance for design revisions Exponentially more complex, greater design risk, greater variety, and a smaller design window ! Time-to-Money

ECOE 560, Spring A Quadruple-Whammy DSM Effects Complexity Heterogeneity Time-to-Money

ECOE 560, Spring Role of CAD: Helping humans cope Transistors Processor Complexity Avg. Human IQ K 10K 100K 1M 10M Pentium Pentium Pro PPC601 PPC MIPS R Intelligence Quotient

ECOE 560, Spring Outline of today’s lecture What is a software/hardware (embedded) system? Course outline Design automation methodologies and tools Levels of abstraction in design descriptions

ECOE 560, Spring Phases of a design flow requirements specification architecture component design system integration

ECOE 560, Spring Top-down vs. bottom-up Top-down design: start from most abstract description; work to most detailed. Bottom-up design: work from small components to big system. Real design uses both techniques.

ECOE 560, Spring Stepwise refinement At each level of abstraction, we must: analyze the design to determine characteristics of the current state of the design; refine the design to add detail. Design: specify and enter the design intent Implement : refine the design through all phases Verify: verify the correctness of design and implementation