Begin forwarded message:

From: Jason Villarreal <villarre@cs.ucr.edu>
Date: February 23, 2010 11:07:29 AM PST
To: Davide Barcelli <barcelli@dii.unisi.it>
Subject: Re: [Roccc-discussion] ROCCC help


On Feb 23, 2010, at 10:51 AM, Davide Barcelli wrote:

Hi,
I am a newbie in roccc therefore I apologize in advance for any trivial question I may ask.
I am working on a code for realize a 8 bit Discrete Cosine Tranform, thus I wrote the four modules of the butterfly and the system that calls them. I can compile with no errors all the four modules, however when compiling the system I get the follwoing error:
"

When compiling a system that uses a module, the function call must match the order of the struct elements in the compiled code, not the original C code.  This ordering can be seen in the roccc-library.h file.  In the next patch we are planning on releasing, this ordering will be accessible by double clicking the component in the IPCores view from the GUI.

This ordering is most likely different than how you originally created the struct.  For example, when compiling DCT1 the struct is originally declared as

typedef struct
{
//inputs
float i0_in ;
float i1_in ;
float i2_in ;
float i3_in ;
float i4_in ;
float i5_in ;
float i6_in ;
float i7_in ;
//outputs
float o0_out ;
float o1_out ;
float o2_out ;
float o3_out ;
float o4_out ;
float o5_out ;
float o6_out ;
float o7_out ;
} DCT1_t ;

But is compiled into the equivalent struct:

typedef struct
{
float i0_in ;
float i7_in ;
float o0_out ;
float i1_in ;
float i6_in ;
float o1_out ;
float i2_in ;
float i5_in ;
float o2_out ;
float i3_in ;
float i4_in ;
float o3_out ;
float o4_out ;
float o5_out ;
float o6_out ;
float o7_out ;
} DCT1_t ;

meaning you will have to call the DCT1 hardware function as: DCT1(i0, i7, o0, i1, i6, o1, i2, i5, o2, i3 i4, o3_out, o4_out, o5, o6, o7) ;

Thanks,
Jason