Outline. Catapult C Design Methodology. Design Steps with Catapult 1/31/12. System-on-Chip Design Methodologies
|
|
- Nathan Jefferson
- 6 years ago
- Views:
Transcription
1 System-on-Chip Design Methodologies High-Level Synthesis using Catapult-C Olivier Sentieys IRISA/INRIA ENSSAT - Université de Rennes 1 Outline Introduction Design Flow and Tool Basics Data Types Writing C++ for Synthesis Optimizing your Design Loops Interface and Memory Synthesis EII3/M2R - 2 Catapult C Design Methodology Compatible Environments Matlab/Simulink C++ SystemC Design Steps with Catapult Algorithm design and H/S partitioning Write C code for hardware technology independent, fast simulation, compact, etc. Analyze your C code inside Catapult Constrain the micro-architecture technology, resource constraints, I/O, frequency, etc. Generate, analyze and validate hardware Gantt chart testbench generation, RTL generation EII3/M2R - 3 EII3/M2R - 4 1
2 Writing C code for Hardware: basics Big rules: No dynamic memory allocation Pointer restrictions Integer or fixed-point data types: bit accurate, no floats The style of your C code will have a great impact on design quality Add #pragma hls_design top! Use pragmas in C++ code C Design Example #define num_taps 8! Virtual WAIT #pragma hls_design top! void fir_filter (int *input,!!!!!!int coeffs[num_taps],!!!!!!int *output) {!!static int regs[num_taps];!!short temp = 0;!!for (int i = num_taps-1; i >= 0; i--) {!!!if (i == 0)!!!!regs[0] = *input;! Inputs are read!!else! with handshake!!!regs[i] = regs[i-1];!!!temp += coeffs[i] * regs[i];!!}!!*output = temp;! Outputs are registered EII3/M2R - 5 EII3/M2R - 6 Outline Introduction Design Flow and Tool Basics Data Types Writing C++ for Synthesis Optimizing your Design Loops Interface and Memory Synthesis Synthesis Flow Set working directory Add input file(s) Setup design Architectural constraints Resource constraints Schedule Generate RTL Invoke simulation EII3/M2R - 7 EII3/M2R - 8 2
3 Catapult Window Setting Up Design Invoke catapult! Load scripts Crossprobing between C code and constraints Gantt chart generated HDL reports schematic etc. EII3/M2R - 9 EII3/M2R - 10 Setting Up Design Specifying Architectural Constraints Technology: FPGA, ASIC Synthesis tool IP blocks: RAMs, pipeline multipliers Design frequency constraints Clock cycle frequency Interface One, and only one, clock ;-) je vous l avais bien dit Synchronous or asynchronous reset Enable (optional) Start and Done flags EII3/M2R - 11 EII3/M2R
4 Analysing your design Analysing your design EII3/M2R - 13 EII3/M2R - 14 Analysing your design Schematic Viewer Gantt Chart View of Data Dependencies EII3/M2R - 15 EII3/M2R
5 Schematic Viewer Outline Introduction Design Flow and Tool Basics Data Types Writing C++ for Synthesis Optimizing your Design Loops Interface and Memory Synthesis EII3/M2R - 17 EII3/M2R - 18 Data Types Type constraints signed or unsigned bit-width for integers bit-width for fixed-point types o C++ extensions: bitvectors package mc_bitvector.h int5 my_variable;! uint5 my_unsigned_variable;! SystemC Datatypes #include "systemc.h! sc_int/sc_bigint sc_int<10> tenbitint;! sc_uint/sc_biguint sc_fixed/sc_ufixed sc_fixed<20,10> a;! sc_fixed<20,10,sc_rnd,sc_sat_zero> c;! EII3/M2R - 19 EII3/M2R
6 AC Datatypes AC Datatypes #include <ac_fixed.h>! ac_int<int W, bool S> ac_int<10> tenbitint;! ac_int<10,true> tenbitintsigned;! ac_fixed<int W, int I, bool S, ac_q_mode Q, ac_o_mode O> ac_fixed<20,10,true> a;! ac_fixed<20,10,ac_rnd,ac_sat_zero> c;! EII3/M2R - 21 EII3/M2R - 22 AC Datatypes: Quantization Modes AC Datatypes: Overflow Modes EII3/M2R - 23 EII3/M2R
7 Outline Introduction Design Flow and Tool Basics Data Types Writing C++ for Synthesis Optimizing your Design Loops Interface and Memory Synthesis C++ File Format Files:.c,.cxx,.cpp or.c C++ parser C++ preprocessor #ifndef MY_HEADER_FILE_NAME! #define MY_HEADER_FILE_NAME!!code goes here...! #endif!! #pragma hls_design top! void my_design (int *input, int array[8], int *output) {!!static int temp;!!short var = *input;!!!!*output = temp;! EII3/M2R - 25 EII3/M2R - 26 Storage Types Static datatypes may only be assigned to constants during their declaration. static int a = 5; // Correct! static int b = x; // Incorrect if x is not a constant declared in the local scope! Static variables are assigned to their initial value during reset Storage types const, extern and mutable have no affect on synthesis EII3/M2R - 27 Condition Statements All branches of a conditional statement will be balanced to have the same length Every branch of a case statement should have a break Don't write code with conditional looping statements Supported: if, switch EII3/M2R - 28 switch (a) {!!case 1:!!!c = a + b;!!!break;!!case 12:!!!c = a - b;!!!break;! 7
8 Loop Statements The variable used to decide if a loop should exit should have a constant start value and increment Conditional break from a loop is preferred Each loop should have only one exit Supported: do, for, while Partial unroll of any loop EII3/M2R - 29 #pragma unroll yes // unroll a loop! #pragma unroll no // leave a loop rolled! #pragma unroll 5 // Unroll the loop 5 times! Default is to leave loops rolled Branching and Functions Branching continue statement should be avoided goto statement is not supported Supported: break continue return Functions Should have only one return statement at the end Recursive functions are not supported int my_addsub (int a, int b, bool c) {! if ( c )!!return a + b;! else!!return a - b;! EII3/M2R - 30 if ( c )!!return a + b;! return a - b;! Expressions Using Parentheses and Common Sub-Expressions Don't index arrays with signed expressions Don't use the pre- and post-increment expressions ( ++ and -- ) on a variable if that variable is used somewhere else in that expression b = 5; a = ++b * --b;! a = 6 * 5; or a = 5 * 5;! Divide / and Modulo % should be avoided Keep C integer shifts in their defined range: 0 to 31 for int, 0 to 63 for long EII3/M2R - 31 EII3/M2R
9 Multiply and Divide by Constants Constant shifts have virtually no cost in hardware Constant multiplications, divisions and modulus are converted into shifts and adds or subtracts y = a * 6;! converted into y = (a << 1) + (a << 2);! y = (int)a/2;! converted into y = ((int)a + 1) >> 1;! Loops FOR loop FOR_LOOP:for(int i=0;i<4;i++) {!!dout[i] = din[i];! } WHILE loop int i=0;! WHILE_LOOP:while(i<4){!!dout[i] = din[i];!!i++;! } EII3/M2R - 33 y = (unsigned int)a/2;! converted into y = (unsigned int) a >> 1;! DO loop EII3/M2R - 34 DO_LOOP:do{!!dout[i] = din[i];!!i++;! }while(i<4); Loops Loops Loop using one iterator Loop using multiple iterators EII3/M2R - 35 EII3/M2R
10 Conditions Conditional if Creates Dependency Chain Conditions Conditional else Splits Dependency Chain EII3/M2R - 37 EII3/M2R - 38 Outline Introduction Design Flow and Tool Basics Data Types Writing C++ for Synthesis Optimizing your Design Loops Loop Loop example int acc=0;! ACCUM:for(int i=0;i<4;i++){!!acc += din[i];! Interface and Memory Synthesis EII3/M2R - 39 EII3/M2R
11 Partial Loop Unrolling Fully Unrolled Loop int acc=0;! ACCUM:for(int i=0;i<4;i+=2){!!acc += din[i];!!acc += din[i+1];! int acc=0;! acc += din[0];! acc += din[1];! acc += din[2];! acc += din[3]; EII3/M2R - 41 EII3/M2R - 42 Loops with Conditional Bounds Loop bound is an input #include accum.h! #include<ac_int.h>! void accumulate( int din[4], int &dout,!!!!!!unsigned int ctrl){! int acc=0;! ACCUM:for(int i=0;i<ctrl;i++){!!acc += din[i];! Optimizing the Loop Control #include accum.h! #include <ac_int.h>! void accumulate(int din[4], int &dout,!!!!!!ac_int<3,false> ctrl){! int acc=0;! int i_old=0;! ACCUM:for(int i=0;i<4;i++){!!acc += din[i]; if(i_old==ctrl)!!break;!!i_old = i;! }! dout = acc;! } EII3/M2R - 43 EII3/M2R
12 Nested Loops #include accum.h! #include <ac_int.h>! #define MAX ! void accumulate(int din[2][4],!!!! int &dout){! int acc=0;! ROW:for(int i=0;i<2;i++){!!if(acc>max)!! acc = MAX;!!COL:for(int j=0;j<4;j++){!! acc += din[i][j];!!}!!dout = acc;! } Nested Loop: Unrolling the Innermost Loop ROW:for(int i=0;i<2;i++){!!acc=0;!!acc += din[i][0];!!acc += din[i][1];!!acc += din[i][2];!!acc += din[i][3];!!dout[i] = acc;! } EII3/M2R - 45 EII3/M2R - 46 Nested Loop: Unrolling the Outer Loop int acc[2];! acc[0] = 0;! COL_0: for(int j=0;j<4;j++){!!acc[0] += din[0][j];! }! dout[0] = acc[0];! acc[1] = 0;! COL_1:for(int j=0;j<4;j++){!!acc[1] += din[1][j];! }! dout[1] = acc[1]; int acc[2];! acc[0] = 0;! acc[1] = 0;! COL_0_1:for(int j=0;j<4;j++){!!acc[0] += din[0][j];! => Loop Merging!acc[1] += din[1][j];! }! dout[0] = acc[0];! dout[1] = acc[1]; But loop parallelization is complex! for(i=1; i<=n-1; i++)! for(j=1; j<=n-1; j++)!!a[i][j] = ( a[i-1][j] + a[i][j]!!!! + a[i][j-1] ) / 3.0;! Is the loop parallel? Apply the following transform t=i+j, p=j i=p-t, j=p Is it better? EII3/M2R - 47 EII3/M2R - 48 The parallel execution of DO loops, Leslie Lamport, Communications of the ACM CACM 17(2),
MOJTABA MAHDAVI Mojtaba Mahdavi DSP Design Course, EIT Department, Lund University, Sweden
High Level Synthesis with Catapult MOJTABA MAHDAVI 1 Outline High Level Synthesis HLS Design Flow in Catapult Data Types Project Creation Design Setup Data Flow Analysis Resource Allocation Scheduling
More informationAgenda. How can we improve productivity? C++ Bit-accurate datatypes and modeling Using C++ for hardware design
Catapult C Synthesis High Level Synthesis Webinar Stuart Clubb Technical Marketing Engineer April 2009 Agenda How can we improve productivity? C++ Bit-accurate datatypes and modeling Using C++ for hardware
More informationHigh Level Synthesis for Design of Video Processing Blocks
Master s Thesis High Level Synthesis for Design of Video Processing Blocks Ayla Chabouk Carlos Gómez Department of Electrical and Information Technology, Faculty of Engineering, LTH, Lund University, March
More informationINTRODUCTION TO CATAPULT C
INTRODUCTION TO CATAPULT C Vijay Madisetti, Mohanned Sinnokrot Georgia Institute of Technology School of Electrical and Computer Engineering with adaptations and updates by: Dongwook Lee, Andreas Gerstlauer
More informationAlgorithmic C synthesis (High-level synthesis)
Algorithmic C synthesis (High-level synthesis) Reminder System level design The complexity of digital systems grows exponentially because of technological improvements, and user demands. The design entries
More informationObjectives. Introduce the core C# language features class Main types variables basic input and output operators arrays control constructs comments
Basics Objectives Introduce the core C# language features class Main types variables basic input and output operators arrays control constructs comments 2 Class Keyword class used to define new type specify
More informationFFT/IFFTProcessor IP Core Datasheet
System-on-Chip engineering FFT/IFFTProcessor IP Core Datasheet - Released - Core:120801 Doc: 130107 This page has been intentionally left blank ii Copyright reminder Copyright c 2012 by System-on-Chip
More informationBasic C Programming (2) Bin Li Assistant Professor Dept. of Electrical, Computer and Biomedical Engineering University of Rhode Island
Basic C Programming (2) Bin Li Assistant Professor Dept. of Electrical, Computer and Biomedical Engineering University of Rhode Island Data Types Basic Types Enumerated types The type void Derived types
More informationVerilog for High Performance
Verilog for High Performance Course Description This course provides all necessary theoretical and practical know-how to write synthesizable HDL code through Verilog standard language. The course goes
More informationIntroduction to High level. Synthesis
Introduction to High level Synthesis LISHA/UFSC Prof. Dr. Antônio Augusto Fröhlich Tiago Rogério Mück http://www.lisha.ufsc.br/~guto June 2007 http://www.lisha.ufsc.br/ 1 What is HLS? Example: High level
More informationName :. Roll No. :... Invigilator s Signature : INTRODUCTION TO PROGRAMMING. Time Allotted : 3 Hours Full Marks : 70
Name :. Roll No. :..... Invigilator s Signature :.. 2011 INTRODUCTION TO PROGRAMMING Time Allotted : 3 Hours Full Marks : 70 The figures in the margin indicate full marks. Candidates are required to give
More informationImpact of SystemC data types on execution speed
Impact of SystemC data types on execution speed Wolfgang Ecker Lars Schönberg Infineon Technologies AG 15th European SystemC Users Group Meeting April 2007 Organization Data type comparison SystemC data
More informationIntel High Level Synthesis Compiler
Intel High Level Synthesis Compiler Best Practices Guide Updated for Intel Quartus Prime Design Suite: 18.0 Subscribe Send Feedback Latest document on the web: PDF HTML Contents Contents 1. Intel HLS Compiler
More informationP.G.TRB - COMPUTER SCIENCE. c) data processing language d) none of the above
P.G.TRB - COMPUTER SCIENCE Total Marks : 50 Time : 30 Minutes 1. C was primarily developed as a a)systems programming language b) general purpose language c) data processing language d) none of the above
More informationEL6483: Brief Overview of C Programming Language
EL6483: Brief Overview of C Programming Language EL6483 Spring 2016 EL6483 EL6483: Brief Overview of C Programming Language Spring 2016 1 / 30 Preprocessor macros, Syntax for comments Macro definitions
More informationAdvanced Synthesis Techniques
Advanced Synthesis Techniques Reminder From Last Year Use UltraFast Design Methodology for Vivado www.xilinx.com/ultrafast Recommendations for Rapid Closure HDL: use HDL Language Templates & DRC Constraints:
More informationSynplify Pro for Microsemi Edition Release Notes Version L M-G5, November 2016
Synopsys, Inc. 690 East Middlefield Road Mountain View, CA 94043 USA Website: www.synopsys.com Synplify Pro for Microsemi Edition Release Notes Version L-2016.09M-G5, November 2016 Publication Version
More informationShort Notes of CS201
#includes: Short Notes of CS201 The #include directive instructs the preprocessor to read and include a file into a source code file. The file name is typically enclosed with < and > if the file is a system
More informationCS201 - Introduction to Programming Glossary By
CS201 - Introduction to Programming Glossary By #include : The #include directive instructs the preprocessor to read and include a file into a source code file. The file name is typically enclosed with
More information3/12/2018. Structures. Programming in C++ Sequential Branching Repeating. Loops (Repetition)
Structures Programming in C++ Sequential Branching Repeating Loops (Repetition) 2 1 Loops Repetition is referred to the ability of repeating a statement or a set of statements as many times this is necessary.
More informationHomework #3 CS2255 Fall 2012
Homework #3 CS2255 Fall 2012 MULTIPLE CHOICE 1. The, also known as the address operator, returns the memory address of a variable. a. asterisk ( * ) b. ampersand ( & ) c. percent sign (%) d. exclamation
More informationCS1622. Semantic Analysis. The Compiler So Far. Lecture 15 Semantic Analysis. How to build symbol tables How to use them to find
CS1622 Lecture 15 Semantic Analysis CS 1622 Lecture 15 1 Semantic Analysis How to build symbol tables How to use them to find multiply-declared and undeclared variables. How to perform type checking CS
More information1-D Time-Domain Convolution. for (i=0; i < outputsize; i++) { y[i] = 0; for (j=0; j < kernelsize; j++) { y[i] += x[i - j] * h[j]; } }
Introduction: Convolution is a common operation in digital signal processing. In this project, you will be creating a custom circuit implemented on the Nallatech board that exploits a significant amount
More informationME 461 C review Session Fall 2009 S. Keres
ME 461 C review Session Fall 2009 S. Keres DISCLAIMER: These notes are in no way intended to be a complete reference for the C programming material you will need for the class. They are intended to help
More informationProgramming, numerics and optimization
Programming, numerics and optimization Lecture A-2: Programming basics II Łukasz Jankowski ljank@ippt.pan.pl Institute of Fundamental Technological Research Room 4.32, Phone +22.8261281 ext. 428 March
More informationFor Loop. Variations on Format & Specific Examples
For Loop The for loop is an iterative loop. You determine how many times it executes, using 3 expressions and a loop control variable (lcv). The first expression initializes the loop control variable (lcv)
More informationVHDL for Synthesis. Course Description. Course Duration. Goals
VHDL for Synthesis Course Description This course provides all necessary theoretical and practical know how to write an efficient synthesizable HDL code through VHDL standard language. The course goes
More informationLecture 12 Integers. Computer and Network Security 19th of December Computer Science and Engineering Department
Lecture 12 Integers Computer and Network Security 19th of December 2016 Computer Science and Engineering Department CSE Dep, ACS, UPB Lecture 12, Integers 1/40 Outline Data Types Representation Conversions
More informationToday's Topics. CISC 458 Winter J.R. Cordy
Today's Topics Last Time Semantics - the meaning of program structures Stack model of expression evaluation, the Expression Stack (ES) Stack model of automatic storage, the Run Stack (RS) Today Managing
More informationC - Basics, Bitwise Operator. Zhaoguo Wang
C - Basics, Bitwise Operator Zhaoguo Wang Java is the best language!!! NO! C is the best!!!! Languages C Java Python 1972 1995 2000 (2.0) Procedure Object oriented Procedure & object oriented Compiled
More informationSPARK: A Parallelizing High-Level Synthesis Framework
SPARK: A Parallelizing High-Level Synthesis Framework Sumit Gupta Rajesh Gupta, Nikil Dutt, Alex Nicolau Center for Embedded Computer Systems University of California, Irvine and San Diego http://www.cecs.uci.edu/~spark
More informationReview of the C Programming Language for Principles of Operating Systems
Review of the C Programming Language for Principles of Operating Systems Prof. James L. Frankel Harvard University Version of 7:26 PM 4-Sep-2018 Copyright 2018, 2016, 2015 James L. Frankel. All rights
More informationFundamentals of Programming
Fundamentals of Programming Lecture 3 - Constants, Variables, Data Types, And Operations Lecturer : Ebrahim Jahandar Borrowed from lecturer notes by Omid Jafarinezhad Outline C Program Data types Variables
More informationFundamental of Programming (C)
Borrowed from lecturer notes by Omid Jafarinezhad Fundamental of Programming (C) Lecturer: Vahid Khodabakhshi Lecture 3 Constants, Variables, Data Types, And Operations Department of Computer Engineering
More informationComputers Programming Course 6. Iulian Năstac
Computers Programming Course 6 Iulian Năstac Recap from previous course Data types four basic arithmetic type specifiers: char int float double void optional specifiers: signed, unsigned short long 2 Recap
More informationC Programming. Course Outline. C Programming. Code: MBD101. Duration: 10 Hours. Prerequisites:
C Programming Code: MBD101 Duration: 10 Hours Prerequisites: You are a computer science Professional/ graduate student You can execute Linux/UNIX commands You know how to use a text-editing tool You should
More informationWriting Circuit Descriptions 8
8 Writing Circuit Descriptions 8 You can write many logically equivalent descriptions in Verilog to describe a circuit design. However, some descriptions are more efficient than others in terms of the
More informationContents. Preface. Introduction. Introduction to C Programming
c11fptoc.fm Page vii Saturday, March 23, 2013 4:15 PM Preface xv 1 Introduction 1 1.1 1.2 1.3 1.4 1.5 Introduction The C Programming Language C Standard Library C++ and Other C-Based Languages Typical
More informationInternational Training Workshop on FPGA Design for Scientific Instrumentation and Computing November 2013
2499-20 International Training Workshop on FPGA Design for Scientific Instrumentation and Computing 11-22 November 2013 High-Level Synthesis: how to improve FPGA design productivity RINCON CALLE Fernando
More informationTopic 6: A Quick Intro To C
Topic 6: A Quick Intro To C Assumption: All of you know Java. Much of C syntax is the same. Also: Many of you have used C or C++. Goal for this topic: you can write & run a simple C program basic functions
More informationCHRIST THE KING BOYS MATRIC HR. SEC. SCHOOL, KUMBAKONAM CHAPTER 9 C++
CHAPTER 9 C++ 1. WRITE ABOUT THE BINARY OPERATORS USED IN C++? ARITHMETIC OPERATORS: Arithmetic operators perform simple arithmetic operations like addition, subtraction, multiplication, division etc.,
More informationChapter 3 - Functions
Chapter 3 - Functions 1 Outline 3.1 Introduction 3.2 Program Components in C++ 3.3 Math Library Functions 3.4 Functions 3.5 Function Definitions 3.6 Function Prototypes 3.7 Header Files 3.8 Random Number
More information2/29/2016. Definition: Computer Program. A simple model of the computer. Example: Computer Program. Data types, variables, constants
Data types, variables, constants Outline.1 Introduction. Text.3 Memory Concepts.4 Naming Convention of Variables.5 Arithmetic in C.6 Type Conversion Definition: Computer Program A Computer program is a
More informationTopic 6: A Quick Intro To C. Reading. "goto Considered Harmful" History
Topic 6: A Quick Intro To C Reading Assumption: All of you know basic Java. Much of C syntax is the same. Also: Some of you have used C or C++. Goal for this topic: you can write & run a simple C program
More informationOptimize DSP Designs and Code using Fixed-Point Designer
Optimize DSP Designs and Code using Fixed-Point Designer MathWorks Korea 이웅재부장 Senior Application Engineer 2013 The MathWorks, Inc. 1 Agenda Fixed-point concepts Introducing Fixed-Point Designer Overview
More informationScientific Programming in C VI. Common errors
Scientific Programming in C VI. Common errors Susi Lehtola 6 November 2012 Beginner errors If you re a beginning C programmer, you might often make off-by one errors when you use arrays: #i n c l u de
More informationC: How to Program. Week /Mar/05
1 C: How to Program Week 2 2007/Mar/05 Chapter 2 - Introduction to C Programming 2 Outline 2.1 Introduction 2.2 A Simple C Program: Printing a Line of Text 2.3 Another Simple C Program: Adding Two Integers
More informationTed N. Booth. DesignLinx Hardware Solutions
Ted N. Booth DesignLinx Hardware Solutions September 2015 Using Vivado HLS for Video Algorithm Implementation for Demonstration and Validation Agenda Project Description HLS Lessons Learned Summary Project
More information81920**slide. 1Developing the Accelerator Using HLS
81920**slide - 1Developing the Accelerator Using HLS - 82038**slide Objectives After completing this module, you will be able to: Describe the high-level synthesis flow Describe the capabilities of the
More informationFlow Control. CSC215 Lecture
Flow Control CSC215 Lecture Outline Blocks and compound statements Conditional statements if - statement if-else - statement switch - statement? : opertator Nested conditional statements Repetitive statements
More informationThe Arithmetic Operators. Unary Operators. Relational Operators. Examples of use of ++ and
The Arithmetic Operators The arithmetic operators refer to the standard mathematical operators: addition, subtraction, multiplication, division and modulus. Op. Use Description + x + y adds x and y x y
More informationReview of the C Programming Language
Review of the C Programming Language Prof. James L. Frankel Harvard University Version of 11:55 AM 22-Apr-2018 Copyright 2018, 2016, 2015 James L. Frankel. All rights reserved. Reference Manual for the
More informationRule 1-3: Use white space to break a function into paragraphs. Rule 1-5: Avoid very long statements. Use multiple shorter statements instead.
Chapter 9: Rules Chapter 1:Style and Program Organization Rule 1-1: Organize programs for readability, just as you would expect an author to organize a book. Rule 1-2: Divide each module up into a public
More informationCSI33 Data Structures
Outline Department of Mathematics and Computer Science Bronx Community College October 24, 2018 Outline Outline 1 Chapter 8: A C++ Introduction For Python Programmers Expressions and Operator Precedence
More informationThe Arithmetic Operators
The Arithmetic Operators The arithmetic operators refer to the standard mathematical operators: addition, subtraction, multiplication, division and modulus. Examples: Op. Use Description + x + y adds x
More informationSystemC Synthesis Standard: Which Topics for Next Round? Frederic Doucet Qualcomm Atheros, Inc
SystemC Synthesis Standard: Which Topics for Next Round? Frederic Doucet Qualcomm Atheros, Inc 2/29/2016 Frederic Doucet, Qualcomm Atheros, Inc 2 What to Standardize Next Benefit of current standard: Provides
More informationBasic program The following is a basic program in C++; Basic C++ Source Code Compiler Object Code Linker (with libraries) Executable
Basic C++ Overview C++ is a version of the older C programming language. This is a language that is used for a wide variety of applications and which has a mature base of compilers and libraries. C++ is
More informationC Basics. Chapter 2: C Basics. C Programming Language. v3.3 February 6, 2017
Chapter 2: C Programming Language Šimon Řeřucha v3.3 February 6, 2017 There are only two kinds of programming languages: those people always bitch about and those nobody uses. Bjarne Stroustrup. General
More informationNEW FPGA DESIGN AND VERIFICATION TECHNIQUES MICHAL HUSEJKO IT-PES-ES
NEW FPGA DESIGN AND VERIFICATION TECHNIQUES MICHAL HUSEJKO IT-PES-ES Design: Part 1 High Level Synthesis (Xilinx Vivado HLS) Part 2 SDSoC (Xilinx, HLS + ARM) Part 3 OpenCL (Altera OpenCL SDK) Verification:
More informationLecture 12 VHDL Synthesis
CPE 487: Digital System Design Spring 2018 Lecture 12 VHDL Synthesis Bryan Ackland Department of Electrical and Computer Engineering Stevens Institute of Technology Hoboken, NJ 07030 1 What is Synthesis?
More informationCOMP322 - Introduction to C++ Lecture 01 - Introduction
COMP322 - Introduction to C++ Lecture 01 - Introduction Robert D. Vincent School of Computer Science 6 January 2010 What this course is Crash course in C++ Only 14 lectures Single-credit course What this
More informationModel Viva Questions for Programming in C lab
Model Viva Questions for Programming in C lab Title of the Practical: Assignment to prepare general algorithms and flow chart. Q1: What is a flowchart? A1: A flowchart is a diagram that shows a continuous
More informationChapter 2 - Introduction to C Programming
Chapter 2 - Introduction to C Programming 2 Outline 2.1 Introduction 2.2 A Simple C Program: Printing a Line of Text 2.3 Another Simple C Program: Adding Two Integers 2.4 Memory Concepts 2.5 Arithmetic
More informationLG2: Lecture Group 2: SystemC. Topic: SystemC Overview. LG2.1 - SC SystemC Components. LG2.2 - SC Example (Counter)
LG2: Lecture Group 2: SystemC. Topic: SystemC Overview LG2.1 - SC SystemC Components LG2.2 - SC Example (Counter) LG2.3 - SC SystemC Structural Netlist LG2.4 - SC SystemC Signals LG2.5 - SC Threads and
More informationIntroduction to High-Level Synthesis with Vivado HLS. Objectives. Vivado HLS Version. After completing this module, you will be able to:
Introduction to High-Level Synthesis with Vivado HLS Vivado HLS 2013.3 Version This material exempt per Department of Commerce license exception TSU Objectives After completing this module, you will be
More informationCourse Topics - Outline
Course Topics - Outline Lecture 1 - Introduction Lecture 2 - Lexical conventions Lecture 3 - Data types Lecture 4 - Operators Lecture 5 - Behavioral modeling A Lecture 6 Behavioral modeling B Lecture 7
More informationHigh Performance Computing in C and C++
High Performance Computing in C and C++ Rita Borgo Computer Science Department, Swansea University Summary Introduction to C Writing a simple C program Compiling a simple C program Running a simple C program
More informationBuilding on the foundation. Now that we know a little about cout cin math operators boolean operators making decisions using if statements
Chapter 5 Looping Building on the foundation Now that we know a little about cout cin math operators boolean operators making decisions using if statements Advantages of Computers Computers are really
More informationBy the end of this section you should: Understand what the variables are and why they are used. Use C++ built in data types to create program
1 By the end of this section you should: Understand what the variables are and why they are used. Use C++ built in data types to create program variables. Apply C++ syntax rules to declare variables, initialize
More informationREPETITION CONTROL STRUCTURE LOGO
CSC 128: FUNDAMENTALS OF COMPUTER PROBLEM SOLVING REPETITION CONTROL STRUCTURE 1 Contents 1 Introduction 2 for loop 3 while loop 4 do while loop 2 Introduction It is used when a statement or a block of
More informationThis material exempt per Department of Commerce license exception TSU. Improving Performance
This material exempt per Department of Commerce license exception TSU Performance Outline Adding Directives Latency Manipulating Loops Throughput Performance Bottleneck Summary Performance 13-2 Performance
More informationIntroduction to Programming
Introduction to Programming session 6 Instructor: Reza Entezari-Maleki Email: entezari@ce.sharif.edu 1 Spring 2011 These slides are created using Deitel s slides Sharif University of Technology Outlines
More informationCS201 Some Important Definitions
CS201 Some Important Definitions For Viva Preparation 1. What is a program? A program is a precise sequence of steps to solve a particular problem. 2. What is a class? We write a C++ program using data
More informationCSc 10200! Introduction to Computing. Lecture 2-3 Edgardo Molina Fall 2013 City College of New York
CSc 10200! Introduction to Computing Lecture 2-3 Edgardo Molina Fall 2013 City College of New York 1 C++ for Engineers and Scientists Third Edition Chapter 2 Problem Solving Using C++ 2 Objectives In this
More information(6) The specification of a name with its type in a program. (7) Some memory that holds a value of a given type.
CS 7A - Fall 2016 - Midterm 1 10/20/16 Write responses to questions 1 and 2 on this paper or attach additional sheets, as necessary For all subsequent problems, use separate paper Do not use a computer
More informationObject Oriented Software Design
Object Oriented Software Design Introduction to Java - II Giuseppe Lipari http://retis.sssup.it/~lipari Scuola Superiore Sant Anna Pisa September 30, 2010 G. Lipari (Scuola Superiore Sant Anna) Introduction
More informationUnit 3 Decision making, Looping and Arrays
Unit 3 Decision making, Looping and Arrays Decision Making During programming, we have a number of situations where we may have to change the order of execution of statements based on certain conditions.
More informationTheory of control structures
Theory of control structures Paper written by Bohm and Jacopini in 1966 proposed that all programs can be written using 3 types of control structures. Theory of control structures sequential structures
More informationThis material exempt per Department of Commerce license exception TSU. Coding Considerations
This material exempt per Department of Commerce license exception TSU Considerations Outline Language Support Pointers Considerations and IO Streams Summary Comprehensive C Support A Complete C Validation
More informationCENG 447/547 Embedded and Real-Time Systems. Review of C coding and Soft Eng Concepts
CENG 447/547 Embedded and Real-Time Systems Review of C coding and Soft Eng Concepts Recall (C-style coding syntax) ; - Indicate the end of an expression {} - Used to delineate when a sequence of elements
More informationFPGAs: Instant Access
FPGAs: Instant Access Clive"Max"Maxfield AMSTERDAM BOSTON HEIDELBERG LONDON NEW YORK OXFORD PARIS SAN DIEGO SAN FRANCISCO SINGAPORE SYDNEY TOKYO % ELSEVIER Newnes is an imprint of Elsevier Newnes Contents
More informationCOMP322 - Introduction to C++ Lecture 02 - Basics of C++
COMP322 - Introduction to C++ Lecture 02 - Basics of C++ School of Computer Science 16 January 2012 C++ basics - Arithmetic operators Where possible, C++ will automatically convert among the basic types.
More informationLab 2: Modifying LegUp to Limit the Number of Hardware Functional Units
Lab 2: Modifying LegUp to Limit the Number of Hardware Functional Units 1 Introduction and Motivation In this lab, you will gain exposure to the scheduling and binding steps of LegUp. You will modify user
More informationParallel Programming with OpenMP. CS240A, T. Yang
Parallel Programming with OpenMP CS240A, T. Yang 1 A Programmer s View of OpenMP What is OpenMP? Open specification for Multi-Processing Standard API for defining multi-threaded shared-memory programs
More informationGridLang: Grid Based Game Development Language. Programming Language and Translators - Spring 2017 Prof. Stephen Edwards
GridLang: Grid Based Game Development Language Programming Language and Translators - Spring 2017 Prof. Stephen Edwards Akshay Nagpal Dhruv Shekhawat Parth Panchmatia Sagar Damani an2756 @columbia.edu
More informationComputers Programming Course 7. Iulian Năstac
Computers Programming Course 7 Iulian Năstac Recap from previous course Operators in C Programming languages typically support a set of operators, which differ in the calling of syntax and/or the argument
More informationWriting an ANSI C Program Getting Ready to Program A First Program Variables, Expressions, and Assignments Initialization The Use of #define and
Writing an ANSI C Program Getting Ready to Program A First Program Variables, Expressions, and Assignments Initialization The Use of #define and #include The Use of printf() and scanf() The Use of printf()
More informationRepetition Structures
Repetition Structures Chapter 5 Fall 2016, CSUS Introduction to Repetition Structures Chapter 5.1 1 Introduction to Repetition Structures A repetition structure causes a statement or set of statements
More informationCondition-Controlled Loop. Condition-Controlled Loop. If Statement. Various Forms. Conditional-Controlled Loop. Loop Caution.
Repetition Structures Introduction to Repetition Structures Chapter 5 Spring 2016, CSUS Chapter 5.1 Introduction to Repetition Structures The Problems with Duplicate Code A repetition structure causes
More informationOpenCL C. Matt Sellitto Dana Schaa Northeastern University NUCAR
OpenCL C Matt Sellitto Dana Schaa Northeastern University NUCAR OpenCL C Is used to write kernels when working with OpenCL Used to code the part that runs on the device Based on C99 with some extensions
More informationFORM 1 (Please put your name and section number (001/10am or 002/2pm) on the scantron!!!!) CS 161 Exam II: True (A)/False(B) (2 pts each):
FORM 1 (Please put your name and section number (001/10am or 002/2pm) on the scantron!!!!) CS 161 Exam II: True (A)/False(B) (2 pts each): 1. If a function has default arguments, they can be located anywhere
More informationChapter 14 - Advanced C Topics
Chapter 14 - Advanced C Topics Outline 14.1 Introduction 14.2 Redirecting Input/Output on UNIX and DOS Systems 14.3 Variable-Length Argument Lists 14.4 Using Command-Line Arguments 14.5 Notes on Compiling
More informationDSP Mapping, Coding, Optimization
DSP Mapping, Coding, Optimization On TMS320C6000 Family using CCS (Code Composer Studio) ver 3.3 Started with writing a simple C code in the class, from scratch Project called First, written for C6713
More informationUNIT- 3 Introduction to C++
UNIT- 3 Introduction to C++ C++ Character Sets: Letters A-Z, a-z Digits 0-9 Special Symbols Space + - * / ^ \ ( ) [ ] =!= . $, ; : %! &? _ # = @ White Spaces Blank spaces, horizontal tab, carriage
More informationG Programming Languages - Fall 2012
G22.2110-003 Programming Languages - Fall 2012 Lecture 3 Thomas Wies New York University Review Last week Names and Bindings Lifetimes and Allocation Garbage Collection Scope Outline Control Flow Sequencing
More informationLecture 7: General Loops (Chapter 7)
CS 101: Computer Programming and Utilization Jul-Nov 2017 Umesh Bellur (cs101@cse.iitb.ac.in) Lecture 7: General Loops (Chapter 7) The Need for a More General Loop Read marks of students from the keyboard
More informationB.V. Patel Institute of Business Management, Computer & Information Technology, Uka Tarsadia University
Unit 1 Programming Language and Overview of C 1. State whether the following statements are true or false. a. Every line in a C program should end with a semicolon. b. In C language lowercase letters are
More informationDecision Making and Loops
Decision Making and Loops Goals of this section Continue looking at decision structures - switch control structures -if-else-if control structures Introduce looping -while loop -do-while loop -simple for
More informationIntroduction to C Programming. Chih-Wei Tang ( 唐之瑋 ) Department of Communication Engineering National Central University JhongLi, Taiwan
Introduction to C Programming Chih-Wei Tang ( 唐之瑋 ) Department of Communication Engineering National Central University JhongLi, Taiwan Outline Printing texts Adding 2 integers Comparing 2 integers C.E.,
More informationA flow chart is a graphical or symbolic representation of a process.
Q1. Define Algorithm with example? Answer:- A sequential solution of any program that written in human language, called algorithm. Algorithm is first step of the solution process, after the analysis of
More information