OUTLINE RTL DESIGN WITH ARX

Similar documents
MOJTABA MAHDAVI Mojtaba Mahdavi DSP Design Course, EIT Department, Lund University, Sweden

Method We follow- How to Get Entry Pass in SEMICODUCTOR Industries for 3rd year engineering. Winter/Summer Training

S2CBench : Synthesizable SystemC Benchmark Suite for High-Level Synthesis

Implementing MATLAB Algorithms in FPGAs and ASICs By Alexander Schreiber Senior Application Engineer MathWorks

S2CBench : Synthesizable SystemC Benchmark Suite for High-Level Synthesis

Introduction to DSP/FPGA Programming Using MATLAB Simulink

OUTLINE SYSTEM-ON-CHIP DESIGN. GETTING STARTED WITH VHDL September 3, 2018 GAJSKI S Y-CHART (1983) TOP-DOWN DESIGN (1)

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

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

A Language and Toolset for the Synthesis and Efficient Simulation of Clock-Cycle-True Signal-Processing Algorithms

Intro to System Generator. Objectives. After completing this module, you will be able to:

Modeling a 4G LTE System in MATLAB

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

Agenda. How can we improve productivity? C++ Bit-accurate datatypes and modeling Using C++ for hardware design

Lecture 9. VHDL, part IV. Hierarchical and parameterized design. Section 1 HIERARCHICAL DESIGN

Modeling and implementation of dsp fpga solutions

Writing Circuit Descriptions 8

Optimize DSP Designs and Code using Fixed-Point Designer

ECE U530 Digital Hardware Synthesis. Course Accounts and Tools

Objectives. After completing this module, you will be able to:

RTL Coding General Concepts

Basic Xilinx Design Capture. Objectives. After completing this module, you will be able to:

Verilog for Synthesis Ing. Pullini Antonio

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

Cover TBD. intel Quartus prime Design software

Cover TBD. intel Quartus prime Design software

Connecting MATLAB & Simulink with your SystemVerilog Workflow for Functional Verification

Synthesis vs. Compilation Descriptions mapped to hardware Verilog design patterns for best synthesis. Spring 2007 Lec #8 -- HW Synthesis 1

CSE140L: Components and Design Techniques for Digital Systems Lab

Synthesis of Combinational and Sequential Circuits with Verilog

VHDL for Synthesis. Course Description. Course Duration. Goals

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

Introduction to Verilog HDL

EITF35: Introduction to Structured VLSI Design

CSE140L: Components and Design

VHDL simulation and synthesis

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

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

EEL 4783: HDL in Digital System Design

Accelerating FPGA/ASIC Design and Verification

Design and Verification of FPGA Applications

What Is VHDL? VHSIC (Very High Speed Integrated Circuit) Hardware Description Language IEEE 1076 standard (1987, 1993)

Agenda. Introduction FPGA DSP platforms Design challenges New programming models for FPGAs

Unit 2: High-Level Synthesis

USING THE SYSTEM-C LIBRARY FOR BIT TRUE SIMULATIONS IN MATLAB

SDR Spring KOMSYS-F6: Programmable Digital Devices (FPGAs)

High Level Synthesis for Design of Video Processing Blocks

EEL 5722C Field-Programmable Gate Array Design

VHDL for Complex Designs

Logic Synthesis. EECS150 - Digital Design Lecture 6 - Synthesis

ICS 252 Introduction to Computer Design

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

EEL 4783: Hardware/Software Co-design with FPGAs

Model-Based Design for Video/Image Processing Applications

Verilog for High Performance

Register Transfer Level in Verilog: Part I

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

Reducing the cost of FPGA/ASIC Verification with MATLAB and Simulink

Introduction to C and HDL Code Generation from MATLAB

Verilog 1 - Fundamentals

FPGA for Software Engineers

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

Hardware Description Languages: Verilog. Quick History of HDLs. Verilog/VHDL. Design Methodology. Verilog Introduction. Verilog.

Hardware Description Languages: Verilog

The SOCks Design Platform. Johannes Grad

Modeling and Verifying Mixed-Signal Designs with MATLAB and Simulink

Verilog 1 - Fundamentals

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

10 Writing Circuit Descriptions

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

Design and Verification of FPGA and ASIC Applications Graham Reith MathWorks

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

A Matlab/Simulink Simulation Approach for Early Field-Programmable Gate Array Hardware Evaluation

ECE 3401 Lecture 10. More on VHDL

Introduction to VHDL. Main language concepts

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

Chapter 2 Basic Logic Circuits and VHDL Description

Advanced Synthesis Techniques

