SystemC and Levels of System Abstraction: Part I.

Slides:



Advertisements
Similar presentations
SoC Challenges & Transaction Level Modeling (TLM) Dr. Eng. Amr T. Abdel-Hamid ELECT 1002 Spring 2008 System-On-a-Chip Design.
Advertisements

1/1/ / faculty of Electrical Engineering eindhoven university of technology Processor support devices Part 1:Interrupts and shared memory dr.ir. A.C. Verschueren.
Internal Logic Analyzer Final presentation-part B
Khaled A. Al-Utaibi  Computers are Every Where  What is Computer Engineering?  Design Levels  Computer Engineering Fields  What.
Synchron’08 Jean-François LE TALLEC INRIA SOP lab, AOSTE INRIA SOP lab, EPI AOSTE ScaleoChip Company SoC Conception Methodology.
LOGO HW/SW Co-Verification -- Mentor Graphics® Seamless CVE By: Getao Liang March, 2006.
Puneet Arora ESCUG, 09 Abstraction Levels in SoC Modelling.
Addressing the System-on-a-Chip Interconnect Woes Through Communication-Based Design N. Vinay Krishnan EE249 Class Presentation.
Extensible Processors. 2 ASIP Gain performance by:  Specialized hardware for the whole application (ASIC). −  Almost no flexibility. −High cost.  Use.
Team Morphing Architecture Reconfigurable Computational Platform for Space.
1 HW/SW Partitioning Embedded Systems Design. 2 Hardware/Software Codesign “Exploration of the system design space formed by combinations of hardware.
Energy Evaluation Methodology for Platform Based System-On- Chip Design Hildingsson, K.; Arslan, T.; Erdogan, A.T.; VLSI, Proceedings. IEEE Computer.
Define Embedded Systems Small (?) Application Specific Computer Systems.
1 EE249 Discussion A Method for Architecture Exploration for Heterogeneous Signal Processing Systems Sam Williams EE249 Discussion Section October 15,
Performance Analysis of Processor Midterm Presentation Performed by : Winter 2005 Alexei Iolin Alexander Faingersh Instructor: Evgeny.
Transaction Level Modeling Definitions and Approximations Trevor Meyerowitz EE290A Presentation May 12, 2005.
Dipartimento di Informatica - Università di Verona Networked Embedded Systems The HW/SW/Network Cosimulation-based Design Flow Introduction Transaction.
9/20/6Lecture 3 - Instruction Set - Al Hardware interface (part 2)
Technion Digital Lab Project Performance evaluation of Virtex-II-Pro embedded solution of Xilinx Students: Tsimerman Igor Firdman Leonid Firdman.
Embedded Systems Design at Mentor. Platform Express Drag and Drop Design in Minutes IP Described In XML Databook s Simple System Diagrams represent complex.
1 A survey on Reconfigurable Computing for Signal Processing Applications Anne Pratoomtong Spring2002.
Role of Standards in TLM driven D&V Methodology
Yoshinori Takeuchi Osaka University 1MPSoC Osaka University  Expansion of multi-functional portable multimedia devices requires high performance.
Presenter : Cheng-Ta Wu Vijay D’silva, S. Ramesh Indian Institute of Technology Bombay Arcot Sowmya University of New South Wales, Sydney.
Input/Output. Input/Output Problems Wide variety of peripherals —Delivering different amounts of data —At different speeds —In different formats All slower.
SystemC: Introduction. SystemC  A C++ based class library and design environment for system-level design.  Suitable for functional description that.
TLM and its evolution Copyright © 2007 Tata Elxsi Ltd. Shwetha Pai.
An Introduction Chapter Chapter 1 Introduction2 Computer Systems  Programmable machines  Hardware + Software (program) HardwareProgram.
Computer Architecture and Organization Introduction.
ASIC/FPGA design flow. FPGA Design Flow Detailed (RTL) Design Detailed (RTL) Design Ideas (Specifications) Design Ideas (Specifications) Device Programming.
Automated Design of Custom Architecture Tulika Mitra
Computer Architecture Lecture10: Input/output devices Piotr Bilski.
Operating Systems Lecture 02: Computer System Overview Anda Iamnitchi
1 Freeha Azmat Saba Zia Dec 02, Agenda Installation Introduction From Verilog to SystemC Counter as an Example Complete SystemC Modeling 2.
1 Towards Optimal Custom Instruction Processors Wayne Luk Kubilay Atasu, Rob Dimond and Oskar Mencer Department of Computing Imperial College London HOT.
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.
F. Gharsalli, S. Meftali, F. Rousseau, A.A. Jerraya TIMA laboratory 46 avenue Felix Viallet Grenoble Cedex - France Embedded Memory Wrapper Generation.
Languages for HW and SW Development Ondrej Cevan.
Fast Simulation Techniques for Design Space Exploration Daniel Knorreck, Ludovic Apvrille, Renaud Pacalet
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.
EEE440 Computer Architecture
Winter-Spring 2001Codesign of Embedded Systems1 Methodology for HW/SW Co-verification in SystemC Part of HW/SW Codesign of Embedded Systems Course (CE.
Winter-Spring 2001Codesign of Embedded Systems1 Introduction to System-Level Modeling in SystemC 2.0 Part of HW/SW Codesign of Embedded Systems Course.
MODUS Project FP7- SME – , Eclipse Conference Toulouse, May 6 th 2013 Page 1 MODUS Project FP Methodology and Supporting Toolset Advancing.
6. A PPLICATION MAPPING 6.3 HW/SW partitioning 6.4 Mapping to heterogeneous multi-processors 1 6. Application mapping (part 2)
Final Presentation Implementation of DSP Algorithm on SoC Student : Einat Tevel Supervisor : Isaschar Walter Accompanying engineer : Emilia Burlak The.
Field Programmable Port Extender (FPX) 1 Modular Design Techniques for the FPX.
Computer Architecture Lecture 32 Fasih ur Rehman.
Evaluating and Improving an OpenMP-based Circuit Design Tool Tim Beatty, Dr. Ken Kent, Dr. Eric Aubanel Faculty of Computer Science University of New Brunswick.
System-level power analysis and estimation September 20, 2006 Chong-Min Kyung.
Computer Architecture 2 nd year (computer and Information Sc.)
Chapter 13 – I/O Systems (Pgs ). Devices  Two conflicting properties A. Growing uniformity in interfaces (both h/w and s/w): e.g., USB, TWAIN.
Lecture 11: FPGA-Based System Design October 18, 2004 ECE 697F Reconfigurable Computing Lecture 11 FPGA-Based System Design.
Design for Verification in System-level Models and RTL Anmol Mathur Venkat Krishnaswamy Calypto Design Systems, Inc.
Way beyond fast © 2002 Axis Systems, Inc. CONFIDENTIAL Axis Common Transaction Interface (CTI) Architecture Highlights 9/11/2003 Ching-Ping Chou Axis Systems,
IT3002 Computer Architecture
Digital Design Using VHDL and PLDs ECOM 4311 Digital System Design Chapter 1.
DDRIII BASED GENERAL PURPOSE FIFO ON VIRTEX-6 FPGA ML605 BOARD PART B PRESENTATION STUDENTS: OLEG KORENEV EUGENE REZNIK SUPERVISOR: ROLF HILGENDORF 1 Semester:
Final Presentation Hardware DLL Real Time Partial Reconfiguration Management of FPGA by OS Submitters:Alon ReznikAnton Vainer Supervisors:Ina RivkinOz.
Amdahl’s Law & I/O Control Method 1. Amdahl’s Law The overall performance of a system is a result of the interaction of all of its components. System.
CIS 4930/6930 System-on-Chip Design Transaction-Level Modeling with SystemC Dr. Hao Zheng Comp. Sci & Eng. U of South Florida.
CoDeveloper Overview Updated February 19, Introducing CoDeveloper™  Targeting hardware/software programmable platforms  Target platforms feature.
Design Flow System Level
Figure 1 PC Emulation System Display Memory [Embedded SOC Software]
Lesson 4 Synchronous Design Architectures: Data Path and High-level Synthesis (part two) Sept EE37E Adv. Digital Electronics.
Presentation transcript:

SystemC and Levels of System Abstraction: Part I

Levels of System Abstraction  Executable specification Translation of design specification into SystemC Translation of design specification into SystemC Independent of the proposed implementation Independent of the proposed implementation Time delays if present denote timing constraints Time delays if present denote timing constraints  Untimed functional model (CP) Separation of the specification into modules Separation of the specification into modules Communication between modules is point to point Communication between modules is point to point Communication usually via bounded FIFO Communication usually via bounded FIFO blocking read, blocking writeblocking read, blocking write No time delays present in the model No time delays present in the model

Levels of System Abstraction  Timed functional model (CP + T) Processes communicate via point-to-point links Processes communicate via point-to-point links Timing delays added to processes to reflect Timing delays added to processes to reflect Timing constraintsTiming constraints Latency of a particular implementationLatency of a particular implementation Timing delays added to FIFOs to model communication latencies Timing delays added to FIFOs to model communication latencies Initial model for hardware/software trade-off analysis Initial model for hardware/software trade-off analysis

Levels of System Abstraction  Transaction level model or Programmers view (PV) Communication modeled by function calls Communication modeled by function calls Similar to transport level specificationSimilar to transport level specification Bus burst mode of read/writeBus burst mode of read/write FIFOs replaced by actual communication protocolFIFOs replaced by actual communication protocol Bus contention modeled but not with realistic timingBus contention modeled but not with realistic timing Instruction set simulator for SW code (HW in timed process) Instruction set simulator for SW code (HW in timed process) Register accurateRegister accurate Memory map is defined Memory map is defined Timing defined in terms of instruction set cycles Timing defined in terms of instruction set cycles  Platform transaction model (or PV + T) Interconnection architecture fully defined Interconnection architecture fully defined Multiple clock cycles for bus communicationMultiple clock cycles for bus communication Can model bus arbitration overheadCan model bus arbitration overhead SW on ISS, HW in timed process SW on ISS, HW in timed process Model is not pin accurate Model is not pin accurate

Levels of System Abstraction  Behavioral hardware model (mainly for ASIC cores) Pin accurate and functionally accurate at its boundaries Pin accurate and functionally accurate at its boundaries Not clock accurate Not clock accurate No internal structure No internal structure Input to behavioral synthesis tool Input to behavioral synthesis tool  Pin accurate cycle accurate model (CA) In addition to pin accurate it is also cycle accurate In addition to pin accurate it is also cycle accurate Does not necessarily have the internal structure Does not necessarily have the internal structure SW ISS replaced by model that includes cache SW ISS replaced by model that includes cache

Levels of System Abstraction  Register transfer level model Pin accurate Pin accurate Cycle accurate Cycle accurate Internal structure is defined Internal structure is defined

System Design Styles  Application specific standard product (ASSP) Intel IXP series network processors Intel IXP series network processors TI OMAP platform TI OMAP platform

System Design Styles  Programming for application specific standard product (ASSP) Architecture is fixed Architecture is fixed Multiple programmable unitsMultiple programmable units Multiple application specific coresMultiple application specific cores Multiple memory interfacesMultiple memory interfaces Objective : Map application on target platform Objective : Map application on target platform Maximize performanceMaximize performance Design proceeds from CP, CP+T, PV to final implementation Design proceeds from CP, CP+T, PV to final implementation

System Design Styles  Structured ASIC: IP based design style Xilinx platform FPGA Xilinx platform FPGA PowerPC hardcoresPowerPC hardcores Microblaze softcoresMicroblaze softcores 18 bit Multipliers18 bit Multipliers Block RAMSBlock RAMS Rocket I/O transceiversRocket I/O transceivers

System Design Styles  Structured ASIC: IP based design style Architecture is fixed to a large extent Architecture is fixed to a large extent Flexibility in introducing HW coresFlexibility in introducing HW cores IP blocks provided by vendor IP blocks provided by vendor Designer generates new cores Designer generates new cores Programmable units are fixedProgrammable units are fixed Memory interfaces are fixedMemory interfaces are fixed Objective : Refine micro-architecture with an objective of Objective : Refine micro-architecture with an objective of Maximize: performanceMaximize: performance Minimize: cost, powerMinimize: cost, power Design proceeds from CP, CP+T, PV, PV+T, CA to final implementation Design proceeds from CP, CP+T, PV, PV+T, CA to final implementation

System Design Styles  Generic multiprocessor SoC design Architecture is yet to be defined Architecture is yet to be defined HW cores can consist ofHW cores can consist of IP blocks provided by vendor IP blocks provided by vendor Designer generates new cores Designer generates new cores Multiple programmable unitsMultiple programmable units Multiple memory interfacesMultiple memory interfaces Objective : Design micro-architecture with an objective of Objective : Design micro-architecture with an objective of Maximize: performanceMaximize: performance Minimize: cost, powerMinimize: cost, power Design proceeds from CP, CP+T, PV, PV+T, CA to final implementation Design proceeds from CP, CP+T, PV, PV+T, CA to final implementation

Executable Specification  Any code in C or C++ can act as the executable specification  The code is implementation agnostic  The code acts a functional benchmark for verification  Timing specified at input/output boundaries Specified as design directive Specified as design directive Code might be specified as one SystemC process with timing Code might be specified as one SystemC process with timing

Untimed Functional Model  Design is specified in terms of its functional components  Functional components specify possible structural boundaries of final implementation  Some functional components might be merged while other might become discrete cores

Untimed Functional Model  Dataflow MoC is the most common form of specification Alternatively Kahn process networks, Multi-rate dataflow Alternatively Kahn process networks, Multi-rate dataflow  Communication between components is through directed point-to-point FIFO  FIFO are bounded Blocking read, blocking write Blocking read, blocking write  Time delays might exist in the model at the boundaries Processes in which the model interacts with the environment Processes in which the model interacts with the environment Time delays denote constraints for the system Time delays denote constraints for the system

SystemC Untimed Functional Model  Modules contain SC_THREAD process  Modules communicate through sc_fifo channels Initial values in FIFOs should be specified Initial values in FIFOs should be specified  Stop simulation when Finite time has elapsed Finite time has elapsed Requires atleast one module with time delayRequires atleast one module with time delay Terminate processes through data backlog Terminate processes through data backlog Thread returns when input FIFO is emptyThread returns when input FIFO is empty Call sc_stop() when termination condition is reached Call sc_stop() when termination condition is reached Easiest to implementEasiest to implement For example, consumption of finite set of input stimuliFor example, consumption of finite set of input stimuli

SystemC Untimed Functional Model constantadderforkprinter Z -1 template SC_MODULE(DF_Const){ sc_fifo_out output; T constant_; void process() { while(1) output.write(constant_); } SC_HAS_PROCESS(DF_Const); DF_Const(sc_module_name N, const T& C): sc_module(N), constant_(C) { SC_THREAD(process); } };

SystemC Untimed Functional Model template SC_MODULE(DF_Fork){ sc_fifo_in input; sc_fifo_out output1; sc_fifo_out output2; void process() { while(1) { T value = input.read(); output1.write(value); output2.write(value); } SC_CTOR(DF_Fork) { SC_THREAD(process); } }; template SC_MODULE(DF_Adder){ sc_fifo_in input1, input2; sc_fifo_out output; sc_fifo_out output2; void process() { while(1) { output.write(input1.read() + input2.read()); } } SC_CTOR(DF_Fork) { SC_THREAD(process); } };

SystemC Untimed Functional Model template SC_MODULE(DF_Printer){ sc_fifo_in input; unsigned n_iterations_; bool done_; void process() { while(1) { For (unsigned i = 0; i < n_iterations_; i++) { T value = input.read(); cout << name() << “ “ << value << endl; } done = true; return; } SC_HAS_PROCESS(DF_printer); DF_Printer(sc_module_name NAME, unsigned N_ITER) : sc_module(NAME), n_interations_(N_ITER), done_(false); { SC_THREAD(process); } ~DF_Printer() { If (!done_) cout << name() << “ not done yet “ << endl; } };

SystemC Untimed Functional Model int sc_main(int argc, char** argv) { DF_Const constant(“constant”,1); DF_Adder adder(“adder”); DF_Fork fork(“fork”); DF_Printer printer(“printer”, 10); sc_fifo const_out(“const_out”, 5); sc_fifo adder_out(“adder_out”,1); sc_fifo feedback(“feedback”, 1); sc_fifo to_printer(“to_printer”, 1); feedback.write(42); constant.output(const_out); adder.input1(feedback); adder.input2(const_out); fork.input(adder_out); fork.outpu1(feedback); fork.outpu2(to_printer); printer.input(to_printer); sc_start(-1); return(0); } Start simulation without time limit. Simulation stops when no more events. When printer thread exits simulation will stop. All FIFOs will become full

SystemC Timed Functional Model template SC_MODULE(DF_Const){ sc_fifo_out output; T constant_; void process() { while(1) { wait(200, SC_NS); output.write(constant_);} } SC_HAS_PROCESS(DF_Const); DF_Const(sc_module_name N, const T& C): sc_module(N), constant_(C) { SC_THREAD(process); } }; template SC_MODULE(DF_Adder){ sc_fifo_in input1, input2; sc_fifo_out output; sc_fifo_out output2; void process() { while(1) { output.write(input1.read() + input2.read()); wait(200, SC_NS);} } SC_CTOR(DF_Fork) { SC_THREAD(process); } };

Stopping Dataflow Simulation  Simulate with fixed number of input stimuli and return If a method thread is blocked due to a bug then simulation will not stop If a method thread is blocked due to a bug then simulation will not stop  Each process consumes a fixed amount of stimuli and sets a “done” signal A “terminator” process issues “sc_stop()” when all processes have issued “done” A “terminator” process issues “sc_stop()” when all processes have issued “done”

Levels of System Abstraction  To be continued  Detour into Hardware performance estimation Hardware performance estimation System-level performance estimation System-level performance estimation