Reconfigurable Computing (EN2911X, Fall07) Lecture 15: SystemC (3/3)
description
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