EEL 5722C Field-Programmable Gate Array Design

Similar documents
HIERARCHICAL DESIGN. RTL Hardware Design by P. Chu. Chapter 13 1

Outline HIERARCHICAL DESIGN. 1. Introduction. Benefits of hierarchical design

Early Models in Silicon with SystemC synthesis

EEL 4783: Hardware/Software Co-design with FPGAs

Intro to High Level Design with SystemC

HDL-Based Design. Eduardo Sanchez EPFL. Introduction

EEL 4783: HDL in Digital System Design

EEL 5722C Field-Programmable Gate Array Design

EE595. Part VIII Overall Concept on VHDL. EE 595 EDA / ASIC Design Lab

Modular SystemC. In-house Training Options. For further information contact your local Doulos Sales Office.

OSCI Update. Guido Arnout OSCI Chief Strategy Officer CoWare Chairman & Founder

An introduction to CoCentric

Hardware Description Languages (HDLs) Verilog

Synthesizable Verilog

SpecC Methodology for High-Level Modeling

1 Design Process HOME CONTENTS INDEX. For further assistance, or call your local support center

Elements of a SystemC Design Platform

Digital System Design Lecture 2: Design. Amir Masoud Gharehbaghi

INTRODUCTION TO VHDL. Lecture 5 & 6 Dr. Tayab Din Memon Assistant Professor Department of Electronic Engineering, MUET

Two HDLs used today VHDL. Why VHDL? Introduction to Structured VLSI Design

System Level Design Flow

Programmable Logic Devices HDL-Based Design Flows CMPE 415

VHDL Sample Slides Rev Sample Slides from the 2-day and 4-day VHDL Training Courses

ESL design with the Agility Compiler for SystemC

Hardware Description Languages. Introduction to VHDL

Sunburst Design - Verilog-2001 Design & Best Coding Practices by Recognized Verilog & SystemVerilog Guru, Cliff Cummings of Sunburst Design, Inc.

Introduction to Verilog HDL

MODELING LANGUAGES AND ABSTRACT MODELS. Giovanni De Micheli Stanford University. Chapter 3 in book, please read it.

VHDL. VHDL History. Why VHDL? Introduction to Structured VLSI Design. Very High Speed Integrated Circuit (VHSIC) Hardware Description Language

Digital Systems Testing

Introduction to VHDL. Module #5 Digilent Inc. Course

Evolution of CAD Tools & Verilog HDL Definition

Digital VLSI Design with Verilog

SystemC 1.3. Languages for Embedded Systems. Prof. Stephen A. Edwards. March Columbia University

FlexRay The Hardware View

RTL Coding General Concepts

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

Chapter 2 Basic Logic Circuits and VHDL Description

01 1 Electronic Design Automation (EDA) the correctness, testability, and compliance of a design is checked by software

System Level Design with IBM PowerPC Models

VHDL for Synthesis. Course Description. Course Duration. Goals

101-1 Under-Graduate Project Digital IC Design Flow

Verilog Tutorial. Verilog Fundamentals. Originally designers used manual translation + bread boards for verification

Verilog Tutorial 9/28/2015. Verilog Fundamentals. Originally designers used manual translation + bread boards for verification

EEL 5722C Field-Programmable Gate Array Design

DESIGN STRATEGIES & TOOLS UTILIZED

Hardware Description Language VHDL (1) Introduction

ECE 2300 Digital Logic & Computer Organization. More Sequential Logic Verilog

SystemC Synthesis Standard: Which Topics for Next Round? Frederic Doucet Qualcomm Atheros, Inc

Introduction to SystemC

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

FPGA Based Digital Design Using Verilog HDL

EEL 4783: Hardware/Software Co-design with FPGAs

Using SystemC for Hardware Design Comparison of results with VHDL, Cossap and CoCentric

AL8253 Core Application Note

Simulation and Exploration of LAURA Processor Architectures with SystemC

EEL 4783: HDL in Digital System Design

DIGITAL DESIGN TECHNOLOGY & TECHNIQUES

Lecture 15: System Modeling and Verilog

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

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

EEL 5722C Field-Programmable Gate Array Design

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

A design methodology for TTA protocol processors

Topics. Verilog. Verilog vs. VHDL (2) Verilog vs. VHDL (1)

1. Using the for-generahon scheme, concurrent statements can be replicated a predetermined number of times.

EECS150 - Digital Design Lecture 5 - Verilog Logic Synthesis

Concurrent, OA-based Mixed-signal Implementation

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

Digital Design Methodology

Using SystemC to Implement Embedded Software

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

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

Lecture 2 Hardware Description Language (HDL): VHSIC HDL (VHDL)

Overview of Digital Design with Verilog HDL 1

Contemporary Design. Traditional Hardware Design. Traditional Hardware Design. HDL Based Hardware Design User Inputs. Requirements.

