question about fsl and microblaze

hi

i'm just working on a project where i need to create an fsl interface for my custom ip core. i used the "create and import" peripheral wizard from the edk. the wizard gives me the following options to choose from : "number of input/output 32 bit words" and two pages later "number of input arguments". whats the difference between those two things? when i look into the driver and vhdl code i still get 1 32 bit bus. the only thing is that depending on the values i choose the driver template for example creates one variable "input_0" (which in case of 8 32 bit input words and 1 input argument" is an array of 8. is there any speed advantage of creating a large array or is it better to create more input arguments. when i look at the selftest source code the macro is called for every entry of the array anyway..... or did i misunderstand something here?

thanks urban

Reply to
u_stadler
Loading thread data ...

Hi Urban,

If you want to connect the fsl module to MicroBlaze, then one port is usually enough since MicroBlaze can only write or read to one port at a time. You can't get more bandwidth by adding more ports.

Göran

Reply to
Göran Bilski

hi

well i understand that microblaze can only write to one port at a time. but my question was more about those two parameters: "number of input/output 32 bit words" and "number of input arguments"

what i see in the driver template is that it writes every word at a time anyway. so i was wondering if there advantage is any advantage of having more than on 32 bit word or more that one argument. (well of coures if i want to write more than 1 32 bit word i have to call the driver function more often but that i what the driver does anyway)

for example the driver function (marco) looks like that for 1 32 bit word and argument

for (i=3D0; i Hi Urban,

Reply to
u_stadler

Hi,

All the code produce for the peripheral (both VHDL and C) will most likely need modification for your specific needs. The wizard just create example files (still functional) but you have to change them to something more meaningful The VHDL code just add together all input words and then send back the result.

The "number of input/output 32 bit words" determines how many words the core needs in order to produce the result and how many words the result consists of This will be used by the VHDL code that the wizard generates. i.e. If you say 8 inputs words and 1 output words, the VHDL code will read 8 words on the FSL and then send back one word to the FSL.

The actual connection to MicroBlaze will always be one Master FSL port and one Slave FSL port independent on the number of input/out words.

The "number of input arguments" determines how the driver for your core will handle the data. If you have 8 input words and 1 input argument, the driver code will assume all 8 words to be in the one 8-word sized array. You could change it to 8 input arguments and then the driver code would assume 8 arguments each being 1-word sized array.

So how you set this depends on the function and how you stored the data in your C code. It might be more advantage to have fewer input/output arguments since you can loop over the array index instead of reading from different arrays. It should produce less code.

Göran

well i understand that microblaze can only write to one port at a time. but my question was more about those two parameters: "number of input/output 32 bit words" and "number of input arguments"

what i see in the driver template is that it writes every word at a time anyway. so i was wondering if there advantage is any advantage of having more than on 32 bit word or more that one argument. (well of coures if i want to write more than 1 32 bit word i have to call the driver function more often but that i what the driver does anyway)

for example the driver function (marco) looks like that for 1 32 bit word and argument

for (i=0; i Hi Urban,

Reply to
Göran Bilski

ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.