Computer-Aided Co-design Methods and Tools 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 Computer-aided codesign methods and tools Winter-Spring 2001 Codesign of Embedded Systems 2 Motivations System designer goals Satisfy system-level specifications in a short time Maximize system value Performance, power consumption, applicability to various user demands Minimize cost Number of HW parts, size of silicon die, cost of SW development Winter-Spring 2001 Codesign of Embedded Systems 3 Motivations (cont’d) CAD tools are useful, because Require formal system-level specification => structured design methodology Facilitate HW and SW reuse Support analysis and validation tools Facilitate design-space exploration Overall objective in codesign tool R&D Provide IDE for concurrent specification, validation, and synthesis of both HW and SW Winter-Spring 2001 Codesign of Embedded Systems 4 Modeling Model of computation vs. HW/SW language Computation model: Languages: Has an underlying mathematical structure: FSM, Petri net Some are means of expressing a computation model Some don’t have a formal semantics Functional modeling of digital systems Normally C or C++, to check generic properties and derive some measure of performance & cost Too general. Do not capture all necessary specifications of HW component Winter-Spring 2001 Codesign of Embedded Systems 5 Modeling (cont’d) Some specification models “FSM or interconnection of FSMs” Model Partial-orders of tasks Graphical representation: Statecharts Textual languages: SDL, Esterel HW components: Verilog / VHDL Synchronous data-flows: Silage, DFL A perfect language for system is idealistic Heterogeneity of system components Conflicting interests of CAD developers and users Lack of a formalism to capture well all features 6 Winter-Spring 2001 Codesign of Embedded Systems Validation Validation vs. verification Approaches to validation Formal verification Simulation (co-simulation) Emulation Winter-Spring 2001 Codesign of Embedded Systems 7 Validation (cont’d) Simulation cannot ensure correctness, but still useful Heterogeneity Weakly heterogeneous Lumped, GP computing systems. Simple control systems Can be simulated by extending HDL simulators Strongly heteroneous Cellular phones, avionics Require specialized simulation environments Winter-Spring 2001 Codesign of Embedded Systems 8 Validation (cont’d) Simulator features for weakly heterogeneous systems Adequate timing accuracy Fast execution Visibility of internal registers for debugging Strategy 1: Use HDL simulator + HDL models for processor and ASICs Long HW simulation time for each instruction: accuracy vs. speed tradeoff Winter-Spring 2001 Codesign of Embedded Systems 9 Validation (cont’d) Strategy 2: avoid processor HDL model Use HW/SW comm. Protocol SW is compiled and communicates with the HDL simulator which models ASIC HDL simulator is bottle-neck Internal registers not visible Winter-Spring 2001 Codesign of Embedded Systems 10 Validation (cont’d) Strategy 3: Emulate HW on a reconfigurable platform Automatic partitioning tools to minimize system-simulation time have been developed Visibility of internal states is limited => probable slow debugging Winter-Spring 2001 Codesign of Embedded Systems 11 Validation (cont’d) Simulation of strongly heterogeneous and distributed systems Specialized simulators: Ptolemy Extesible, OO kernel Supports several computation models Models are not implemented in simulation kernel, but in domains that can interact without knowing their semantics Some developed domains: data-flow, discreteevent. More domains are user-insertable. Winter-Spring 2001 Codesign of Embedded Systems 12 Synthesis What’s Synthesis/Co-Synthesis System-level Partitioning Hardware synthesis Software synthesis and retargetable compilation Interface synthesis Winter-Spring 2001 Codesign of Embedded Systems 13 Synthesis (cont’d) HW: HDL (Behavioral, DataFlow, Structural), Schematic Specification Co-Synthesis SW: Algorithm, Textual/Graphical representation Synthesis RTL, Gate level, Transistors, Layout Winter-Spring 2001 Detailed Representation of Implementation Codesign of Embedded Systems Executable or Compilable code: The program(s), OS routines 14 Synthesis (cont’d) Traditional System Design Process Tasks SW design SW test System design PCB test ASIC design Fabrication Test Time Copyright J. Madsen, some modifications applied Winter-Spring 2001 Codesign of Embedded Systems 15 Synthesis (cont’d) Co-Design Process Tasks SW design SW test System design Shared Design ASIC design Fabrication PCB test Test Time System-Level Partitioning Winter-Spring 2001 Codesign of Embedded Systems 16 Synthesis (cont’d) Some special cases Synthesis of ISPs HLS techniques are applicable to high-level models of processors Many high-level decisions are not automatic yet Example: Pipeline organization, Datapath design Reason: Few new ISPs compared to ASICs Performance is very sensitive High production-volume recovers high design costs HLS is, however, used for control functions Winter-Spring 2001 Codesign of Embedded Systems 17 Synthesis (cont’d) Some special cases Design of compilers Corresponds to the processor architecture Compilers are co-designed with processors Automated tools for synthesis of pipeline control unit + compiler Synthesis of lumped embedded systems Natural evolution of HLS Uniform specification + manually or automatically partitioning into HW+SW+interface Winter-Spring 2001 Codesign of Embedded Systems 18 Synthesis (cont’d) System-Level Partitioning One extreme: Full HW solution Other extreme: Full SW solution High performance due to Parallelism High cost and long time of ASIC fabrication High-performance, low-cost processors Operation serialization Lack of support for specific tasks Best solution is a mix of HW and SW Winter-Spring 2001 Codesign of Embedded Systems 19 Synthesis (cont’d) System-Level Partitioning Major approaches to Partitioning Co-synthesis of dedicated co-processors for SW execution acceleration Migration of non-critical functions to SW Complementary objectives Maximize performance Minimize system cost, subject to required performance Winter-Spring 2001 Codesign of Embedded Systems 20 Synthesis (cont’d) System-Level Partitioning Coprocessor approach: COSYMA tool suite System model in C* SW implementation of system readily available Uses CDFG Identifies performance bottlenecks Migrates bottleneck to corresponding ASIC Three times faster execution of an algorithm in HDTV Winter-Spring 2001 Migration to SW approach: VULCAN tool suite System model in HardwareC System is HW synthesizable using Olympus Uses CDFG Partitions CDFG into SW threads and HW circuits Automatically generates units to interface processor to the ASIC Codesign of Embedded Systems 21 Synthesis (cont’d) System-Level Partitioning Problems in Partitioning Quality of partition depends on performance/cost estimators Estimators base on abstract system representation (CDFG) Estimators need to be fast A coarse-grained partition may be of more interest Module/Unit level partition instead of operation-level Less degree of freedom Designers’ expertise can be more easily exploited by allowing macroscopic choices Winter-Spring 2001 Codesign of Embedded Systems 22 Synthesis (cont’d) HW synthesis Mostly based on Graph-theoretic approaches and algorithms (To be presented as an extra class) Winter-Spring 2001 Codesign of Embedded Systems 23 Synthesis (cont’d) SW synthesis SW Synthesis and Retargetable Compilation SW synthesis Compilation Maybe preceded by automatic SW generation steps Compilation specialties in embedded systems Code is compiled once=> compilation time not important, maximum optimization is desired RT constraints=>code must be tight and fast => assembly Embedded systems often use ASIPs=>unordinary architectures=>hard to compilers Winter-Spring 2001 Codesign of Embedded Systems 24 Synthesis (cont’d) SW synthesis Retargetable Compilers Developing a new compiler for each new ASIP is unreasonable=>retargetable compilers Classification according to retargeting time Portable compiler Compiler-compiler Machine-independent compiler Winter-Spring 2001 Codesign of Embedded Systems 25 Synthesis (cont’d) SW synthesis Compiler components Source-code-dependant Front-end Code-generation/optimization intermediate stage Code-generation back-end instruction selection Winter-Spring 2001 register allocation Codesign of Embedded Systems instruction scheduling 26 Synthesis (cont’d) SW synthesis Other topics in retargetable compilation Micro-programmed ASIPs Compacting the micro-program Winter-Spring 2001 Determine ILP (Instruction-Level Parallelism) Encoding of each word Codesign of Embedded Systems 27 Synthesis (cont’d) Interface synthesis Interface Synthesis Generation of SW routines and/or HW circuits to interface processor and ASIC to a communication channel operating under a given protocol (e.g. PCI, VME) Several standards available & system-level model should avoid specifying details of comm. mechanism An approach: model comm. protocol with a language (Promela) and derive C++ routines and gate-level HW out of it Winter-Spring 2001 Codesign of Embedded Systems 28 Synthesis (cont’d) Interface synthesis Interface Synthesis (cont’d) Specific problems arise from: Partitioning a system into interacting HW and SW Interfacing processors to peripherals (sensors, actuators) Communication and synchronization CHINOOK: automatic (processor port allocation, deciding to implement device drivers in HW or SW) Scheduling the processor communication Winter-Spring 2001 Complicated under RT constraints Complicated under data-dependant delays Codesign of Embedded Systems 29 Summary System Specification Verification Co-Synthesis Partitioning Verification HW Parameter Estimation SW Parameter Estimation HW Synthesis SW Synthesis ASIC OS EXE Code System Integration Winter-Spring 2001 Verification Codesign of Embedded Systems Verification Final Verification 30 Summary (cont’d) CAD Tools are essential to progress in electrical system design Design of digital components of systems benefit from HW/SW Codesign At present, Codesign CAD support is still weak Co-simulators commercially available Others (co-synthesis, verification, IDEs, etc) growing up Impact of CAD tools on system-level design will be more profound than their impact on IC design Winter-Spring 2001 Codesign of Embedded Systems 31 What we learned today CAD tools are essential to success in this field They must support Modeling (specification), Validation, and Synthesis in a single integrated environment Major constituents of codesign Modeling (Specification) Validation (Verification) Synthesis (Co-synthesis) Winter-Spring 2001 System-level partitioning HW synthesis SW synthesis Interface synthesis Codesign of Embedded Systems 32 Complementary notes Postponed Verilog Short Course Instructor: Farshid Soheili, Emad Semicon. Co. First session Saturday: Esfand 13th “CE-202” room, 15 o’clock Take the first chapter of DeMicheli’s book from “Publications Room” Winter-Spring 2001 Codesign of Embedded Systems 33 Complementary notes (cont’d) Optional paper presentation Any subtopic from last and today programme: Computer-Aided Codesign Methods and Tools Project Today is date to choose and announce your partner for the final project Winter-Spring 2001 Codesign of Embedded Systems 34