EEL 5722C Field-Programmable Gate Array Design

Similar documents
Cosimulation II. Cosimulation Approaches

Cosimulation II. How to cosimulate?

Hardware Software Codesign of Embedded Systems

EEM870 Embedded System and Experiment Lecture 4: SoC Design Flow and Tools

Hardware Software Codesign of Embedded System

System-level simulation (HW/SW co-simulation) Outline. EE290A: Design of Embedded System ASV/LL 9/10

Hardware/Software Co-design

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.

EEL 4783: HDL in Digital System Design

Key technologies for many core architectures

ICS 252 Introduction to Computer Design

FPGA briefing Part II FPGA development DMW: FPGA development DMW:

Verilog. What is Verilog? VHDL vs. Verilog. Hardware description language: Two major languages. Many EDA tools support HDL-based design

Hardware/Software Co-Design/Co-Verification

EEL 4783: Hardware/Software Co-design with FPGAs

Observability in Multiprocessor Real-Time Systems with Hardware/Software Co-Simulation

EE382V: System-on-a-Chip (SoC) Design

CS Computer Architecture

Lecture 9: MIMD Architectures

FPGA Based Digital Design Using Verilog HDL

Chapter 5: ASICs Vs. PLDs

Appendix SystemC Product Briefs. All product claims contained within are provided by the respective supplying company.

Xilinx Vivado/SDK Tutorial

DISTRIBUTED CO-SIMULATION TOOL. F.Hessel, P.Le Marrec, C.A.Valderrama, M.Romdhani, A.A.Jerraya

System Level Design with IBM PowerPC Models

Lecture 9: MIMD Architectures

Hardware Design Environments. Dr. Mahdi Abbasi Computer Engineering Department Bu-Ali Sina University

EEL 5722C Field-Programmable Gate Array Design

ESE Back End 2.0. D. Gajski, S. Abdi. (with contributions from H. Cho, D. Shin, A. Gerstlauer)

EE382V: System-on-a-Chip (SoC) Design

A VARIETY OF ICS ARE POSSIBLE DESIGNING FPGAS & ASICS. APPLICATIONS MAY USE STANDARD ICs or FPGAs/ASICs FAB FOUNDRIES COST BILLIONS

Chapter 10. PeaCE design flow overview

RTL Coding General Concepts

EEL 4783: Hardware/Software Co-design with FPGAs

Code Generation for QEMU-SystemC Cosimulation from SysML

Chapter 1: Introduction

Efficient Usage of Concurrency Models in an Object-Oriented Co-design Framework

EEL 4783: HDL in Digital System Design

Cadence SystemC Design and Verification. NMI FPGA Network Meeting Jan 21, 2015

System Design and Methodology/ Embedded Systems Design (Modeling and Design of Embedded Systems)

ReconOS: An RTOS Supporting Hardware and Software Threads

HW/SW Co-design. Design of Embedded Systems Jaap Hofstede Version 3, September 1999

Hardware, Software and Mechanical Cosimulation for Automotive Applications

Integrated Workflow to Implement Embedded Software and FPGA Designs on the Xilinx Zynq Platform Puneet Kumar Senior Team Lead - SPC

structure syntax different levels of abstraction

Here is a list of lecture objectives. They are provided for you to reflect on what you are supposed to learn, rather than an introduction to this

Lecture 3: Modeling in VHDL. EE 3610 Digital Systems

Lecture 9: MIMD Architecture

FPGAs: : Quality through Model Based Design and Implementation

תכן חומרה בשפת VERILOG הפקולטה להנדסה

VLSI Testing. Fault Simulation. Virendra Singh. Indian Institute of Science Bangalore

Designing and Prototyping Digital Systems on SoC FPGA The MathWorks, Inc. 1

Design Process. Design : specify and enter the design intent. Verify: Implement: verify the correctness of design and implementation

Digital Design Methodology

VLSI Testing. Virendra Singh. Bangalore E0 286: Test & Verification of SoC Design Lecture - 7. Jan 27,

Hardware Design and Simulation for Verification

System On Chip: Design & Modelling (SOC/DAM) 1 R: Verilog RTL Design with examples.