World Class Verilog & SystemVerilog Training

Design of DMA Controller Using VHDL

Connecting MATLAB & Simulink with your SystemVerilog Workflow for Functional Verification

2/14/2016. Hardware Synthesis. Midia Reshadi. CE Department. Entities, Architectures, and Coding.

ELCT 501: Digital System Design

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

Assertive Verification: A Ten-Minute Primer

A New Electronic System Level Methodology for Complex Chip Designs

EEL 4783: Hardware/Software Co-design with FPGAs

SystemVerilog Essentials Simulation & Synthesis

CMPE 415 Programmable Logic Devices Introduction

Bibliography. Measuring Software Reuse, Jeffrey S. Poulin, Addison-Wesley, Practical Software Reuse, Donald J. Reifer, Wiley, 1997.

EEL 4783: HDL in Digital System Design

EE 4755 Digital Design Using Hardware Description Languages

Verilog Essentials Simulation & Synthesis

The SOCks Design Platform. Johannes Grad

Hardware Description Languages & System Description Languages Properties

TOPIC : Verilog Synthesis examples. Module 4.3 : Verilog synthesis

OUTLINE RTL DESIGN WITH ARX

VHDL Essentials Simulation & Synthesis

DEVELOPMENT AND VERIFICATION OF AHB2APB BRIDGE PROTOCOL USING UVM TECHNIQUE

Lab #1: Introduction to Design Methodology with FPGAs part 1 (80 pts)

Design methodology for multi processor systems design on regular platforms

Transcription:

EEL 5722C Field-Programmable Gate Array Design Lecture 17: Describing Synthesizable RTL in SystemC* Prof. Mingjie Lin * 2001 Synopsys, Inc. 1

System-Level Design Specifying the system Verifying its functionality Determining optimum system architecture by evaluating design alternatives Today s complex systems have significant software content and are integrated into a system on a chip (SoC). 2

System-Level Design Challenges Component Integration widely implemented strategy for handling complexity, but many of the components are provided from various sources. Tool Interoperability each tool uses a proprietary model format, which makes a model developed for one tool unsuitable for use with another tool Design Team Collaboration Effective architecture design requires participation of the hardware and software design teams for creating models and influencing architectural decisions, which is called hardware-software co-design 3

Why Synthesis From SystemC? Imagine you are a hardware designer, you are given a architectural model contains a variety of models, including processor models, abstract bus models, and peripheral models. You need to implement the peripherals and verify the implementation in the context of the entire system. If you use a Verilog or VHDL synthesis tool, you need to rewrite the peripheral models in Verilog or VHDL, which is a time-consuming and errorprone process 4

Why Synthesis From SystemC? Or you can synthesize the peripheral models from SystemC Instead of throwing away the work done at the system level and recoding the design, you can take the abstract, non-synthesizable peripheral models and refine them into synthesizable models Verification Reuse use the system-level verification environment to check the correctness of your implementation as you refine it. 5

Defining Modules and Processes The basic building block in SystemC is the module A SystemC module is a container in which processes and other modules are instantiated A typical module can have: Single or multiple RTL processes to specify combinational or sequential logic Multiple RTL modules to specify hierarchy One or more member functions that are called from within an instantiated process or module 6

Module Example Processes describe the parallel behavior of hardware systems processes execute concurrently rather than sequentially like C++ functions The code within a process, however, executes sequentially Registering a Process Triggering Execution of a Process Reading and Writing Processes Types of Processes 7

Creating a Module Coding practice Separate header file (module_name.h) Implementation file (module_name.cpp or module_name.cc) Module Header File Port declarations Internal signal variable declarations Internal data variable declarations Process declarations Member function declarations Module constructor 8

Module Ports 9

Signals Modules use ports to communicate with other modules In hierarchical modules, use signals to communicate between the ports of instantiated modules internal signals for peer-to-peer communication between processes within the same module 10

signal Syntax 11

Data Member Variables Do not use data variables for peer-topeer communication in a module. This can cause pre- and postsynthesis simulation mismatches and nondeterminism (order dependency) in your design. 12

Creating a Process in a Module 13

Defining the Sensitivity List Defining a Level-Sensitive Process 14

Defining the Sensitivity List Defining a Edge-Sensitive Process 15

Limitations for Sensitivity Lists You cannot specify both edge-sensitive and level-sensitive inputs in the same process for synthesis. You cannot declare an sc_logic type for the clock or other edge-sensitive inputs. You can declare only an sc_in<bool> data type. 16

Register processes Module Constructor Define a sensitivity list for an SC_METHOD process 17

Implementing the Module 18

Reading and Writing Ports and Signals 19

Reading and Writing Bits of Ports and Signals 20

Signal and Port Assignments 21

Variable Assignment 22

Creating a Module With a Single SC_METHOD Process 23

Creating Module With Single SC_METHOD Process 24

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