1 / 33

Hardware-Software Codesign

Hardware-Software Codesign. M. Balakrishnan Deptt. of Comp. Sci. & Engg. I.I.T. Delhi. What is Design ?. Synthesis Transforming functional requirements to structural design Validation Simulation to show functional requirements captured using test inputs are met

whitemaria
Download Presentation

Hardware-Software Codesign

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Hardware-Software Codesign M. Balakrishnan Deptt. of Comp. Sci. & Engg. I.I.T. Delhi SLD Workshop

  2. What is Design ? • Synthesis • Transforming functional requirements to structural design • Validation • Simulation to show functional requirements captured using test inputs are met • Verification to show equivalence between two design descriptions SLD Workshop

  3. Synthesis • Logic synthesis • FSM synthesis • RTL synthesis • Behavioral synthesis • System synthesis Codesign SLD Workshop

  4. Validation • Simulation • Various levels of abstraction (also resolution) • Formal verification • Proving equivalence between specification and implementation • Mixed approaches • Symbolic simulation SLD Workshop

  5. Why Hardware-Software Codesign? Due to the Changing Design Space SLD Workshop

  6. 70’s Design Space Shift and Add Multiplier + Example: y <= c * x ; SLD Workshop

  7. Example : y <= c * x ; 80’s Design Space Array Combinational Multiplier * SLD Workshop

  8. Example : y <= c * x ; 90’s Design Space Cost? Power? Performance? Value of c? Encoding of c? Shift and Add Multiplier Array Combinational Multiplier Array Combinational Multiplier + * SLD Workshop

  9. Shift and Add Multiplier Array Combinational Multiplier + * Example : y <= c * x ; Today’s Design Space Cost? Power? Performance? Value of c? Encoding of c? Source and destination of x & y? Frequency of execution ? HW SW RISC DSP VLIW SLD Workshop

  10. Heterogeneity of Platforms Apart from the need to explore the vast design space, heterogeneity of the modern SoC platforms pose a major co-design challenge • Hardware resources • Software programmable resources • Reconfigurable resources SLD Workshop

  11. Co-design Environment • Unified representation of design as well as test benches • Codesign • Co-synthesis • Co-verification SLD Workshop

  12. Unified Representation • C/C++ • MATLAB • SpecC • SystemC/SystemVerilog This also act as co-simulation platforms and are driven by a library with models of both hardware and software components SLD Workshop

  13. Hardware-Software Co-Synthesis: Key Issues • Partitioning • Estimation (area, power, performance) • Communication models • Real-time scheduling issues • HW Synthesis • IP reuse • SW Synthesis • ASIPs and Retargetable code generation SLD Workshop

  14. Granularity • Operation level • Basic block level • Function level • Process/task level SLD Workshop

  15. Partitioning Granularity Process p1; … Function f1 … A := B op C; x := y op z; … Process p2; … Process p3; … SLD Workshop

  16. Partitioning Granularity Process p1; … Function f1 … A := B op C; x := y op z; … Process p2; … Process p3; … Candidate 1: operation Candidate 2: operation SLD Workshop

  17. Partitioning Granularity Process p1; … Function f1 … A := B op C; x := y op z; … Process p2; … Process p3; … Candidate: basic block SLD Workshop

  18. Partitioning Granularity Process p1; … Function f1 … A := B op C; x := y op z; … Process p2; … Process p3; … Candidate: function SLD Workshop

  19. Partitioning Granularity Process p1; … Function f1 … A := B op C; x := y op z; … Process p2; … Process p3; … Candidate 1: process p1 Candidate 2: process p2 Candidate 3: process p3 SLD Workshop

  20. Partitioning Granularity The main consideration to decide on the granularity of partitioning is the coupling between hardware and software This translates to • Latency for data transfer • Transfer rate • Synchronization overheads SLD Workshop

  21. Coupling Example: Close www.stretchinc.com SLD Workshop

  22. Coupling Example: Close www.mips.com SLD Workshop

  23. Coupling Example: Close www.tensilica.com Source: www.arc.com SLD Workshop

  24. Coupling Example: Close Source: www.altera.com SLD Workshop

  25. Coupling Examples: Medium Source: www.arm.com SLD Workshop

  26. Coupling Example: Medium Source: www.xilinx.com SLD Workshop

  27. Coupling Example: Loose Network SLD Workshop

  28. Synthesis Example SLD Workshop

  29. Performance Estimation Complexity due to shared resources • Bus • Memory CPU Mem. ASIC 1 ASIC 2 SLD Workshop

  30. Communication Estimation • Interconnection structures • Shared bus • Cross bar or other switches • Data transfer modes • Word transfer • DMA transfer • Inter-connection overheads • Resource contention and prediction SLD Workshop

  31. Hardware Synthesis • Data transfers and data sharing • Type conversions • C to HDL • RTL Synthesis Key challenge is to use existing designs and make them compatible SLD Workshop

  32. Software Synthesis • Real-time scheduling kernel • I/O Drivers and interfacing • ASIPs and application specific FUs • Retargetable code generation SLD Workshop

  33. Thank You SLD Workshop

More Related