81920**slide. 1Developing the Accelerator Using HLS

Design units can NOT be split across different files

FPGA Design Challenge :Techkriti 14 Digital Design using Verilog Part 1

CMPE 415 Programmable Logic Devices Introduction

Design and Verify Embedded Signal Processing Systems Using MATLAB and Simulink

Hardware description language (HDL)

Verilog HDL is one of the two most common Hardware Description Languages (HDL) used by integrated circuit (IC) designers. The other one is VHDL.

An Overview of a Compiler for Mapping MATLAB Programs onto FPGAs

Hardware Implementation and Verification by Model-Based Design Workflow - Communication Models to FPGA-based Radio

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

CS232 VHDL Lecture. Types

Introduction to Electronic Design Automation. Model of Computation. Model of Computation. Model of Computation

VHDL. Chapter 1 Introduction to VHDL. Course Objectives Affected. Outline

Speaker: Shao-Wei Feng Adviser: Prof. An-Yeu Wu Date: 2010/09/28

Chapter 2 Using Hardware Description Language Verilog. Overview

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

Wordlength Optimization

VHDL Essentials Simulation & Synthesis

Outline. Combinational Circuit Design: Practice. Sharing. 2. Operator sharing. An example 0.55 um standard-cell CMOS implementation

Combinational Circuit Design: Practice

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

Transcription:

1 2 RTL DESIGN WITH ARX IMPLEMENTATION OF DIGITAL SIGNAL PROCESSING Sabih H. Gerez University of Twente OUTLINE Design languages Arx motivation and alternatives Main features of Arx Arx language elements Components and functions Data types Statements Code generation and simulation 3 4 GENERAL PURPOSE VS. DOMAIN- SPECIFIC DESIGN LANGUAGES Should one adopt (and adapt) existing programming languages for the design of parallel embedded systems, signal processing systems? Yes, because: This alleviates the burden of making new compilers, debuggers, etc. No, because: One wants to model only the semantics of some domain and wants to keep the language clean of peculiarities of the host language. ON LEARNING NEW LANGUAGES Reusing an existing language for specific modeling domains is not necessarily a good idea. What matters, is mastering the semantics of the domain. Learning to think in the paradigms of the domain takes much longer than learning a new programming language. It is e.g. a mistake to think that one convert a C programmer into a hardware designer by providing her with a tool that synthesizes hardware from C. Edwards, S.A., The Challenges of Synthesizing Hardware from C-Like Languages, IEEE Design and Test of Computers, pp. 375-385, (September/October 2006).

5 THE LANGUAGE SUBSET ISSUE When an existing language is used for describing models in a new language, one is confronted with the fact that not all language constructs make sense in the application domain. One necessarily needs to isolate a language subset that should be used. This is true for e.g. C. But also for e.g. VHDL, originally a simulation language, later used for synthesis. 6 DOMAIN-SPECIFIC LANGUAGES Languages specifically designed for well-defined, constrained, modeling are called domain-specific languages. No design mistakes due to subset violations: all language constructions are meaningful in domain. Tools such as parsers can be kept simple as they only need to deal with a small language rather than a large and complex one. 7 DATA-FLOW LANGUAGES They have the single-assignment property: a variable is only assigned a value once. This means that, after conversion into a DFG, the variable can be associated to the output of a single vertex. Because of single assignment, ordering of statements is not relevant. Think also of VHDL: a process should in principle write a signal only once (unless it contains wait statements). They can have syntactic support for typical data-flow elements such as the delay node. 8 DATA-FLOW LANGUAGE EXAMPLE: SILAGE T 0 T 0 y = b0*x + z2@1 z2 = a1*y + b1*x + z1@1 z1 = a2*y + b2*x Hilfinger, P.N., "A High-Level Language and Silicon Compiler for Digital Signal Processing", Custom Integrated Circuit Conference, pp. 213-216, (1985).

