Reconfigurable Computing (EN2911X, Fall07) Lecture 15: SystemC (3/3)

download Reconfigurable Computing (EN2911X, Fall07) Lecture 15: SystemC (3/3)

If you can't read please download the document

description

Reconfigurable Computing (EN2911X, Fall07) Lecture 15: SystemC (3/3). Prof. Sherief Reda Division of Engineering, Brown University http://ic.engin.brown.edu. Integer data types. Supported native C++ synthesizable data types long long (64 bits) long (32 bits) int (32 bits) - PowerPoint PPT Presentation

Transcript of Reconfigurable Computing (EN2911X, Fall07) Lecture 15: SystemC (3/3)

Slide 1

Reconfigurable ComputingS. Reda, Brown University

Reconfigurable Computing(EN2911X, Fall07)Lecture 15: SystemC (3/3)
Prof. Sherief RedaDivision of Engineering, Brown Universityhttp://ic.engin.brown.edu

Reconfigurable ComputingS. Reda, Brown University

Integer data types
Supported native C++ synthesizable data typeslong long (64 bits)long (32 bits)int (32 bits)short (16 bits)char (8 bits)bool (1 bit)

SystemC also allows further refined storage typessc_bitsc_bv sc_int sc_uint sc_bigint sc_biguint

Reconfigurable ComputingS. Reda, Brown University

Floating-point data types
Full supported for compilation with VisualC++ and systemC librarySupported for synthesis by Celoxicas Agility compiler only if they can be evaluated during compilation time Any calculation involving float point must evaluate to a constant
sc_int SinTable [128];for(int i=0; i < 128; i++ ) { double index=(double) i; double angle=2.0*PI*(index/128.0); double sineangle=sin(angle); SineTable[i]=sc_uint(sineangle*32767.0);}
Synthesizable example
Not synthesizable example
sc_in in;float x;X=in.read();

Reconfigurable ComputingS. Reda, Brown University

Arrays
Full supported for compilation with VisualC++ and systemC libraryFor synthesis with Agility compiler, an array is synthesizable if its elements are of a synthesizable type and its size is compile-time determinable
int temp, array[100];sc_in in;For(int y=0; y < 100; y++) { in.read(temp); array[y]=temp; wait();}
Synthesizable example
#include float l[10];for(int y=0; y