Codesign FrameworkEmbedded Processor TypesDomain specific processorsSystem DesignSystem Design contd.SpecificationFunctions vs. ComputationEssential IssuesA Co-design frameworkModelModelModelModelingModel of ComputationModels of Computationwhy different Models?Specification languagesSpecification languagesA Co-design frameworkValidationVerificationWeakly heterogeneous systemsHighly heterogeneous systemsA Co-design frameworkPartitioningPartitioningA Co-design frameworkHardware synthesisSoftware synthesisInterface synthesisExisting ToolsAvailable toolsPOLISPTOLEMYProjectsProject (contd.)Codesign Framework Parts of this lecture are borrowed from lectures of Johan Lilius of TUCS and ASV/LL of UC Berkeley available in their web.Mahapatra-Texas A&M-Spring'04 2Embedded Processor Types• General Purpose– Expensive, requires more support logics, unpredictable• Controllers– Control flow dominated, bit-level operation emphasized• Field Programmable Gate Arrays– Configurable, replaces processors and drivers to itself• DSP– Based upon multiply-add module to suit DSP algorithmsMahapatra-Texas A&M-Spring'04 3Domain specific processors• Network processors– Array processors (16-256) to process internet packets on a single chip– High-end routers• Media processors– SIMD or vector processor (RISC,VLIW) with multimedia instruction extensions– Digital camera, DVD player etc.Mahapatra-Texas A&M-Spring'04 4System DesignWhat is System Design?“Is the process of implementing a desired functionality using a set of components”Mahapatra-Texas A&M-Spring'04 5System Design contd.Step1 Design must begin with specifying the desired functionalityMahapatra-Texas A&M-Spring'04 6SpecificationFor precise specification, we need to- think the system to be a collection of simpler subsystems - a method (rules) to compose these piecesASV/LL UCB 7Functions vs. Computation• Functions specify only a relation between two sets of variables (input and output)• Computation describe how the output variables can be derived from the value of input variableMahapatra-Texas A&M-Spring'04 8Essential Issues• Modeling– System description– System behavior• Validation (verification)• Performance estimation• Partitioning and mapping• Synthesis:– Software synthesis– Hardware synthesis– Interface synthesisLilius of TUCS 9A Co-design frameworkSystem descriptionCompilerSystem behaviorPartitionning and mappingValidationASSUMPTION: Homogenous model of computationPartitioned specificationSW synthesis Hw synthesisInterface synthesisC-code VHDL VHDLPrototypePerformance estimationEvaluationMahapatra-Texas A&M-Spring'04 10Model The method or rules to compose the pieces of subsystems to create a system functionality is usually called a Model.Mahapatra-Texas A&M-Spring'04 11ModelModel should be…• formal : no ambiguity• complete : with sets of properties, performance indices and constraints• comprehensive and easy to modify• natural to understandMahapatra-Texas A&M-Spring'04 12ModelWhat is a model?Model is a formal system consisting of objects and composition rules, and is used for describing a system’s characteristics.Lilius of TUCS 13Modeling• Modeling digital systems is often complicated by the heterogeneity of its components.• Distinguish between:– models of computation– hardware/software (specification) languages.• A language may imply many models:– UML State Machines: • synchronous behavior within a state machine• asynchronous behavior between state machinesASV/LL UCB 14Model of Computation• A MoC is a framework in which to express what sequence of actions must be taken to complete a computation• An instance of a model of computation is a representation of a function under a particular interpretation of its constituents.• Not necessarily a bijection (almost never!)Lilius of TUCS 15Models of Computation• Often existing models belong to several categories– Finite state machines:• totally ordered discrete events– Petri nets:• partially ordered events– Synchronous data-flow:• multirate discrete time• partially-ordered eventsMahapatra-Texas A&M-Spring'04 16why different Models?• Various models have certain strong properties that might be useful for some applications• Some problems might be un-decidableLilius of TUCS 17Specification languages• Finite-state based– synchronous communication:• Statecharts, Esterel– asynchronous communication:• SDL• Partial orders of tasks: – VHDL at behavioral level• Discrete time, cycle based:– VHDL at RTL level• Synchronous data-flow: Silage, DFL, LustreLilius of TUCS 18Specification languages• No perfect language exists!– Control (software): asynchronous (fsm)– DSP: data-flow– Hardware: synchronousÖForce user to think in terms of:– one model of computation system: POLIS– many models of computation: PTOLEMY19A Co-design frameworkSystem descriptionCompilerSystem behaviorPartitionning and mappingValidationASSUMPTION: Homogenous model of computationPartitioned specificationSW synthesis Hw synthesisInterface synthesisC-code VHDL VHDLPrototypePerformance estimationEvaluationLilius of TUCS 20Validation• System-level validation (co-validation):– Methods for gaining reasonable certainty that the design is free from errors.• Methods:– Verification– (Co-)Simulation– EmulationLilius of TUCS 21Verification• Specification verification• Is the specification consistent?• Does it have the required properties?• Implementation verification• Have we implemented the specification?• Checking of:• safety: nothing bad ever happens• liveness: something good eventually happensMahapatra-Texas A&M-Spring'04 22Weakly heterogeneous systems• One or more processors, some dedicated hardware, and several software layers.• Desired features of simulator:• adequate timing accuracy• fast execution• visibility of internal registers for debugging purposes• Problems:• One step in program is equivalent to many steps in hardware Ölong running timesÖAvailability of hardware models with the required abstraction level.Mahapatra-Texas A&M-Spring'04 23Highly heterogeneous systems• Specialized simulators:– PTOLEMY (U.C. Berkeley)24A Co-design frameworkSystem descriptionCompilerSystem behaviorPartitionning and mappingValidationASSUMPTION: Homogenous model of computationPartitioned specificationSW synthesis Hw synthesisInterface synthesisC-code VHDL VHDLPrototypePerformance
View Full Document