Lecture 7: Introduction to Co-synthesis Algorithms

Design Issues in Hardware/Software Co-Design

Digital Systems Design. System on a Programmable Chip

System-On-Chip Design with the Leon CPU The SOCKS Hardware/Software Environment

An introduction to CoCentric

Mentor Graphics Solutions Enable Fast, Efficient Designs for Altera s FPGAs. Fall 2004

LSN 6 Programmable Logic Devices

High Speed SPI Slave Implementation in FPGA using Verilog HDL

Overview. Design flow. Principles of logic synthesis. Logic Synthesis with the common tools. Conclusions

Design and Verification of FPGA Applications

System Level Design Technologies and System Level Design Languages

The SOCks Design Platform. Johannes Grad

Embedded Systems. 7. System Components

Connecting MATLAB & Simulink with your SystemVerilog Workflow for Functional Verification

SoC Verification Strategies for Embedded Systems Design

A Deterministic Flow Combining Virtual Platforms, Emulation, and Hardware Prototypes

Chapter 10 Objectives

Model-Based Design for effective HW/SW Co-Design Alexander Schreiber Senior Application Engineer MathWorks, Germany

Field Programmable Gate Array (FPGA)

model System under Development NIU HW description in Verilog Port NIU Monitor Program in C++ NIU Firmware in C++ SPARC model other device model

Contents Part I Basic Concepts The Nature of Hardware and Software Data Flow Modeling and Transformation

EEL 4783: HDL in Digital System Design

PyPARC: Vertically-Integrated, Highly-Productive Modeling Environment for a Parallel Array of RISC Cores

Programmable Logic Devices HDL-Based Design Flows CMPE 415

European Conference on Nanoelectronics and Embedded Systems for Electric Mobility. HIL platform for EV charging and microgrid emulation

Hardware describing languages, high level tools and Synthesis

The Verilog Language COMS W Prof. Stephen A. Edwards Fall 2002 Columbia University Department of Computer Science

ADVANCED DIGITAL IC DESIGN. Digital Verification Basic Concepts

CSC 2405: Computer Systems II

Contents 1 Introduction 2 Functional Verification: Challenges and Solutions 3 SystemVerilog Paradigm 4 UVM (Universal Verification Methodology)

MULTIPROCESSORS. Characteristics of Multiprocessors. Interconnection Structures. Interprocessor Arbitration

ESL design with the Agility Compiler for SystemC

Synthesizable Verilog

Digital Design Methodology (Revisited) Design Methodology: Big Picture

Graduate Institute of Electronics Engineering, NTU FPGA Design with Xilinx ISE

ISE Design Suite Software Manuals and Help

Rapidly Developing Embedded Systems Using Configurable Processors

EEL 4783: HDL in Digital System Design

Park Sung Chul. AE MentorGraphics Korea

Parallelizing FPGA Technology Mapping using GPUs. Doris Chen Deshanand Singh Aug 31 st, 2010

ECE 448 Lecture 15. Overview of Embedded SoC Systems

Overview of SOC Architecture design

Overview. Implementing Gigabit Routers with NetFPGA. Basic Architectural Components of an IP Router. Per-packet processing in an IP Router

Transcription:

EEL 5722C Field-Programmable Gate Array Design Lecture 19: Hardware-Software Co-Simulation* Prof. Mingjie Lin * Rabi Mahapatra, CpSc489 1

How to cosimulate? How to simulate hardware components of a mixed hardware-software system within a unified environment? This includes simulation of the hardware module, the processor, and the software that the processor executes. How to simulate hardware and software at same time? What are various challenges? Software runs faster than hardware simulator. How to run the system simulation fast keeping the above synchronized? Slow models provide detailed and accurate results than fast models. How to balance these effects? Use of different platforms for simulations. 2

Some basic approaches Detailed Processor Model: processor components( memory, datapath, bus, instruction decoder etc) are discrete event models as they execute the embedded software. Interaction between processor and other components is captured using native event-driven simulation capability of hardware simulator. Gate level simulation is extremely slow (~tens of clock cycles/sec), behavioral model is ~hundred times faster. Most accurate and simple model Gate-Level HDL software ASIC Model (VHDL Simulation) (Backplane) 3