9 DATA FLOW IN C Voluntarily stick to single-assignment code. Use static variables for delay elements and read these values before writing them. T_out sec(t_in x) { static T_reg z1 = 0; static T_reg z2 = 0;... } y = b0*x + z2; z2_nxt = a1*y + b1*x + z1; z1_nxt = a2*y + b2*x; z2 = z2_nxt; z1 = z1_nxt; // register update return(y); Can this go wrong? 10 PRACTICE IN SYSTEM-LEVEL-TO-RTL TRANSITION System Level RT Level abstract concrete System models often described in C or Matlab Costly manual translation (months) Hardware models in VHDL 11 C-BASED HARDWARE DESIGN Arguments in favor of C-based design: Everybody knows C; we don t want to teach new languages. Lots of legacy C code. High execution speed. Many commercial products based on translation from C/C++/SystemC including: Catapult (Calypto part of Mentor Graphics) Stratus (Cadence, replaces C-to-Silicon and Cynthesizer) Synphony C Compiler (Synopsys, formerly Synfora PICO) Vivado (Xilinx, formerly AutoESL) Intel HLS Compiler (Intel/Altera, front-end to Platform Designer/Quartus) CyberWorkBench (NEC System Technologies) 12 GRAPHICAL DESIGN ENTRY Many solutions based on dedicated blocksets to be used in Simulink: Mathwork s HDL Coder (from graphics and text source) Synphony Model Compiler (Synopsys) Xilinx System Generator for DSP Intel/Altera DSP Builder Graphical design entry can be cumbersome compared to textbased entry: One does not always want to instantiate an adder for every addition, a multiplexer for every if-statement, etc.

13 DOMAIN-SPECIFIC DESIGN LANGUAGES All language constructs make sense in domain: Entire language is synthesizable. Designer does not need to bother about allowed subsets. Straightforward language constructions: Improve designer efficiency. Lead to elegant designs. 14 ARX: A DOMAIN-SPECIFIC RTL LANGUAGE Domain-specific RTL language: Arx Functional Bit-true One language (Arx) for multiple levels. Developed at University of Twente. Arx eliminates manual translation from C to VHDL! Correct by construction. C++ generator Verification with C-based simulation Examples: Bluespec (commercial) GEZEL (university tool) Bit-true and clock-cycle-true VHDL generator RTL synthesis 15 ARX EXAMPLE 16 LANGAUGE FEATURES data_in Clock and reset are implicit. sum clear r data_out Explicit distinction between wires and registers. Implicit clock and reset. Generic data types allowing propagation of data types down hierarchy (e.g. floating-point to fixed-point refinement). Data types for DSP, especially fixed-point data types. Support for overflow and quantization modes. Efficient simulation of fixed-point data types. No semicolons! Simple: can be learned in one day!

17 Please visit: www.bibix.nl ON-LINE FEATURES The website gives access to: On-line wiki-style manual, Web-based demonstration (upload Arx, download corresponding C++ and VHDL), An IP library of basic blocks: FIR filter, CORDIC, FFT, etc. A GFSK receiver. Feedback on Arx, requests for cooperation, very welcome. 18 THE ARX LANGUAGE: BUILDING BLOCKS Components Same as entities (VHDL), modules (Verilog/SystemC) Contain sequential logic Can be instantiated inside other components (hierarchical descriptions are allowed) In current version: entire design in one file. Functions: Contain only combinational logic In current version: not supported in VHDL generation (you need to write the VHDL function by hand) 19 EXAMPLE: COMPONENT INSTATIATION 20 ARX DATA OBJECTS Registers: They store data are updated at the end of clock cycle. Assignment is concurrent. Variables: Correspond to wires. Assignment is sequential ( single assignment not required).

21 DATA TYPES Scalar types: bit boolean integer real Enumerated types (e.g. for state specification) Vector types: bitvector signed unsigned 22 FIXED-POINT DATA TYPES Refinement of signed/unsigned: By supplying additional optional arguments for: Integer word length Overflow mode Quantization mode Examples: signed(8) unsigned(8, 3): fixed-point with 5 fractional bits, wrap-around for overflow, truncate for quantization unsigned(8, 3, saturate, round) 23 FIXED-POINT SUPPORT 24 EXAMPLE: USE OF CONSTANTS Use of fixed-point data type implies automatic code generation for: Binary-point alignment Sign extension Handling of overflow and quantization mode.

25 EXAMPLE: ENUMERATION DATA TYPE 26 EXAMPLE: ARRAYS 27 EXAMPLE: CASE STATEMENT 28 FOR STATEMENT Iteration based on an index variable Index can only be incremented by 1 Specifies iteration in space not in time (as in e.g. VHDL). Example:

29 CODE GENERATION Based on data-flow analysis & static scheduling. C++-code generation (targeted for fast simulation): Flattens description Maps fixed-point data types on integers (limited to 64 bits) C++ object with: reset method run method to simulate one clock cycle Optional VCD generation for waveform viewing (now: all or none) VHDL-code generation (targeted for synthesis): Preserves component hierarchy 30 SUMMARY A domain-specific language for the RTL MoC, e.g. Arx, bridges wall when descending from the system level. Arx brings about that one source code generates: C++-based simulation model optimized for simulation speed VHDL code for synthesis. The Arx approach: Saves manual recoding time! Is correct by construction!