1 Chapter 2. The System-on-a-Chip Design Process - 2.1 Canonical SoC Design - 2.2 System design flow - 2.3 The Specification Problem - 2.4 System design.

Slides:



Advertisements
Similar presentations
TOPIC : SYNTHESIS DESIGN FLOW Module 4.3 Verilog Synthesis.
Advertisements

ECOE 560 Design Methodologies and Tools for Software/Hardware Systems Spring 2004 Serdar Taşıran.
Software Process Models
PradeepKumar S K Asst. Professor Dept. of ECE, KIT, TIPTUR. PradeepKumar S K, Asst.
Evolution and History of Programming Languages Software/Hardware/System.
LOGO HW/SW Co-Verification -- Mentor Graphics® Seamless CVE By: Getao Liang March, 2006.
The Design Process Outline Goal Reading Design Domain Design Flow
1 HW/SW Partitioning Embedded Systems Design. 2 Hardware/Software Codesign “Exploration of the system design space formed by combinations of hardware.
Behavioral Design Outline –Design Specification –Behavioral Design –Behavioral Specification –Hardware Description Languages –Behavioral Simulation –Behavioral.
Mahapatra-Texas A&M-Fall'001 cosynthesis Introduction to cosynthesis Rabi Mahapatra CPSC498.
Analysis Stage (Phase I) The goal: understanding the customer's requirements for a software system. n involves technical staff working with customers n.
Configurable System-on-Chip: Xilinx EDK
6/30/2015HY220: Ιάκωβος Μαυροειδής1 Moore’s Law Gordon Moore (co-founder of Intel) predicted in 1965 that the transistor density of semiconductor chips.
The Software Product Life Cycle. Views of the Software Product Life Cycle  Management  Software engineering  Engineering design  Architectural design.
From Concept to Silicon How an idea becomes a part of a new chip at ATI Richard Huddy ATI Research.
HW/SW CODESIGN OF THE MPEG-2 VIDEO DECODER Matjaz Verderber, Andrej Zemva, Andrej Trost University of Ljubljana Faculty of Electrical Engineering Trzaska.
Hardware/Software Partitioning Witawas Srisa-an Embedded Systems Design and Implementation.
Enterprise Architecture
Chapter 3 Software Processes.
(1) Introduction © Sudhakar Yalamanchili, Georgia Institute of Technology, 2006.
1 Lecture 5.3: SEF Ch 4 Requirements Analysis Dr. John MacCarthy UMBC CMSC 615 Fall, 2006.
Design methodology.
S/W Project Management Software Process Models. Objectives To understand  Software process and process models, including the main characteristics of.
Chapter 2 The process Process, Methods, and Tools
ISE. Tatjana Petrovic 249/982/22 ISE software tools ISE is Xilinx software design tools that concentrate on delivering you the most productivity available.
Chap. 1 Overview of Digital Design with Verilog. 2 Overview of Digital Design with Verilog HDL Evolution of computer aided digital circuit design Emergence.
EENG 1920 Chapter 1 The Engineering Design Process 1.
ON LINE TEST GENERATION AND ANALYSIS R. Šeinauskas Kaunas University of Technology LITHUANIA.
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 {
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 4 Slide 1 Software Processes.
©Ian Sommerville 2000, Mejia-Alvarez 2009 Slide 1 Software Processes l Coherent sets of activities for specifying, designing, implementing and testing.
Software Requirements Engineering CSE 305 Lecture-2.
SystemC: A Complete Digital System Modeling Language: A Case Study Reni Rambus Inc.
ASIC/FPGA design flow. FPGA Design Flow Detailed (RTL) Design Detailed (RTL) Design Ideas (Specifications) Design Ideas (Specifications) Device Programming.
Software Engineering Management Lecture 1 The Software Process.
FPGA-Based System Design: Chapter 6 Copyright  2004 Prentice Hall PTR Topics n Design methodologies.
High Performance Embedded Computing © 2007 Elsevier Lecture 3: Design Methodologies Embedded Computing Systems Mikko Lipasti, adapted from M. Schulte Based.
System Design with CoWare N2C - Overview. 2 Agenda q Overview –CoWare background and focus –Understanding current design flows –CoWare technology overview.
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.
J. Christiansen, CERN - EP/MIC
IEEE ICECS 2010 SysPy: Using Python for processor-centric SoC design Evangelos Logaras Elias S. Manolakos {evlog, Department of Informatics.
Hardware/Software Co-design Design of Hardware/Software Systems A Class Presentation for VLSI Course by : Akbar Sharifi Based on the work presented in.
Chonnam national university VLSI Lab 8.4 Block Integration for Hard Macros The process of integrating the subblocks into the macro.
ESL and High-level Design: Who Cares? Anmol Mathur CTO and co-founder, Calypto Design Systems.
© 2012 xtUML.org Bill Chown – Mentor Graphics Model Driven Engineering.
The Macro Design Process The Issues 1. Overview of IP Design 2. Key Features 3. Planning and Specification 4. Macro Design and Verification 5. Soft Macro.
Hardware-software Interface Xiaofeng Fan
- 1 - EE898_HW/SW Partitioning Hardware/software partitioning  Functionality to be implemented in software or in hardware? No need to consider special.
Systems Analysis and Design in a Changing World, Fourth Edition
1 CSCD 326 Data Structures I Software Design. 2 The Software Life Cycle 1. Specification 2. Design 3. Risk Analysis 4. Verification 5. Coding 6. Testing.
An Overview of Hardware Design Methodology Ian Mitchelle De Vera.
CHAPTER 8 Developing Hard Macros The topics are: Overview Hard macro design issues Hard macro design process Physical design for hard macros Block integration.
System-level power analysis and estimation September 20, 2006 Chong-Min Kyung.
Module2: System Architecture for Reconfigurable Platform
1 Software Engineering: A Practitioner’s Approach, 7/e Chapter 2 Process: A Generic View Software Engineering: A Practitioner’s Approach, 7/e Chapter 2.
1 Copyright  2001 Pao-Ann Hsiung SW HW Module Outline l Introduction l Unified HW/SW Representations l HW/SW Partitioning Techniques l Integrated HW/SW.
Architecture View Models A model is a complete, simplified description of a system from a particular perspective or viewpoint. There is no single view.
System-on-Chip Design Hao Zheng Comp Sci & Eng U of South Florida 1.
Chapter 11 System-Level Verification Issues. The Importance of Verification Verifying at the system level is the last opportunity to find errors before.
System-on-Chip Design
ASIC Design Methodology
EEE2135 Digital Logic Design Chapter 1. Introduction
Chapter 1: Introduction
IP – Based Design Methodology
Design Flow System Level
Introduction to cosynthesis Rabi Mahapatra CSCE617
UNIT 5 EMBEDDED SYSTEM DEVELOPMENT
UNIT 5 EMBEDDED SYSTEM DEVELOPMENT
Presentation transcript:

1 Chapter 2. The System-on-a-Chip Design Process Canonical SoC Design System design flow The Specification Problem System design process

2 2.1 A Canonical SoC Design Canonical or generic form of an SoC design(Fig. 2-1) – A microprocessor and its memory subsystem - On-chip buses to provide the datapath bet. cores - A memory controller for external memory - A video decoder - A timer and interrupt controller - A general purpose I/O (GPIO) interface - A UART interface

3 It contains most of the structures and challeges found in real SoC designs. For example: – Microprocessor could be anything from an 8-bit 8051 to a 64-bit RISC - Memory could be single or multi-level, and could include SRAM and/or DRAM - I/O controller could include PCI, Ethernet, USB, IEEE 1394, A/D, D/A converters - The vieo decoder could be MPEG, ASF, or AVI - The GPIO could be used for powering LEDs or sampling data lines - The external momory could be DRAM, SRAM, or Flash

4 Figure 2-1 Canonical hardware view of SoC

5 2.2 System Design Flow To meet the challenges of SoC, chip designers are changing their design flows in two major ways: – From a waterfall model to a spiral model - From a top-down methodology to a combination of top- down and bottom-up

Waterfall vs. Spiral Waterfall model – Process start with the development of a specification for the ASIC - Algorithm may be developed by a graphic expert - Design team develops the RTL for the ASIC - Synthesis experts synthesizes the ASIC into a gate-level netlist, then timing verification is performed - Once design meets its timing goals, the netlist is given to the physical design team for placement and routing - A prototype chip is built and tested - This prototype chip is delivered to the software team

7 2.2 System Design Flow Figure 2-2: Traditional waterfall ASIC design flow

8 Spiral development model The spiral SoC design flow is characterized by: - Parallel, concurrent development of hardware and software - Parallel verification and synthesis of Modules - Floorplanning and place-and-route included in the synthesis process - Module developed only if a predesigned hard or soft macro is not available - Planned iteration throughout

Top-Down vs. Bottom-Up

Top-Down vs. Bottom-Up Top-Down design process – Write complete specifications for the system or subsystem - Refine its architecture and algorithms - Decompose the architecture into well-defined macros - Design or select macros - Integrate macros into the top level - Deliver the subsytem/system to the next higher level of integration - Verify all aspects of the design(functionality, timing)

Construct by Correction Sun Microsystems’ success of UltraSPARC Develop- ment by methodology called “Construct by Correction” – Team made the first pass through the design cycle – from architecture to layout- as fast as possible - By development plan that allowed a single group of engineers to take the design through multiple complete iteration, the team was able to see their mistake, correct them, and refine the design several times before the chip was finally fabricated. - It is not possible at the architetural phase of the design to foresee all the implication of their decisions would have on the final physical design

The Specification Problem The first part of the design process consists of recursively developing, verifying, and refining a set of specifications until they are detailed enough to allow RTL coding to begin. If you know what you want to build, implementation mistakes are quickly spotted and fixed. The cost of documenting a specification during the early phases of a design is much less that the cost of documenting it after the design is completed. Specifications are largely descriptions of interfaces.

The Specification Problem Hardware specification requirements – Functionality - Timing - Performance - External interface to other hardware - Interface to SW(register definitions) - Physical design issues such as area and power

14 Software specification requirements – Functionality - Timing - Performance - Interface to HW - SW structure, kernel

15 Types of Specifications – Formal specification: Formal specification languages typically provide a mechanism for describing not only functional behavior, but timing, power, and area requirements - Executable specifications: An executable specification is typically an abstract model for the hardware and/or software being specified, written in C, C++, SDL. At the lower level, hardware is usually descrived in Verilog or VHDL.

16 Figure 2-4 Top-level system design and recommended applications for each step

The System Design Process System design involve a large number of complex decisions and tradeoffs, such as: – What goes in software or in hardware - What processor(s) to use, and how many - What bus architecture is required to achieve the required system performance - What memory architecture to use to reach an appropriate balance between power, area and performance.

The System Design Process 1. Create the system specification – The process begins by identifying the system reuirements: the required functions, performance, cost, and development time - Then, a high-level algorithmic model for the overall system is developed in C/C++ - Tools such as COSSAP, SPW, and Matlab may be useful for some algorithm - The high-level model provides an executable specification for the key functions of the system

19 2. Develop a behavioral model - Develop a high-level behavioral model for the overall system to test the basic algorithms of the system design and to show that they meet the requirements outlined in the specification. - The model provides an executable specification for the key fuctions of the system - It can be used as the reference for future versions of the design

20 3. Refine and test the behavioral model - Verification environment for the high-level model is developed to refine and test the algorithm - This environment provides a mechanism for refining the high-level design, and verifying the functionality and performance of the algorithm - It can be used later to verify models for the hardware and software, such as an RTL model verified using hardware/software cosimulation - For system with very high algorithm content, considerable model development, testing, and refinement occurs before the hardware/software partitioning

21 4. Determine the hardware/software partition – As the high-level model is refined, the system architects determine the hardware/software partition; that is division of system functionality between hardware and software - Manual process requiring judgment and experience on the part of the system architects and a good understanding of the cost/performance trade-offs for various architectures - A rich library of preverified, characterized macros and a rich library of reusable software modules are essential for identifying the size and performance of various hardware and software functions

22 5. Develop a hardware architectural model – Specify and determine a detailed hardware architecure - Determine which hardware blocks will be used and how they will communicate - Memory architecture, bus structure, and bus bandwidth can be critical issues - Use transaction-level models like SystemsC to model interfaces and bus behavior to avoid significant running time of application code in RTL

23 6. Refine and test the architectural model (cosimulation) – Software development after the hardware has been built often lead to delayed or cancelled projects. - Architectural model for the system can be used for HW/SW cosimulation providing sufficient accuracy that SW can be developed and debugged on it. - As SW content of systems continues to grow, HW/SW codevelopment and cosimulation will become increasingly critical to the success of SoC projects

24 7. Specify implementation blocks – Hardware specification: a detailed spec. of the functionality, performance, and interfaces for the HW system and its component blocks. - HW spec. includes a description of the basic functions, the timing, area, power requirements, and physical and SW interfaces, with detailed descriptions of I/O pins and the register map. - Architectural model itself functions as an executable specification for the hardware