Introduction to HW/SW Codesign Part of HW/SW Codesign of Embedded Systems Course (CE 40-226) Winter-Spring 2001 Codesign of Embedded Systems 1 Today programme Introduction to HW/SW Codesign Distinguishing features of electronic systems System-level codesign issues Reference: G. De Micheli, M. Sami, “Hardware/Software Co-design”, NATO ASI Series, Kluwer Academic Publishers, 1996. Winter-Spring 2001 Codesign of Embedded Systems 2 Introduction to HW/SW Codesign Distinguishing features of electronic systems Winter-Spring 2001 Codesign of Embedded Systems 3 Distinguishing features of electronic systems Application Domain Hardware Technology Degree of Programmability Level of Integration Winter-Spring 2001 Codesign of Embedded Systems 4 Application domains General-purpose computing systems Dedicated computing and control systems Emulation and prototyping systems Winter-Spring 2001 Codesign of Embedded Systems 5 Application domains (cont’d) GP computing systems Traditional computers End-user can program them Support applications of different kinds Dedicated computing and/or control systems Specific target applications Limited programming access for the user Dedicated software programs Known as Embedded Systems “Control functions” or “Data comm. and processing” or both Winter-Spring 2001 Codesign of Embedded Systems 6 Application domains (cont’d) Emulation and prototyping systems Programmable HW technology Hardware configuration by HW compilers (synthesis systems) Specialized users program them Intermediate points of the design and manufacturing of a product Winter-Spring 2001 Codesign of Embedded Systems 7 Degree of programmability Programmability at the Application level Instruction level Hardware level Winter-Spring 2001 Codesign of Embedded Systems 8 Degree of programmability (cont’d) Application level Most restricted level User have to use specialized language VCR - Automated navigation systems Instruction level Personal computer users Writing, compiling and executing programs Processor architecture defines degree of programmability Winter-Spring 2001 Codesign of Embedded Systems 9 Degree of programmability (cont’d) Hardware level Configuring HW after manufacturing Micro-programming: emulation of other ISAs Common for DSPs, not for ISPs (esp. RISC) FPGAs Winter-Spring 2001 Codesign of Embedded Systems 10 Degree of programmability (cont’d) Programmability Increases applicability, but not performance Top performance in GP computing: super-scalar RISC architectures Dedicated applications: ASICs Some app. domains (ex. Comm.) ASIPs: specialized instruction-level programmable processors Winter-Spring 2001 Midway between ASIC and ISP: Performance, Power, Production volume Codesign of Embedded Systems 11 Technology Digital-system components have Different scale of integration Different fabrication technology Discrete and integrated components Bipolar, CMOS To us, technology affects field-programmability Storing programs in memory Configurable HW One-time configurable Re-configurable Winter-Spring 2001 Codesign of Embedded Systems 12 Level of Integration Digital systems are Advantages of higher integration Lumped => System-on-Chip Distributed Higher reliability Lower power budget Increased performance Disadvantages Larger chip sizes. More complex debugging Winter-Spring 2001 Codesign of Embedded Systems 13 Introduction to HW/SW Codesign System-level Co-Design Issues Winter-Spring 2001 Codesign of Embedded Systems 14 General-purpose computing systems ISP: Primarily in general-purpose computing Codesign of ISP is strange Architectural support for OS Compiler development: Retargetable, Optimizing Codesign areas: organizational choices: pipelines, concurrency, memory hierarchy Instruction-set selection Winter-Spring 2001 Performance Compatibility Codesign of Embedded Systems 15 Dedicated computing and control systems Data-processing systems GP DSP / ASIP ASIP Less compatibility, more performance Need for application-specific compilers Retargetable compilers Computer-Aided compiler generation fixed-point arithmetic operations Hence, use assembly Today design time: SW > HW Winter-Spring 2001 Codesign of Embedded Systems 16 Dedicated computing … (cont’d) Embedded control systems Sensors Memory CPU Hardwired Unit Random Logic Timers A/D D/A Winter-Spring 2001 Codesign of Embedded Systems Actuators Embedded System 17 Dedicated computing … (cont’d) Control systems Often have a data-processing component Reactive systems RT: hard/soft Timers Safety and reliability more important than performance Safety: Formal verification+ System-level testing Reliability: Redundancy Winter-Spring 2001 Codesign of Embedded Systems 18 Emulation and prototyping systems Codesign application 1: SW accelerators/coprocessors Specific operations: floating-point ops. Critical loops: exploiting local parallelism for(j=0; j<N; j++) a[j] = a[j] + b[j]; for(j=1; j<N; j++) a[j] = a[j] + a[j-1]; Coprocessors based on programmable HW Example: PAM (PeRLe-0, PeRLe-1) Winter-Spring 2001 Codesign of Embedded Systems 19 Emulation and prototyping systems (cont’d) Major codesign problems: Identifying critical parts of SW Compile critical SW parts for HW emulation Codesign application 2: Acceleration of system-level simulation by HW emulation Winter-Spring 2001 Codesign of Embedded Systems 20 Emulation and prototyping systems (cont’d) Codesign application 3: Computer-aided prototyping Validate HW before manufacturing to avoid expensive redesign Prototyping of complex digital systems (HW + SW) Winter-Spring 2001 Codesign of Embedded Systems 21 What we learned today Categorized digital systems This helps in decision-makings in codesign strategies and algorithms Reviewed problem areas within each application domain Winter-Spring 2001 Codesign of Embedded Systems 22 Complementary notes Verilog Short Course Instructor: Farshid Soheili, Emad Semicon. Co. First session Saturday: Esfand 6th “Avecina-16” room VHDL short course will also be held soon Winter-Spring 2001 Codesign of Embedded Systems 23 Complementary notes (cont’d) Optional paper presentation Any subtopic from second topic of today programme: System-Level Co-Design Issues Winter-Spring 2001 Codesign of Embedded Systems 24