HW-SW Co-Simulation 王甦群 R91921007 Graduate Institute of Electrical Engineering National Taiwan University July 3, 2003.

Slides:



Advertisements
Similar presentations
Digital System Design Subject Name : Digital System Design Course Code : IT-314.
Advertisements

ECOE 560 Design Methodologies and Tools for Software/Hardware Systems Spring 2004 Serdar Taşıran.
Digital Design with VHDL Presented by: Amir Masoud Gharehbaghi
PradeepKumar S K Asst. Professor Dept. of ECE, KIT, TIPTUR. PradeepKumar S K, Asst.
LOGO HW/SW Co-Verification -- Mentor Graphics® Seamless CVE By: Getao Liang March, 2006.
Mahapatra-Texas A&M-Fall'001 Cosimulation II Cosimulation Approaches.
HW/SW- Codesign Verification and Debugging. HW versus SW Ondrej Cevan.
1 HW/SW Partitioning Embedded Systems Design. 2 Hardware/Software Codesign “Exploration of the system design space formed by combinations of hardware.
CS244-Introduction to Embedded Systems and Ubiquitous Computing Instructor: Eli Bozorgzadeh Computer Science Department UC Irvine Winter 2010.
Behavioral Design Outline –Design Specification –Behavioral Design –Behavioral Specification –Hardware Description Languages –Behavioral Simulation –Behavioral.
Department of Electrical and Computer Engineering Texas A&M University College Station, TX Abstract 4-Level Elevator Controller Lessons Learned.
1 Co-simulation Slides from: - Tony Givargis, Irvine, IC253 - Rabi Mahapatra, Texas A&M University - Sharif University.
Mahapatra-Texas A&M-Fall'001 cosynthesis Introduction to cosynthesis Rabi Mahapatra CPSC498.
Define Embedded Systems Small (?) Application Specific Computer Systems.
1/31/20081 Logic devices can be classified into two broad categories Fixed Programmable Programmable Logic Device Introduction Lecture Notes – Lab 2.
System-Level Verification –a Comparison of Approach Ray Turner Rapid Systems Prototyping, IEEE International Workshop on.
Logic Design Outline –Logic Design –Schematic Capture –Logic Simulation –Logic Synthesis –Technology Mapping –Logic Verification Goal –Understand logic.
Tejas Bhatt and Dennis McCain Hardware Prototype Group, NRC/Dallas Matlab as a Development Environment for FPGA Design Tejas Bhatt June 16, 2005.
Principle of Functional Verification Chapter 1~3 Presenter : Fu-Ching Yang.
From Concept to Silicon How an idea becomes a part of a new chip at ATI Richard Huddy ATI Research.
(1) Introduction © Sudhakar Yalamanchili, Georgia Institute of Technology, 2006.
© Copyright Alvarion Ltd. Hardware Acceleration February 2006.
1  Staunstrup and Wolf Ed. “Hardware Software codesign: principles and practice”, Kluwer Publication, 1997  Gajski, Vahid, Narayan and Gong, “Specification,
1 Chapter 2. The System-on-a-Chip Design Process Canonical SoC Design System design flow The Specification Problem System design.
An Introduction Chapter Chapter 1 Introduction2 Computer Systems  Programmable machines  Hardware + Software (program) HardwareProgram.
1 VERILOG Fundamentals Workshop סמסטר א ' תשע " ה מרצה : משה דורון הפקולטה להנדסה Workshop Objectives: Gain basic understanding of the essential concepts.
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 {
ASIC/FPGA design flow. FPGA Design Flow Detailed (RTL) Design Detailed (RTL) Design Ideas (Specifications) Design Ideas (Specifications) Device Programming.
Extreme Makeover for EDA Industry
Automated Design of Custom Architecture Tulika Mitra
Design Verification An Overview. Powerful HDL Verification Solutions for the Industry’s Highest Density Devices  What is driving the FPGA Verification.
Presenter : Ching-Hua Huang 2013/7/15 A Unified Methodology for Pre-Silicon Verification and Post-Silicon Validation Citation : 15 Adir, A., Copty, S.
Section 10: Advanced Topics 1 M. Balakrishnan Dept. of Comp. Sci. & Engg. I.I.T. Delhi.
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.
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.
Functional Verification Figure 1.1 p 6 Detection of errors in the design Before fab for design errors, after fab for physical errors.
- 1 - EE898_HW/SW Partitioning Hardware/software partitioning  Functionality to be implemented in software or in hardware? No need to consider special.
Lach1MAPLD 2005/241 Accessible Formal Verification for Safety-Critical FPGA Design John Lach, Scott Bingham, Carl Elks, Travis Lenhart Charles L. Brown.
CS244-Introduction to Embedded Systems and Ubiquitous Computing Instructor: Eli Bozorgzadeh Computer Science Department UC Irvine Winter 2010.
Electrical and Computer Engineering University of Cyprus LAB 1: VHDL.
6. A PPLICATION MAPPING 6.3 HW/SW partitioning 6.4 Mapping to heterogeneous multi-processors 1 6. Application mapping (part 2)
ICS 216 Embedded Systems Validation and Test Instructor: Professor Ian G. Harris Department of Computer Science University of California Irvine.
An Overview of Hardware Design Methodology Ian Mitchelle De Vera.
1 Hardware/Software Co-Design Final Project Emulation on Distributed Simulation Co-Verification System 陳少傑 教授 R 黃鼎鈞 R 尤建智 R 林語亭.
IMPLEMENTATION OF MIPS 64 WITH VERILOG HARDWARE DESIGN LANGUAGE BY PRAMOD MENON CET520 S’03.
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.
© Michel Dubois, Murali Annavaram, Per Strenstrom All rights reserved Embedded Computer Architecture 5SAI0 Simulation - chapter 9 - Luc Waeijen 16 Nov.
Teaching The Principles Of System Design, Platform Development and Hardware Acceleration Tim Kranich
Multi-objective Topology Synthesis and FPGA Prototyping Framework of Application Specific Network-on-Chip m Akram Ben Ahmed Xinyu LI, Omar Hammami.
Chapter 11 System-Level Verification Issues. The Importance of Verification Verifying at the system level is the last opportunity to find errors before.
Real-Time System-On-A-Chip Emulation.  Introduction  Describing SOC Designs  System-Level Design Flow  SOC Implemantation Paths-Emulation and.
Problem: design complexity advances in a pace that far exceeds the pace in which verification technology advances. More accurately: (verification complexity)
CoDeveloper Overview Updated February 19, Introducing CoDeveloper™  Targeting hardware/software programmable platforms  Target platforms feature.
SUBJECT : DIGITAL ELECTRONICS CLASS : SEM 3(B) TOPIC : INTRODUCTION OF VHDL.
EMT 351/4 DIGITAL IC DESIGN Week # 1 EDA & HDL.
Programmable Logic Devices
Programmable Hardware: Hardware or Software?
Andreas Hoffmann Andreas Ropers Tim Kogel Stefan Pees Prof
ASIC Design Methodology
Chapter 1: Introduction
Introduction to cosynthesis Rabi Mahapatra CSCE617
Matlab as a Development Environment for FPGA Design
Hardware Description Languages
Chapter 1 Introduction.
VHDL Introduction.
HIGH LEVEL SYNTHESIS.
Presentation transcript:

HW-SW Co-Simulation 王甦群 R Graduate Institute of Electrical Engineering National Taiwan University July 3, 2003

Outline Basic concepts of simulation. Case study. Conclusions.

What is Verification? Verification is the task of ensuring that a design is correct and complete. Such assurance can prevent time-consuming debugging at low abstraction levels and iterating back to high abstraction levels. Correctness means that the design implements its specification accurately. Completeness means that the design ’ s specification described appropriate output responses to all relevant input sequences. + + A B C If C=A+B ?

Methods of Verification Formal verification is an approach of verification that analyzes a design by prove or disprove certain properties. Simulation is an approach in which we create a model of the design that can be executed on a computer. We provide sample input values to this model, and check that the output values generated by the model match our expectation. Verification Simulation Formal Verification Formal Verification

Simulation V.S. Physical Implementation Compare with a physical implementation, simulation has several advantages. The two most important advantages are excellent controllability and observablility. –Controllability is the ability to control the execution of the system. –Observability is the ability to examine system value. With excellent controllability and observability, simulation allows a designer to perform debugging that would have been nearly impossible on a physical implementation. Input Output

Simulation V.S. Physical Implementation Simulation also has several disadvantages compared with a physical implementation: –Setting up simulation could take much time for systems with complex external environments. A designer may spend more time modeling the external environments than the system itself. –The models of the environments will likely to be somewhat incomplete, so may not model complex environment behavior correctly, especially when the behavior is undocumented. –Simulating speed can be quite slow compared to execution of a physical implementation.

Simulation Speed IC FPGA Emulation Throughput Model ISS Simulation Cycle-accurate Simulation RTL HDL Simulation Gate-level Simulation 1 hour 1 day 4 days 1.4 months 1.2 years 12 years > 1 lifetime 1 millennium 1 x10 x100 x1000 x10,000 x100,000 x1,000,000 x10,000,000

Simulation Speed Why so slow? –We are sequentializing a parallel hardware design. –We are adding several programs in between the system being simulated and real hardware. How to gain speed? –Use emulator. –Use simulation model with higher level.

Emulator Advantage of Emulator –The environment setup needed with simulation is not necessary. Disadvantage of Emulator –Still not as fast as real implementations, which could lead to timing problems in the real environment. –Costly.

How the Industry Looks at the Many Language Choices A Single Language Alone Cannot Effectively Cover All of the Design Flow !!

Hardware-Software Co-Simulation [4] Cosimulation Environment Virtual Prototype System Functional SW model Functional SW model Instruction-true Processor Simulator Cycle-true Processor Simulator Physical prototype SWHW System Specification Functional HW model Functional HW model Synthesis Model VHDL Synthesis Model VHDL Gate Model Gate Model

Case Study [2] HardwareC description HardwareC description System Graph Model System Graph Model C Program C Program ASIC Graph Model ASIC Graph Model Interface Graph Model Interface Graph Model Assembly Code ASIC and interface Netlist Mixed System Implementation Assembly Code ASIC and interface Netlist Mixed System Implementation VULCAN-II POSEIDON (Simulator) POSEIDON (Simulator) System Output System Input a.System Partitioning b.Multi-thread Program Generation c.Interface Generation

Target System Architecture MEMORY ML Program User’s Data Interface Buffer MICRO- PROCESSOR ASIC

System Synthesis Example Process cg(q,x,y…){ …. } HardwareC Code Process cg(q,x,y…){ …. } HardwareC Code Controller Graph Model Controller Graph Model Hardware Graph Model line( ) circle( ) Graphics Controller Behavioral Synthesis Partitioning and Program threads generation Hardware ComponentSoftware Component Interface Circuitry

Event-Driven Simulation of a Mixed System Design Ariadne Mercury DLX Simulator POSEIDON System Graph Model SLIF Netlist (Gate-level Description) DLX Assembly Code Implements: a.Interface protocol between models b.Event-driven simulation of multiple models c.Multiple clocks and clock rates between models

Simulation Example of Producer-Consumer Pair #Models model IO io 1.0 /local/ioDir IO; model p dlx 1.0 /local/ProducerDir Producer; model C mercury 3.0 /local/ConsumerDir Consumer; #Connections queue [4] comm [3]; C.RESET=IO.RESET; C.r[0:0]=IO.r[0:0]; #communication protocol P.0xff004[0:0] = ! comm.full; C.b_rq=!comm.empty; when (P.0xff000_wr+ & !comm.full) do comm[0:3] enqueue P.0xff000[0:3]; when (C.b_ak+ & !comm.empty) do comm[0:3] dequeue C.b[0:3]; #Outputs IO.inChannel[0:3]=P.0xff000[0:3]; IO.outPort[0:3]=C.c[0:3] IO.InRq=P.0xff000_wr; IO.OutAk=C.b_ak; Consumer Producer OutAk InRq comm OutPort SW HW

Example of Graphics Controller Line Circle Schedule Coordinate FIFO Control PROCESSOR ASIC Hardware Line data queue Circle data queue Control FIFO int lastPC[MAXCRS]=(scheduler,circle,line,main); int current=MAIN; int *controlFIFO=(int*)0xaa0000; int *controlFIFO_rq=(int*)0xaa0004; main(){resume(SCHEDULER)}; int nextCoroutine; scheduler(){resume(LINE); resume(CIRCLE); while(!RESET){do{nextCoroutine=*controlFIFO} while((nextCoroutine&0x4))!0x4); resume(nextCoroutine&0x3); } Software Component: main program

Example of Graphics Controller model qc io 1.0 DIR GraphicsController; model ccoord mercury 5.0 DIR gcircle; model lcoord mercury 5.0 DIR gline; model mp dlx 1.0 DIR main; model CF mercury 1.0 DIR control; queue [1] lqueue [16], cqueue [16]; queue [3] controlFifo [2]; CF.r[0:0]=lcoord.run[0:0]=ccoord.run[0:0]=gc.run[0:0]; CF.RESET=lcoord.RESET=ccoord.RESET=gc.RESET; CF.lqr[0:0]=!lqeue.empty; CF.lak[0:0]=mp.0xee004_rd; CF.crq[0:0]=!cqueue.empty; mp.0xee004[0:0]=!cqueue.empty; mp.0xee004[0:0]=!lqueue.empty; continued~ Specification of the graphics controller

Example of Graphics Controller ~continued #Lqueue when (lcoord.run_rq+ & !lqueue.full) do lqueue[15:0] enqueue lcoord.queue[15:0]; lcoord.queue_ak=!lqueue.full; when (mp.0xff000_rd+ & !lqueue.empty) do lqueue [15:0] dequeue mp.queue[15:0]; mp.queue_ak=!lqueue.empty; ….. #ControlFifo when (CF.outline_rq+ & !conrtolFifo.full) do controlFifo[1:0] enqueue outline[1:0]; CF.outline_ak=!controlFifo.full; ….. #Output specification gc.x_out[7:0]=mp.0xff100[7:0]; gc.y_out[7:0]=mp.0xff104[7:0]; gc.controlFifo[1:0] =controlFifo[1:0]; gc.CF_ready=!controlFifo.empty;

Example of Graphics Controller Output Specification Output Specification POSEIDON

Conclusions Due to the heterogeneity of these components and the drastically increased number of gates per chip, verification of the complete system and simulation speed has become the critical bottleneck in the design process. To increase the productivity and shorten time to market it is important to be able to verify a heterogeneous SOC design at an early stage of the development process to prevent expensive re- design.

Reference [1] F. Vahid, and T. Givargis, Embedded System Design: A Unified Hardware/Sofware Introduction, 2002, John Wiley & Sons Inc. [2] Rajesh k. Gupta, Claudionor Nunes Coelho, Jr. and Giovanni De Micheli,”Synthesis and Simulation of Digital Systems Containing Interfacting Hardware and Software Components” IEEE Design Automation Conference, [3] David Becker, Raj K. Singh, Stephen G. “An Engineering Environment for Hardware/Software Co-Simulation” IEEE Design Automation Conference, [4] Andreas Hoffmann, Tim Kogel and Heinrich Meyr “A Framework for Fast Hardware-Software Co-simulation” IEEE Design, Automation and Test in Europe, 2001 Conference and Exhibition 2001.