cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 
fransschreuder
Participant
Participant
4,373 Views
Registered: ‎08-12-2010

SDK 12.1 - FSL Driver does not alter xparameters.h

Jump to solution

Hi,

 

I am new with Xilinx, and after my first hello_world with MicroBlaze, I am now trying an FSL bus (using the examples and standard drivers created by XPS).

However, when I compile everything, the fsl directives don't seem to be included in xparameters.h. All I see there is:

 

/******************************************************************/
/* Definitions for peripheral FSL_PERIPHERAL2_0 */
/* Definitions for peripheral FSL_PERIPHERAL_0 */
/******************************************************************/

 

When I compile, I get these error messages:

/tmp/cchhdGzs.s: Assembler messages:
/tmp/cchhdGzs.s:3099: Error: register expected, but saw 'rfslXP'
/tmp/cchhdGzs.s:3099: Warning: ignoring operands: rfslXPAR_FSL_FSL_PERIPHERAL_0_INPUT_SLOT_ID
/tmp/cchhdGzs.s:3114: Error: register expected, but saw 'rfslXP'
/tmp/cchhdGzs.s:3114: Warning: ignoring operands: rfslXPAR_FSL_FSL_PERIPHERAL_0_OUTPUT_SLOT_ID

 

I also read on some forums that I can define the slot_id's manually like this:

#define input_slot_id 0

#define output_slot_id 0

 

This makes the program compile and run, but the FSL bus doesn't seem to work, I get the values from the output which I also put in. this shouldn't occur because I do some addition (as in the generated vhdl example).

 

What am I doing wrong?

 

Thanks

Tags (1)
0 Kudos
1 Solution

Accepted Solutions
fransschreuder
Participant
Participant
5,424 Views
Registered: ‎08-12-2010

Thank you for your answers.

I figured out what the problem was, since I was new to the concept of fsl, I didn't really understand the meaning of "master and slave" regarding fsl. Also I should have mentioned the word "simplex". What I did was just connecting one fsl bus from the Microblaze master to the slave of the peripheral. Connecting a second fsl bus for reading back the value solved the problem. I can now use the defines in the c code like

#define input_slot_id   1
#define output_slot_id  0

in stead of

#define input_slot_id   XPAR_FSL_FSL_PERIPHERAL_0_INPUT_SLOT_ID
#define output_slot_id  XPAR_FSL_FSL_PERIPHERAL_0_OUTPUT_SLOT_ID

...which still give me the same error.

 

View solution in original post

0 Kudos
3 Replies
berufspenner
Explorer
Explorer
4,361 Views
Registered: ‎03-04-2010

Take a look at this thread. Maybe I would be helpful to you:

 

http://forums.xilinx.com/t5/EDK-and-Platform-Studio/Error-register-expected/m-p/77650

0 Kudos
bigmasterdenis
Visitor
Visitor
4,351 Views
Registered: ‎05-10-2010

Hi,

 

so you are able to put values from MicroBlaze to your hardware and get back a result using FSL? If so then the FSL bus should work. Otherwise you weren't be able to receive anything from your hardware. Since you get the same value as output as your put in, it could mean that you read the result from FSL before the addition was completed.

Try reading the result several times from FSL. i.e. call getfslx() a few times => if your result is somewhere "deeper" in the FIFO, then you can reach it this way. It also may help to wait a few cycles before assigning FSL_M_Write <= '1'; in your code to assure a correct result on the FSL_M_Data port.

0 Kudos
fransschreuder
Participant
Participant
5,425 Views
Registered: ‎08-12-2010

Thank you for your answers.

I figured out what the problem was, since I was new to the concept of fsl, I didn't really understand the meaning of "master and slave" regarding fsl. Also I should have mentioned the word "simplex". What I did was just connecting one fsl bus from the Microblaze master to the slave of the peripheral. Connecting a second fsl bus for reading back the value solved the problem. I can now use the defines in the c code like

#define input_slot_id   1
#define output_slot_id  0

in stead of

#define input_slot_id   XPAR_FSL_FSL_PERIPHERAL_0_INPUT_SLOT_ID
#define output_slot_id  XPAR_FSL_FSL_PERIPHERAL_0_OUTPUT_SLOT_ID

...which still give me the same error.

 

View solution in original post

0 Kudos