Some basic approaches Bus Model (Cycle based simulator): Discrete-event shells that only simulate activities of bus interface without executing the software associated with the processor. Useful for low level interactions such as bus and memory interaction. Software executed on ISA model and provide timing information in clock cycles for given sequence of instructions between pairs of IO operation. Less accurate but faster simulation model. Program running on Host Software executed by ISA Model Bus Function Model HDL ASIC Model (VHDL Simulation) (Backplane) 4

Some basic approaches Instruction Set Architecture Model: ISA can be simulated efficiently by a C program. C program is an interpreter for the embedded software. No hardware mode. Software executed on ISA model. Execution on ISA model provides timing (clock) details of the cosimulation. Can be more efficient than detailed processor modeling because internals of the processor do not suffer the expense of discrete-event scheduling. Program Running on Host ISA Modell C program software ASIC Model (VHDL Simulation) (Backplane) 5

Some basic approaches Compiled Model: very fast processor models are achievable in principle by translating the executable embedded software specification into native code for processor doing simulation. (Ex: Code for programmable DSP can be translated into Sparc assembly code for execution on a workstation) No hardware, software execution provides timing details on interface to cosimulation. Fastest alternative, accuracy depends on interface information. Program running on host Software compiled for native code of the host ASIC Model (VHDL Simulation) (Backplane) 6

Some basic approaches Hardware Model: If processor exists in hardware form, the physical hardware can often be used to model the processor in simulation. Alternatively, processor could be modeled using FPGA prototype. (say using Quickturn) Advantage: simulation speed Disadvantage: Physical processor available. FPGA Processor ASIC Model (VHDL Simulation) (Backplane) 7

A New Approach This is a combined HW/SW approach. The host is responsible of having OS, some applications and might have superset simulating environment (RSIM, SIMICS, SIMOID). Use of fast backplane (PCI) for communication. Real processor or processor core in FPGA as hardware model, and ASIC/FPGA for interface and interconnection for hardware modeler. Good for fast complex architecture simulations including multiprocessor. Host with ISA Simulator Processor or FPGACore Interface Logic in FPGA PCI Bus 8

Domain coupling In four out of six approaches, we have host that run software and required to interact with hardware model or simulator. Difficulties: providing timing information across the boundaries coupling two domains with proper synchronization 9

Migration across cosimulation Consider the system simulation at different levels of abstraction throughout the design process: In the beginning of design process, hardware synthesis is not available. Hence use functional model to study the interaction between HW and SW. As design progress with more implementations, replace functional model of hardware by netlist level. Once detail operation of hardware is verified, swap back the high level description of HW design to gain simulation speed. The cosimulation environment should have this migration support across the levels of abstraction. Off-the-shelf Components: design is not a part of the current design process. Functional model is enough, no need to know internal details. 10

Master slave cosimulation One master simulator and one or more slave simulators: slave is invoked from master by procedure call. The language must have provision for interface with different language Difficulties: No concurrent simulation possible C procedures are reorganized as C functions to accommodate calls HDL Master HDL Interface C simulator Slave 11

Distributed cosimulation Software bus transfers data between simulators using a procedure calls based on some protocol. Implementation of System Bus is based on system facilities (Unix IPC or socket). It is only a component of the simulation tool. Allows concurrency between simulators. VHDL Simulator VEC Interface to Software Bus C program Interface to software Bus Cosimulation (Software) Bus 12

Synchronization and Time in cosimulation In case of a single simulator (say Verilog) there is no problem for timing as single event queue is managed for simulation. If there are several simulators and software programs in the domain: hardware and software domain are using a handshaking protocol to keep their time (clock) synchronized. Signals (events) transferred from one side to the other should have attached a time stamp. It is possible to use a loosely coupled strategy which allows the two domain to proceed more independently. If a signal is received with a time stamp lower than the current clock in the respective domain, the respective simulator have to be back up. 13

Aspects of cosimulation A frame work of cosimulation consists of variety of components, levels of abstractions and different models. Functional Model Instruction-set model.. Detail arch. model Functional Model.. Analog model Netlist-level 14

Final issues Come by my office hours (right after class) Any questions or concerns? 15